BTRFS Subvolumes bei Neuinstallation einrichten

Aus Bluelupo's Wiki
Wechseln zu: Navigation, Suche


Zweck von Subvolumes

In einem BTRFS Toplevelvolume sollten nur leere Subvolumes angelegt werden, da dies eine evtl. spätere Systemwiederherstellung erheblich vereinfacht. Von diesen Subvolumes können im laufenden Betrieb sogenannte Snapshots erstellt werden die völlig unabhängig vom System sind und dann ohne Gefahr einer Inkonsistenz gesichert werden (Backup). Im Fehlerfall können diese Snapshots dann einfach wieder aktiv ins System einhängt werden.

Idealerweise legt man den Inhalt des /home Verzeichnisses und für das System ein Subvolume an. In unseren Beispiel werde ich die Namen VOL-ROOT und VOL-HOME verwenden.


Vorbereitungen

Hier Beispiel habe ich mit einer OpenSuse KDE-Live-CD gearbeitet, die während der Installation das neuen Dateisystem BTRFS unterstützt. Entsprechende ISO-Files zum Download gibt es auf den Seiten von OpenSuse. Dieses Prozedere habe ich in einer virtuellen Maschine erfolgreich getestet (KVM).

Zu Beginn starten wird die LiveCD und öffenen eine Konsole als root.

Disk partionieren

Man startet fdisk und partioniert seine Disk nachfolgenden Schema:

  • sda1 Swap-Partition 2 GByte
  • sda2 Boot-Partition /boot 256 MByte
  • sda3 Root-Partition / Restlicher Platz von der Disk

Dateisystem anlegen

Für sda2 und sda3 müssen die Dateisysteme angelegt werden.

# mkfs.ext4 /dev/sda2
# mkfs.btrfs /dev/sda3


Subvolumes anlegen

Die zukünftige BTRFS-Parition (sda3) muss zur Erstellung der Subvolumes temporär gemountet werden.

# mkdir /mnt/sda3
# mount /dev/sda3 /mnt/sda3

Jetzt kreiert man die beiden Subvolumes.

# btrfs subvolume create /mnt/sda3/VOL-ROOT
# btrfs subvolume create /mnt/sda3/VOL-HOME

Den aktuellen Zustand überprüft man mit.

# btrfs subvolume list /mnt/sda3

Default setzen für zuküftiges Rootdateisystem (ID aus obigen Listing ermitteln)

# btrfs subvolume set-default <ID> /mnt/sda3/VOL-ROOT

Kontrolldateien in jedem Subvolume erleichtern die Identifizierung eines aktiven Volume

# touch /mnt/sda3/VOL-ROOT/das_hier_ist_das_VOL-ROOT
# touch /mnt/sda3/VOL-HOME/das_hier_ist_das_VOL-HOME

Zum Abschluß das Dateisysteme wieder aushängen.

# umount /mnt/sda3


Installation starten

Jetzt kann man Installer der OpenSuse-Live-CD starten und bis zum Partitionierungsdialog wie gewöhnlich vorgehen. Den Partitionierungsvorschalg nicht übernehmen, sondern den Button Festplatte einlesen aktivieren. Danach wird die soeben angelegte Partitionierung angezeigt.

sda1 auf Swaptyp setzen. sda2 unter /boot einhängen als als ext4-Filesystem formatieren lassen. sda3 darf auf keinen Fall neu formatiert werden (FS neu angelegt werden) sonst die Subvolumes wieder entfernt. Nur den Einhängepunkt von sda3 auf / setzen.

Die Installation fortsetzen bis zum Ende, aber nicht booten sondern nur beeenden.


Konfiguration

Um die Konfiguration abzuschließen muß sda3 temporär einhängt werden.

# mount /dev/sda3 /mnt/sda3

fstab anpassen

Mit dem Editior die fstab (/mnt/sda3/etc/fstab) editeiren um das Subvolume VOL-HOME beim Systemstart standardmäßig einzuhängen nach folgenden Schema:

UUID=<von Rootvolume übernehmen>      /home    btrfs    defaults,subvolid=<ID aus Subvolume-Listing entnehmen>  1   1
 

In unseren Beispiel muß /home so eingehängt werden. Die UUID ist an eigene Gegebenheiten anzupassen. Wichtig ist Mountoption subvolid die das Subvolume /home aktiviert.

 UUID=10f2c8b5-9bf4-405e-bfcb-0e2a9757abf5   /home    btrfs    defaults,subvolid=258  1   1

Subvolume einhängen

Das Subvolume VOL-HOME temporär mounten.

# mount -o subvolid=258 /dev/sda3 /mnt/home

Anhand der vorher angelegten Kontrolldatei kann man sehen das man alles richtig gemacht hat.

# ls -ld /mnt/home/das_hier_ist_das_VOL-HOME

Inhalt von HOME ins Subvolume transferieren

Vorhandene Unterveichnisse (Userverzeichnisse) aus /mnt/sda3/home ins Subvolume VOL-HOME verschieben.

# cd /mnt/sda3/home
# mv * /mnt/home


Aufräumen

Temporäre Mounts auflösen.

# umount /mnt/home /mnt/sda3

Jetzt kann man das Livesystem herunterfahren und von der Disk starten. Das installierte OpenSuse-System wird nun einmalig automatisch konfiguriert und kann danach benutzt werden. Das fertige System hat im Top-Level-Volume zwei Subvolumes. Kontrollieren kann man dies mit nachfolgenden Befehl.

# btrfs subvolume list /