Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
btrfs [2016/02/10 16:28] root |
btrfs [2016/02/13 16:20] (aktuell) root [Snapshot beim Installieren neuer Pakete] |
||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
+ | ====== Subvolume mounten ====== | ||
+ | |||
+ | Syntax: mount -o subvol=// | ||
+ | |||
+ | * // | ||
+ | * //Device// das Device auf dem sich das Dateisystem (inkl. des Subvolumes) befindet - Beispielsweise /dev/sda2 | ||
+ | * Mountpoint DAs Verzeichnis im Dateisystem an dem das Subvolume eingehängt werden soll | ||
+ | \\ \\ | ||
+ | |||
+ | Beispiel: mount -o subvol=/ | ||
+ | \\ \\ | ||
+ | In obigem Beispiel wird das Subvolume " | ||
+ | Wäre /dev/sda1 nach / | ||
+ | < | ||
+ | user@server / | ||
+ | first second | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== fstab ====== | ||
+ | |||
+ | Entspricht einem normalen Eintrag in der fstab, es kommt lediglich der Parameter subvol=// | ||
+ | \\ \\ | ||
+ | Beipsiel: | ||
+ | \\ | ||
+ | UUID=dfe5e7bc-ed56-442b-8c94-8c66bbcd44dc / | ||
+ | \\ \\ | ||
+ | |||
+ | " | ||
+ | Zu beachten ist das "/" | ||
+ | |||
+ | |||
+ | ====== Subvolume als "/" | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | In diesem Fall liegt /boot (der Kernel und Grubs Konfiguration) nicht auf dem Btrfs Subvolume, sondern auf einer eigenen ext3 Partition. | ||
+ | </ | ||
+ | |||
+ | * Kernel benötigt Parameter rootflags=subvol=// | ||
+ | * // | ||
+ | * Subvolume muss über subvol-Option in /etc/fstab für "/" | ||
+ | |||
+ | Beispieleintrag grub.cfg: | ||
+ | |||
+ | < | ||
+ | linux / | ||
+ | </ | ||
+ | |||
+ | \\ \\ | ||
+ | Gesamteintrag sieht so aus: | ||
+ | < | ||
+ | menuentry 'Linux Mint 17.3 Xfce 64-bit' | ||
+ | recordfail | ||
+ | load_video | ||
+ | gfxmode $linux_gfx_mode | ||
+ | insmod gzio | ||
+ | insmod part_msdos | ||
+ | insmod ext2 | ||
+ | set root=' | ||
+ | if [ x$feature_platform_search_hint = xy ]; then | ||
+ | search --no-floppy --fs-uuid --set=root --hint-bios=hd0, | ||
+ | else | ||
+ | search --no-floppy --fs-uuid --set=root 6d27fa00-8453-41aa-9a1f-6284457e9d50 | ||
+ | fi | ||
+ | linux / | ||
+ | initrd | ||
+ | } | ||
+ | </ | ||
+ | bestehende Partitionen anklicken, als Dateisystem btrfs aus der Liste wählen, Formatieren nicht anklicken | ||
+ | | ||
+ | * Wurde einmal mit dem Subvolume als "/" | ||
+ | |||
+ | |||
+ | |||
+ | ====== Snapshot beim Installieren neuer Pakete ====== | ||
+ | |||
+ | * Für apt ist es apt-btrfs-snapshot (für andere Paketverwaltungssysteme gibt es ähnliche Tools) | ||
+ | * das Subvolume für "/" | ||
+ | * Installieren: | ||
+ | * Danach prüfen ob es funktioniert: | ||
+ | * da muss Supported zurückkommen | ||
+ | * danach wird, egal welches Werkzeug man benutzt (apt-get, aptitude, graphische Werkzeuge) immer ein Snapshot vor dem Verändern erstellt | ||
+ | * der Snapshot wird nach @// | ||
+ | * befindet sich auf der gleichen Ebene (im Laufwerks-Root) wie " | ||
+ | |||
+ | |||
+ | |||
+ | * apt-btrfs-snapshot list -> Zeigt die vorhanden Snapshots mit Datum an | ||
+ | * apt-btrfs-snapshot set-default // | ||
+ | * es muss rebootet werden | ||
+ | * nach dem reboot ersetzt der gewünschte Snapshot das Subvolume " | ||
+ | * das Snapshot-Verzeichnis wird nach " | ||
+ | * das ehemalige " | ||
====== Tools ====== | ====== Tools ====== | ||
Zeile 39: | Zeile 132: | ||
- | ===== df ===== | + | ==== df ==== |
* Zeigt an wie sich der Speicherplatz auf die einzelnen Datenarten verteilt und wie viele Blöcke für was reserviert sind bzw. wieviel noch frei ist | * Zeigt an wie sich der Speicherplatz auf die einzelnen Datenarten verteilt und wie viele Blöcke für was reserviert sind bzw. wieviel noch frei ist | ||
Zeile 46: | Zeile 139: | ||
- | ===== Restore | + | ==== snapshot |
+ | |||
+ | Snapshots sind Abbilder eines anderen Subvolumes. Ein Snapshot erstellt ein neues Subvolume mit dem Abbild. \\ | ||
+ | Das besondere dabei ist, dass keine Daten kopiert werden beim erstellen des Snapshots, vielmehr sind die Daten in Quelle und Ziel die gleichen (die gleichen Dateisystemblöcke). \\ | ||
+ | Erst wenn das Quell- oder Zielsubvolumen geändert wird, verweisen die Dateisystemmetadaten des Subvolumes bei dem die Änderung stattgefunden hat auf neue Blöcke, für die Dateien die sich geändert haben. \\ | ||
+ | Es wird also erst in dem Moment mehr Speicher benötigt wo ein Delta zwischen den beiden Subvolumes auftritt und auch dann nur in der Größe wie Groß die Unterschiede zwischen den beiden Subvolumes sind. \\ | ||
+ | Snapshots resultieren nicht in Performance-Nachteilen, | ||
+ | |||
+ | Syntax: btrfs subvolume snapshot // | ||
+ | |||
+ | * // | ||
+ | * // | ||
+ | |||
+ | \\ | ||
+ | Beispiel: btrfs subvolume /home / | ||
+ | |||
+ | Legt ein snapshot (subvolumen) mit den Daten von /home nach / | ||
+ | In dem Beispiel wird davon ausgegangen, | ||
+ | ls auf / | ||
+ | home home_2015_03_04 \\ \\ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Snapshots können nur auf innerhalb des gleichen Btrfs-Dateisystems gemacht werden - Quelle und Ziel müssen auf dem gleichen Btrfs-Dateisystem liegen (zum Beispiel der gleichen Partition). | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Enthält ein Subvolume weitere Subvolumes, so sind die weiteren Subvolumes nicht Teil des Snapshots | ||
+ | </ | ||
+ | |||
+ | ==== restore | ||
* btrfs restore wird genutzt um aus einem beschädigten Dateisystem Daten wiederherzustellen | * btrfs restore wird genutzt um aus einem beschädigten Dateisystem Daten wiederherzustellen | ||
Zeile 70: | Zeile 193: | ||
* Das BTRFS-Dateisystem darf nicht gemountet sein, auch nicht read-only! | * Das BTRFS-Dateisystem darf nicht gemountet sein, auch nicht read-only! | ||
+ | |||
+ | |||
+ | |||
+ | ====== Linux-Mint/ | ||
+ | |||
+ | * Wird grundsätzlich unterstützt (Stand: Linux Mint 17.3 Rosa) | ||
+ | * Installation auf BTRFS wird offiziell nicht unterstützt | ||
+ | * Während der Installation steht das Formatieren mit btrfs nicht zur verfügung | ||
+ | * Die Tools für btrfs sind im Live-/ | ||
+ | |||
+ | |||
+ | |||
+ | * Nach start des Live-Linux gparted installieren | ||
+ | * apt-get install gparted | ||
+ | * btrfs-utils installieren (ohne kann gparted keine btrfs-Dateisysteme anlegen) | ||
+ | * apt-get install btrfs | ||
+ | * gparted aufrufen | ||
+ | * erste Partition anlegen, als Dateisystem ext3 wählen | ||
+ | * 2 MB vor der Partition frei lassen (lässt sich einstellen beim erstellen der Partition) | ||
+ | * wird benötigt für Bootmanager grub | ||
+ | * eventuell kann man auf diese erste Partition verzichten, habe ich nicht getestet - wird für /boot benötigt - es war vor einiger Zeit nicht möglich direkt von btrfs zu booten | ||
+ | * zweite Partition anlegen - btrfs als Dateisystem wählen | ||
+ | * das wird "/" | ||
+ | * beliebige weitere Partitionen anlegen | ||
+ | * Installation starten | ||
+ | * Benutzerdefinierte Partitionierung wählen (heißt etwas anders) | ||
+ | * erste Partition | ||
+ | * Dateisystem ext3 wählen, nicht formatieren, | ||
+ | * zweite Partition | ||
+ | * Dateisystem btrfs wählen, nicht formatieren, | ||
+ | * weitere Partitionen entsprechend verfahren | ||
+ | * Installation normal fortsetzen | ||
+ | |||
+ | |||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Ubuntu/Mint erstellen innerhalb des Btrfs-Dateisystems ein Subvolume, es wird also in keinem Fall (egal welcher Mountpoint) direkt in das btrfs-Dateisystem geschrieben. \\ Die Namen sind jeweils @//Name des Mount-Points// | ||
+ | </ | ||
+ | |||
+ | |||