eee PC – unionfs (Wiederherstellung) entfernen

16 Dezember 2008 von J.N Kommentieren »

Die eee PC 901go (und die anderen vermutlich auch) werden mit einer Recovery-DVD ausgeliefert. Darauf befindet sich ein Image, das auf die SSD des eee PC kopiert wird.

Das DVD-Image teilt die Festplatte in vier Partitionen, die erste ist im normalen Betrieb schreibgeschützt, alle Änderungen und Benutzerdateien werden in der zweiten Partition abgespeichert. Beide Partitionen sind durch ein sog. unionFS verbunden. Wird eine schreibgeschützte Datei geändert, wird sie auf Partition 2 abgespeichert, wird lesend darauf zugegriffen, wird – sofern vorhanden – die Änderung geliefert. Beide Partitionen erscheinen transparent als ein Dateisystem. Dieses Prinzip ermöglicht es (beim Drücken von F9 vor dem Booten) die Wiederherstellungsfunktion zu aktivieren. Es macht nichts anderes, als einfach Partition 2 zu löschen und damit alle Änderungen (und persönliche Daten!) zu verwerfen.
Die dritte und vierte Partition kann man ignorieren. Ich hab noch nicht herausgefunden, was ihre Aufgabe ist.

Die Wiederherstellungsfunktion ist z.B. für eine virtuelle Box überdimensioniert, man kann stattdessen nach der Installation einfache eine Kopie der vdi Datei machen. Außerdem behindert der Schreibschutz die Installation z.B. der VirtualBox Guest Additions, ich persönlich finde aber gerade die Mauszeigerintegration unverzichtbar.

Fünf Schritte, um das unionfs zu entfernen:

  1. Linux-Live-CD booten
  2. Boot-Einstellungen verändern
  3. Partitionen verschmelzen
  4. erneut Linux-Live-CD booten (reboot)
  5. Dateisystem vergrößern

Probieren Sie das folgende nur, wenn Sie alle Daten geischert und eine Recovery-DVD zur Hand haben!

Die Anleitung ist im Original von eeeuser.com, ich habe sie auf diese Situation angepasst:

Linux-Live-CD booten: Ich verwende grml, alle notwendigen Programme sind auf der “small” Variante (ca. 70 MB) enthalten. Damit boote ich und mounte die Systempartition.

mkdir /eee
mkdir /eee/system
mkdir /eee/tmp
mount /dev/sda1 /eee/system

Boot-Einstellungen verändern: Das unionfs wird beim Booten innerhalb des initramfs gestartet. Um diese zu ändern muss sie zuerst entpackt werden.

cd /eee/tmp
gunzip -c /eee/system/boot/initramfs-eeepc.img | cpio -i

Jetzt kann die Datei /eee/tmp/init geändert werden.

Die Zeile “mount -t ext2 -o ro $ROOT /mnt-system” (bei mir Zeile 14) abändern in:

mount -t ext2 -o rw,noatime $ROOT /mnt

Die folgenden Zeilen (bei mir 20 bis 52) auskommentieren (# voranstellen) oder löschen (if Blöcke und weitere mounts):

if [ -n "$XANDROSSCAN" ]; then
[...]
mount --move /mnt-user /mnt/.rw

Nun muss das neue initramfs (inkl. der geänderten init Datei) wieder zusammengesetzt werden:

find | cpio -H newc -o | gzip -9 > /mnt/system./boot./initramfs-eeepc-nounionfs.img

Zum Schluß noch in der Datei /mnt/system/boot/grub/menu.lst alle Zeilen mit “initramfs-eeepc.img” in “initramfs-eeepc-nounionfs.img” abändern. Wichtig ist insbesondere der erste Block, die beiden anderen verlieren ihre Funktion.

Jetzt noch aufräumen:

cd /eee
rm -R tmp
umount system

Partitionen verschmelzen: Nun muss die zweite Partition gelöscht und die erste vergrößert werden. Mit fdisk werden beide Partitionen gelöscht und anschließend eine in der Größe von beiden angelegt.  Der Inhalt der ersten Partition bleibt dabei erhalten. Die Klammerzusätze enthalten nur die Erläuterung, was passiert:

fdisk /dev/sda
  d (=delete)
  2 (Partitionsnr.)
  d (=delete)
  1 (Partitionsnr.)
  n (=new)
  p (=primary)
  1 (=Partitionsnr.)
  ANFANG (Vorschlag übernehmen)
  ENDE (Vorschlag übernehmen)
  w (=schreiben und fdisk beenden)

Das Live-Linux neu starten: Dieser Schritt ist notwendig, damit die neue Partitionstabelle eingelesen wird.

shutdown -r now

Dateisystem vergrößern: Zwar ist die Partition nunmehr größer, das darin enthaltene Dateisystem aber noch nicht.

e2fsck -f /dev/sda1
resize2fs /dev/sda1

Fertig: Neu starten (wie oben) und ohne Live-Linux starten.

Werbung

Einen Kommentar hinterlassen

Du musst eingeloggt sein um einen Kommentar zu schreiben.