Festplattentausch: Nicht immer ist die Software schuld

Gestern kam sie an, die 30 GB Travelstar-Festplatte für meinen Inspiron 4000. Damit ist der alte Laptop wieder komplett. Die zwischenzeitliche 6 GB Ersatzfestplatte war, man muss es wohl so sagen, ein Fehlkauf. Zumindest in dem Sinne, dass sie verhältnismäßig langsam war und Geräusche von sich gab, die mich mehr an einen alten Kadett mit löchrigem Auspuff erinnerten als an ein Stück Hardware, dem ich meine Daten anvertraue.
Zwei Dinge habe ich gelernt:

  1. Es gibt immer jemanden, der beim Bieten noch verrückter ist als du selbst. Wenn drei Leute auf den Artikel bieten, rechne damit, dass ein Vierter zwei Sekunden vor Schluss die anderen aussticht. 😈
  2. Gib nicht immer der Software die Schuld, wenn ein Programm eine gefühlte Ewigkeit zum Starten braucht. Das Übel ist meist die veraltete und total langsame Festplatte.

Wie bekommt man nun seine Daten unfallfrei von der uralten 6 GB Festplatte von '99 auf die etwas jüngere 30 GB Festplatte? Der Retter in der Not ist wieder einmal: Clonezilla
Ich erstellte ein komplettes Abbild mit meinem favorisierten Backuptool und überspielte es anschließend auf die neue 30 GB Festplatte. Wie zu erwarten verlief die Transplantation ohne Komplikationen, wovon dieser mit charm geschriebene Blogeintrag zeugt. 😉
Nun hatte ich aber noch mehr als 20 GB frei. Heillose Verschwendung, wenn ihr mich fragt. Da meine Debian-Sid-Installation mit Openbox auf einem verschlüsselten Datenträger mit LVM installiert worden war, erweiterte ich einfach den Platz.
LVM ist dafür ideal geeignet. Das 6 GB Abbild bestand aus einer /boot und /root Partition. Der Rest war freier Speicher. Ich startete also cfdisk und erstellte eine dritte 5 GB große Partition. Dabei griff ich auf die alten Erfahrungen mit LVM zurück.
Der Befehl pvs zeigt bei einem LVM-System die verschiedenen physikalischen Volumes an. In diesem Fall /dev/mapper/hda2_crypt (6GB) und die neue partition /dev/sda3 (5GB), die ich zuvor mit

pvcreate /dev/sda3

initialisiert hatte.
Als nächstes musste die Volumegruppe erweitert werden und die beiden physikalische Volumes darin "verschmolzen" werden.

vgextend Name der Volumegruppe /dev/sda3

In meinem Fall: vgextend darko /dev/sda3
Innerhalb der Volumegruppe befanden sich die logischen Volumes für /boot und /root. Ich wollte das Root-Volume erweitern.

lvextend -L +5G /dev/mapper/darko-root

Schließlich musste noch das Dateisystem an die neue Größe angepasst werden.

resize2fs -p /dev/mapper/darko-root

Fertig! Danach hatte ich mein verschlüsseltes /root Volume um 5 GB vergrößert und dabei immer noch mehr als 15 GB Festplattenspeicher frei.
Damit ließe sich nun neben KolibriOS und dem Plopbootmanager weitere Betriebssysteme installieren, wobei die Vor- und Nachteile schon bekannt sind. Mal schaun. 🙄

LVM Größe von Logical Volumes anpassen

Sowohl Debian als auch Ubuntu bieten bei der Installation die Möglichkeit an, anstatt der üblichen Partitionierung der Festplatte noch eine Zwischenschicht einzubauen, um später die Größe von Logical Volumes dynamisch anpassen zu können. Diese logische Zwischenschicht heißt Logical Volume Manager. Die wichtigsten Komponenten sind das Physical Volume, eine Partition oder Festplatte, die Volume Group, welche mehrere Physical Volumes zusammenfassen kann und die Logical Volumes, welche sich wiederum in diesem System wie eine Partition verhalten. Da ich etwas enttäuscht vom einzigen grafischen LVM Programm system-config-lvm war, sind hier die Schritte für die Konsole.
Im einfachsten Fall repräsentiert das Physical Volume wie bei mir die einzige eingebaute Festplatte und bildet eine Volume Group. Innerhalb dieser Gruppe befinden sich bei der geführten Installation mit Ubuntu lediglich die Logical Volumes für root und swap. Bei der Installation hatte ich aber absichtlich nicht den gesamten Festplattenspeicher benutzt, sondern noch circa 90 GB freigelassen.

Logical Volumes erstellen

Daraus entstand ein weiteres Logical Volume für Virtualbox mit 40 GB Festplattenspeicher. So etwas lässt sich mit dem Befehl

sudo lvcreate -L 40G -n <volume> <group>

schnell anlegen, wobei für <volume> virtualbox und für <group> der Name der Volume Group eingesetzt werden muss, welche bei der geführten Installation immer dem Rechnernamen entspricht. Anschließend muss noch ein Dateisystem angelegt werden z.B. ext3

sudo mkfs.ext3 /dev/<group>/<volume>

Logical Volumes vergrößern und verkleinern

Um nun einem Logical Volume wie virtualbox oder root mehr Speicherplatz zuzuweisen und wie in diesem Fall um 50 Gigabyte zu vergrößern, genügt es

sudo lvextend -L +50G /dev/<group>/<volume>

auszuführen und anschließend das Dateisystem des Logical Volumes an die neue Größe mit

sudo resize2fs -p /dev/<group>/<volume>

anzupassen. Das Vergrößern funktioniert mit ext3 auch im eingehängten Zustand. Möchte man das Logical Volume verkleinern genügt es lvextend mit lvreduce zu ersetzen und den Parameter L anzupassen. Aber Vorsicht! Anders als bei der Vergrößerung muss das Dateisystem vor der Verkleinerung angepasst sein, ansonsten kommt es zum Datenverlust. Dabei muss an den Befehl zusätzlich noch ein Parameter für die gewünschte Größe angehängt werden, z.B.

sudo resize2fs -p /dev/<group>/<volume> 20G

Dies hätte das ursprüngliche virtualbox Volume halbiert. Um ein Logical Volume unter ext3 zu verkleinern darf es nicht gemountet sein! Deshalb empfiehlt es sich vor der Verkleinerung von Dateisystemen immer ein Backup zu machen und vor der Verkleinerung das Dateisystem auf Fehler zu überprüfen mit

e2fsck -f /dev/<group>/<volume>

Snapshots erzeugen

Eine weitere nützliche Möglichkeit von LVM ist das Anlegen von sogenannten Snapshots, also Abbildern einzelner Logical Volumes. Dafür benötigt man lediglich noch etwas unzugeordneten freien Festplattenspeicher, aber keinesfalls den gleichen Platz, den das Original einnimmt.

sudo lvcreate -L 1G -s -n backup /dev/<group>/<volume>

Wenn die Änderungen am Original Volume größer als 1 Gigabyte werden, wird das Abbild inkonsistent. Sprich, es entspricht in diesem Moment nicht mehr dem Original. Der Speicherplatz für snapshots dient also lediglich dazu Veränderungen am Original zu erfassen. Das Abbild lässt sich dann z.B. in einen Backup Ordner mounten und mit der bevorzugten Backup Methode archivieren wie z.B. tar oder rsync und dd für bitweise Archivierung. Um das Abbild zu entfernen genügt ein

sudo lvremove /dev/<group>/<volume>

Links

Logical Volume Manager im Wiki auf ubuntuusers.de