[[Vorlage(Archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Pakete_installieren:Pakete installieren] [:Partitionierung:Eine Partition einrichten] }}} [[Vorlage(Hinweis,"Um den aktuellen Befehlsumfang zu `btrfs` zu erhalten (Optionen, Ergänzungen), sollte man den jeweiligen Befehl im Terminal [1] ohne Option (entspricht der Option `--help`) abfragen - die [:man:Manpages] sind teilweise fehlerhaft bzw. Hinweise fehlen ganz! Bis [:Raring_Ringtail:] (13.04) steht eine aktuellere Version der '''btrfs-tools''' unter den [#Links Links] bereit.")]] [[Inhaltsverzeichnis ()]] [[Bild(btrfs_logo.png, align=left)]] = Installation auf Btrfs = Dieser Artikel befasst sich mit der Installation auf einem Btrfs-Dateisystem und verweist auf jeweilige Besonderheiten, die man beachten sollte - soweit diese den Autoren bekannt sind bzw. erwähnenswert eingestuft wurden. Eine dieser Besonderheiten ist, dass bei einer Installation gleich die Unterlaufwerke (Subvolumes) für das Rootverzeichnis mit '''@''' und für das [:Homeverzeichnis:] mit '''@home''' angelegt werden. Damit kann man dann auf einfache Art entsprechende [:Befehle_Btrfs-Dateisystem#btrfs-subvolume-snapshot:Schnappschüsse] (Quasi-Backups) anlegen. Im separaten Artikel [:Befehle_Btrfs-Dateisystem:Befehle für das Btrfs-Dateisystem] sind alle Befehle aufgelistet und deren Anwendung beschrieben, die für den Einsatz und die Überprüfung eines [wikipedia:Btrfs:Btrfs-Dateisystems] verfügbar sind. Die Installation wird wie bei allen anderen Installationen ausgeführt, entweder über: * [:Desktop-CD:Desktop-CD/DVD] * zu den [:Downloads:] * [:Ubuntu_Installation_ab_Natty:Installieren] * Alternate-CD * zu den [:Downloads:] * [:Alternate_Installation:Installieren] * Online ([:Downloads/Netzwerkinstallation:Netzwerkinstallation]) * von einem bestehenden Linux ([:Installation mit debootstrap:]) [[Vorlage(Experten,"Man sollte beachten, dass eine Installation von GRUB 2 nur unter besonderen Bedingungen in einen Partitionsbereich (PBR) möglich ist. Will man den bestehenden MBR nicht antasten, muss ein anderer Bootloader / Bootmanager benutzt werden, um das System zu starten. Dann sind entsprechende [:GRUB_2/Installation#Zusaetzliche-Massnahmen:Vorbereitungen] zu treffen. Diese sind hinsichtlich einem Btrfs-Dateisystem noch zu erweitern - siehe die ergänzenden Hinweise zu [#Externer-GRUB-2 Externer GRUB_2].")]] = Btrfs Vorbereitung = Will man ein Betriebssystem mit Ubuntu bzw. eines der Derivate __bootfähig__ mit einem Btrfs-Dateisystem auf einem Rechner installieren, sollte dieses __vorab__ vorbereitet werden. Eine zusätzliche Installation (Multiboot), die von einem anderen Linux aus aufgerufen werden soll (via [:GRUB_2/Skripte#Configfile:configfile] oder Vergleichbarem), kann ggf. ohne weitere Vorbereitung nicht normal ausgeführt werden. Siehe dazu auch die Ausführungen unter [#Zusaetzliche-Massnahmen Zusätzliche Maßnahmen]. Dazu muss und darf dann auch kein PBR gesetzt werden! Weitergehende Informationen zur Aufbereitung von Datenträgern, insbesondere bei einer [wikipedia:GUID:]-Partitionstabelle, siehe auch unter [:GRUB_2/Grundlagen:GRUB 2 Grundlagen] == Vergleich Ergebnisse == Nachfolgend das Ergebnis für eine Partitionierung mit Installer alter Art: {{{ Gerät boot. Anfang Ende Blöcke Id System /dev/sdc1 62 10566659 5283299 83 Linux /dev/sdc2 10566660 15650907 2542124 83 Linux .... }}} Und hier das vergleichbare Ergebnis mit GParted bzw. Installer neuer Art: {{{ Gerät boot. Anfang Ende Blöcke Id System /dev/sdc1 2048 10565631 5281792 83 Linux /dev/sdc2 10566660 15650907 2542124 83 Linux .... }}} Insbesondere sei hier darauf hingewiesen, dass andere Partitionstabellen als der Standard (= MSDOS) ohnehin nur mit den Werkzeugen für eine Partitionierung erstellt werden können - als Beispiel das Ergebnis für eine "GUID"-Formatierung: {{{ Gerät boot. Anfang Ende Blöcke Id System /dev/sdc1 1 15663103 7831551+ ee GPT }}} = Btrfs einrichten = {{{#!vorlage Hinweis Das Paket '''btrfs-tools''' wurde in '''btrfs-progs''' umbenannt. Je nach Ubuntuversion muss das entsprechende Paket installiert werden. }}} Das nachfolgende Werkzeug ist in der Regel auf den Installationsmedien enthalten {{{#!vorlage Paketinstallation btrfs-tools }}} bzw. {{{#!vorlage Paketinstallation btrfs-progs }}} und enthält alle Programme zum Einrichten und Arbeiten mit einem Btrfs-Dateisystem. == Der mkfs.btrfs-Befehl == [[Vorlage(Hinweis,"Der Befehl `mkfs.btrfs` kann __keine__ Partition erstellen, sondern die angegebene Partition nur mit einem Btrfs-Dateisystem formatieren. Zum eigentlichen Erstellen einer Partition benutzt man die allgemein bekannten grafischen Werkzeuge für eine Partitionierung oder verwendet im Terminal [1] z.B. den Befehl `cfdisk` [3]. Die in den nachfolgenden Beispielen verwendeten Begriffe und sonstige Angaben sind dem eigenen System sinngemäß anzupassen.")]] Eine Information über den Befehl erhält man mit der Eingabe in das Terminal [1] von: [[Vorlage(Befehl,"mkfs.btrfs")]] Die Ausgabe enthält eine Übersicht zu den Optionen: === Optionen mkfs.btrfs === [[Vorlage(Hinweis,"Die folgenden Vorgaben hinsichtlich der Optionen `-A` bzw. `-b` betreffen nur interne Daten innerhalb vom festgelegten Rahmen der Partition. Diese Einstellungen werden nur im Regelbetrieb bei der Belegung der Partition berücksichtigt!")]] Mögliche Optionen für das Formatieren eines Btrfs-Dateisystemes, einzusetzen __vor__ der Bestimmung von einem oder mehrerer Laufwerke, sind: {{{#!vorlage Tabelle <-2 rowclass="titel"> Optionen zum Formatieren eines Btrfs-Dateisystems +++ `-A`[[BR]]`--alloc-start` Einen nicht zugewiesenen Bereich zwischen dem Start der Partition (nach einer normalen Partitionierung) und dem Start der eigentlichen Datenablage in Bytes bestimmen (Integerzahl mit Faktor: g= GB, m= MB, k= KB). +++ `-b`[[BR]]`--byte-count` Größe des Laufwerkes, die Angabe erfolgt als Integerzahl mit Faktor: g= GB, m= MB, k= KB +++ `-d`[[BR]]`--data` Datenprofil -> Zulässig ist `raid0`, `raid1`, `raid5`, `raid6`, `raid10` oder `single` +++ `-m`[[BR]]`--metadata` Metadatenprofile -> Zulässig ist `raid0`, `raid1`, `raid5`, `raid6`, `raid10`, `single` oder `dup` [[Vorlage(Hinweis,"Bei `single` ist `dup` (duplicate) automatisch mit gesetzt - ausgenommen bei einer [:SSD:], diese hat immer `single` als Standard! Das liegt daran, dass eine [:SSD:] die internen Blöcke eigenständig neu anordnet (remapping). Die gleichzeitige Anwendung beider Funktionen könnte zu Fehlern führen.")]] +++ `-l`[[BR]]`--leafsize` Größe `btree leaves` -> Default = Seitengröße +++ `-n`[[BR]]`--nodesize` Größe der `btree nodes` -> Default = Seitengröße +++ `-s`[[BR]]`--sectorsize` minimale Größe der Sektoren in Byte -> Default = 4096 +++ `-L`[[BR]]`--label` Dem Laufwerke eine Bezeichnung zuordnen. -> "HD_NAME" }}} [[Vorlage(Experten,"Die Option `-d` single (= keine Redundanz) sollte man nur mit Bedacht wählen - denn defekte Metadaten bedeuten unlesbares Laufwerk! Die Standardwerte der Optionen `-l`, `-n` und `-s` sollte man nur in begründeten Fällen setzen.")]] === Formatierung Partition === Eine normale Formatierung kann man mit den bekannten Werkzeugen für eine Partitionierung ausführen oder man gibt in das Terminal [1] ein: [[Vorlage(Befehl,"sudo mkfs.btrfs -L \"HD_NAME\" /dev/sda1")]] Die angegebene Partition sda1 wird mit einem Btrfs-Dateisystem mit den Vorgabewerten versehen, löscht dabei alle Daten auf dieser Partition und bekommt die Bezeichnung "HD_NAME". ===Formatierung RAID-Verbund=== Für die Formatierung eines Btrfs-RAID-Verbundes mit einer Bezeichnung gibt man (beispielhaft) im Terminal [1] ein: [[Vorlage(Befehl,"sudo mkfs.btrfs -m raid1 -d raid1 -L \"BTRFS_RAID\" /dev/sda1 /dev/sdb1")]] Bei der eigentlichen Installation wird dann __nur__ eines der Laufwerke aus dem Btrfs-Raid-Verbund herangezogen / bestimmt. Die Information zur erfolgreichen Erstellung fragt man ab mit der Eingabe in ein Terminal [1] von: [[Vorlage(Befehl,"sudo blkid")]] {{{/dev/sdb1: LABEL="BTRFS_RAID" UUID="2f613613-85b4-46cf-bbbe-90a1748f7753" UUID_SUB="e88dd65c-f471-415a-827b-2fc47359ba2d" TYPE="btrfs" /dev/sda1: LABEL="BTRFS_RAID" UUID="2f613613-85b4-46cf-bbbe-90a1748f7753" UUID_SUB="80eb4ebe-9e95-4052-8162-dbc2a48f3899" TYPE="btrfs"}}} Zu beachten ist, dass auch bei einem Btrfs-RAID-Verbund für die Partitionen die gleiche [:UUID:] - jedoch je Partition eine unterschiedliche UUID_SUB vergeben wurde. In die '''/etc/fstab''' wird nur __einmal__ die gemeinsame [:UUID:] eingetragen - das Dateisystem ordnet das schon richtig zusammen. Nachfolgend ein beispielhafter Eintrag für die Root-Partition eines Btrfs-RAID-Verbundes in der [#fstab-einrichten /etc/fstab]: {{{ UUID=2f613613-85b4-46cf-bbbe-90a1748f7753 / btrfs defaults,subvol=@,compress 0 1 }}} [[Vorlage(Hinweis,"Es darf die [:mount#Optionen:Option] `errors=remount -ro` bei einem Btrfs-Dateisystem __nicht__ benutzt werden!")]] == Formatierung überprüfen == Nach Abschluss der Formatierung und bevor man diese Partition benutzt, kann und sollte man die Partitionen überprüfen - dazu dient der Befehl: [[Vorlage(Befehl,"sudo btrfs filesystem show")]] Dann werden alle Laufwerke angezeigt, unabhängig von Mount-Status. Für alle ohne Btrfs-Dateisystem erhält man für ein einzelnes Btrfs-Laufwerk folgende (beispielhaften) Informationen: {{{failed to read /dev/sde failed to read /dev/sdd}}} Für ein einzelnes Laufwerk mit einem Btrfs-Dateisystem folgende (beispielhaften) Informationen: {{{Label: 'HD_NAME' uuid: ed1545d8-dc26-415c-b82b-e00d7f85d4c1 Total devices 1 FS bytes used 58.71MB devid 1 size 2.00GB used 445.31MB path /dev/sda1}}} Für einen Btrfs-RAID-Verbund folgende (beispielhaften) Informationen: {{{Label: 'BTRFS_RAID' uuid: 2f613613-85b4-46cf-bbbe-90a1748f7753 Total devices 2 FS bytes used 2.55GB devid 2 size 232.76GB used 2.76GB path /dev/sdc1 devid 1 size 232.76GB used 2.76GB path /dev/sdb1}}} [[Vorlage(Experten,"Ausgehend vom obigen Beispielen kann und sollte der [:GRUB_2/Installation:Bootloader] bei einem Btrfs-RAID-Verbund __nacheinander__ jeweils in eine der Festplatten geschrieben werden (siehe auch [#Defektes-Btrfs-Raid Defektes Btrfs-Raid]). Von Interesse sind dabei für einen Btrfs-RAID-Verbund die \"Device ID's\", nur die Festplatte mit der höchsten, hier `devid = 2`, sollte in einem Btrfs-RAID-Verbund als sogenannte erste Festplatte im BIOS zum Booten verwendet werden. Man sollte bei der Bestimmung im BIOS zur ersten Festplatte (von der gebootet werden soll) erst sicherstellen, dass das auch funktioniert. Bei der Wahl der \"falschen\" Festplatte wird der Suchvorgang nach den [:GRUB_2:]-Imagedateien abgebrochen und dann neu gebootet (Dauerschleife)!")]] Der Befehl mit einer Option [[Vorlage(Befehl,"btrfs filesystem show /dev/sda1")]] begrenzt die Informationen auf das gewählte Laufwerk. Mögliche Option sind dabei (entweder!) * Device, Eingabe = `/dev/sda1` * UUID, Eingabe = `ed1545d8-dc26-415c-b82b-e00d7f85d4c1` * Label, Eingabe= `HD_NAME` = Zusätzliche Maßnahmen = Nachfolgend sind einige Maßnahmen aufgeführt, die während der Installation standardmäßig nicht abgearbeitet werden, jedoch für den Betrieb von Interesse sein können. Teilweise ist ohne eine entsprechende Nachbearbeitung das Betriebssystem nicht uneingeschränkt nutzbar. == Daten komprimieren == Man kann einerseits sowohl am Speicherplatz etwas einsparen - wesentlicher ist jedoch die Zugriffszeit auf den Speicherbereich zu optimieren. Dazu dient die Mount-Option [#Komprimierung `compress`]. Da dieses bei der normalen Installation nicht berücksichtigt wird (und auch nur mit Risiken realisierbar ist), kann man das am frischen System nachholen. Als Beispiel wird hier davon ausgegangen, dass sich das Rootverzeichnis '''@''' auf der Partition '''/dev/sda1''' befindet. Dazu startet man ein Live-System und gibt dort nacheinander in ein Terminal [1] ein: [[Vorlage(Befehl,"sudo mount -o compress /dev/sda1 /mnt")]] [[Vorlage(Befehl,"sudo btrfs subvolume create /mnt/@plus")]] [[Vorlage(Befehl,"sudo chmod -R 755 /mnt/@plus")]] [[Vorlage(Befehl,"sudo cp -apr /mnt/@/* /mnt/@plus/")]] Dieser Vorgang kann je nach Rechnerleistung etwas dauern! [[Vorlage(Befehl,"sudo btrfs subvolume delete /mnt/@")]] [[Vorlage(Befehl,"sudo mv /mnt/@plus /mnt/@")]] Bei dieser Gelegenheit kann man auch gleich den ersten Schnappschuss (Bezeichnung beispielhaft) anlegen mit: [[Vorlage(Befehl,"sudo btrfs subvolume snapshot /mnt/@ /mnt/root-datum")]] Das System wird dann ausgehangen mit: [[Vorlage(Befehl,"sudo umount /dev/sda1")]] Aufgrund der geringen Datenmenge kann das beim [:Homeverzeichnis:] ('''@home''') vernachlässigt werden - in die '''/etc/fstab''' sollte man die Mount-Option [#Komprimierung `compress`] aber auf jeden Fall einbringen! == fstab ergänzen == Während der Installation werden in der '''/etc/fstab''' bei den [:mount#Optionen:Optionen] nur die Basisparameter eingetragen. Bei einer Installation auf einem Btrfs-Dateisystem sollte man zusätzlich in der '''/etc/fstab''' folgende Positionen überprüfen und soweit erforderlich nachtragen. ===Solid State Drive=== Die Option `ssd` und weitere: Wurde die Installation auf ein [wikipedia:Solid_State_Drive:Solid State Drive] (Halbleiterlaufwerk) aufgebracht, so wird der entsprechende Eintrag (`ssd`) dafür unter den Optionen in die '''/etc/fstab''' eingebracht. Es können noch weitere, nützliche Parameter verwendet werden - siehe hierzu die Artikelserie [:SSD:] sowie diese speziellen [:SSD/TRIM#TRIM-mit-btrfs:Ausführungen]. === Komprimierung === Die Option [:Archiv/Btrfs-Mountoptionen#Mountoptionen:Mountoptionen `compress`]: Dieser Eintrag in die '''/etc/fstab''' muss manuell nachgetragen werden und sorgt für eine Komprimierung der Daten, wenn diese auf das Laufwerk geschrieben werden. Diese Arbeit wird beim Komprimieren bzw. Dekomprimieren von der CPU erledigt und ist Teil der Kernelroutinen. Diese Zusatzbelastung dürfte aber bei heutigen CPUs keine fühlbaren Auswirkungen mehr haben, bringt jedoch eine Einsparung beim Speicherplatz und beschleunigt das Auslesen erheblich. Beispielhaft für das Rootverzeichnis kann dann diese Ergänzung wie folgt aussehen: {{{UUID=2f613613-85b4-46cf-bbbe-90a1748f7753 / btrfs defaults,compress,subvol=@ 0 1}}} === Fehlerbehandlung Rootlaufwerk === Die Option `errors=remount -ro` darf bei einem Btrfs-Dateisystem nicht benutzt werden! Dieses führt zu einem nicht betriebsfähigen System. == GRUB_2 einrichten == Da der [:GRUB_2:]-Bootloader in der Standardkonfiguration schreibende Zugriffe auf * das Verzeichnis '''/@/boot/grub''' und die Datei '''grubenv''' ausführt und dieses zu einem Fehlerhinweis während des Bootvorganges führen würde, wird diese Funktion * `recordfail` bei einem Btrfs-Dateisystem beim Installieren von [:GRUB_2:] per Default unterdrückt. Der Aufruf innnerhalb der `menuentry` wird dann auf eine blinde Subroutine geleitet. Auch das Schreiben, ausgelöst durch die Variable [:GRUB_2/Konfiguration#Bedeutung-der-Variablen:GRUB_SAVEDEFAULT=true] in der Datei '''/etc/default/grub''' sollte man nicht benutzen. Der jeweils ausgewählte Menüeintrag kann nicht auf einem Btrfs-Dateisystem abgespeichert werden. == Externer GRUB_2 == Da in der Regel bei einem Btrfs-Dateisystem während der Installation Unterlaufwerke (Subvolume = '''@''', '''@home''' usw.) angelegt werden, wird dieses (sekundäre) Betriebssystem nicht so ohne Weiteres über die Funktion des Skriptes * '''/etc/grub.d/30_os-prober''' von einem anderen (primären) Betriebssystem gefunden! Man muss das primäre System (mit dem aktiven Bootloader) für den Zugriff auf das sekundäre System entsprechend einrichten. [[Vorlage(Hinweis,"Der Bootloader des nachfolgend als primär bezeichneten Systems muss in der Lage sein, ein Btrfs-Dateisystem zu lesen. Ansonsten muss man im primären System die [#Btrfs-einrichten btrfs-tools] nachinstallieren.")]] === GRUB_2 primäres System === Zum Einbinden des neuen Systems legt man sich das folgende Skript ausführbar im primären System ab unter: * '''/etc/grub.d/nn_btrfs-suchen''' (wobei mit der Zahl (hier "nn") die Position im Grub-Menü festgelegt werden kann). Die Liste der zu ladenden Module (hier z.B. `insmod` `gzio`) sowie die der Kernel-Optionen (hier z.B. `vt.handoff=7`) muss man aus dem sekundären System einmalig in das Skript übernehmen. {{{#!code bash #! /bin/bash set -e ###FIXME die Bezeichnung "DEVICE" muss auf die reale Partition # mit dem Btrfs-Dateisystem angepasst werden! DEVICE="/dev/sda5"; AUSSTIEG () { echo "Das Laufwerk ${DEVICE} ist kein \"Btrfs-Dateisystem\"!" >&2 exit 1 } TEST_UUID=$( blkid ${DEVICE} | grep btrfs ) >/dev/null || AUSSTIEG; UUID_BTRFS=$( blkid -c /dev/null -o value -s UUID ${DEVICE} ); echo "UUID = ${UUID_BTRFS} vom Btrfs-Dateisystem gefunden" >&2 echo "Startmenü für ein Btrfs-Dateisystem eingefügt" >&2 cat << EOF menuentry "Ubuntu (auf Btrfs-Dateisystem) starten" --class gnu-linux --class gnu --class os { recordfail insmod gzio insmod part_msdos insmod btrfs search --no-floppy --fs-uuid --set=root ${UUID_BTRFS} linux /@/boot/vmlinuz root=UUID=${UUID_BTRFS} ro rootflags=subvol=@ ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX} vt.handoff=7 initrd /@/boot/initrd.img } EOF }}} Mit der Eingabe in das Terminal [1] von: [[Vorlage(Befehl,"sudo grub-mkconfig")]] kann man die erfolgreiche Suche überprüfen und dann mit der Eingabe von: [[Vorlage(Befehl,"sudo update-grub")]] dieses in den aktiven Bootloader übernehmen. === GRUB_2 sekundäres System === Damit das primäre System immer einen aktuellen Kernel aufruft und somit die Daten unabhängig vom Zustand / Upgrade des sekundären Systems sind, wird im sekundären System das folgende Skript abgelegt unter: * '''/etc/grub.d/09_K-aktuell''' {{{#!code bash #!/bin/sh # Hiermit wird bei einem 'update-grub' der aktuelle Kernel # intern auf eine einheitliche Form innerhalb '/boot' verlinkt. set -e SETZE_LINK () { rm -f ${SUCHE_WAS}; list=$( for i in ${SUCHE_WAS}-* ; do echo -n "$i " ; done ) [ "x$list" = "x" ] && exit linux=$( version_find_latest $list ) ln -s "$linux" ${SUCHE_WAS} > /dev/null echo "Link für $linux eingefügt" >&2; } . /usr/lib/grub/grub-mkconfig_lib cd /boot; SUCHE_WAS="vmlinuz" && SETZE_LINK; SUCHE_WAS="initrd.img" && SETZE_LINK; }}} Nach jedem [[Vorlage(Befehl,"sudo update-grub")]] und somit auch bei einem Kernel-Upgrade wird damit automatisch eine Verlinkung zum jeweils aktuellen Kernel hergestellt. Dieses ist erforderlich, weil der normale Link im Rootverzeichnis zum Zeitpunkt, wenn das Btrfs-Dateisystem noch nicht konfiguriert (eingehängt) ist, ins Leere weist. Bei einem [:EFI_Bootmanagement:] wird diese Verlinkung automatisch an das `secure-boot` angepasst. = Probleme und Abhilfe = [[Vorlage(Warnung,"Falls es beim Booten in Zusammenhang mit dem Festplattentest zu einer Fehlermeldung kommt, sollte man überprüfen, ob es im Verzeichnis '''/sbin''' einen Link von '''fsck.btrfs''' nach '''btrfsck''' gibt und diesen ggf. im Terminal [1] anlegen mit: [[Vorlage(Befehl,'sudo ln -s /sbin/btrfsck /sbin/fsck.btrfs')]]")]] == fsck.btrfs == [[Vorlage(Experten,"Eine Prüfung der Partitionen wird in der Regel beim Hochfahren des Systems aufgerufen, sofern in der '''/etc/fstab''' am Ende der Zeile zum Einbinden des Laufwerkes bzw. Unterlaufwerkes (Subvolume) die zweitletzte Prüfzahl ungleich `0` gesetzt ist. Man kann alle Prüfzahlen auf `0 0` setzen und verkürzt damit die Bootzeit je Eintrag erheblich. Dann sollte man aber in regelmäßigen Abständen eine Prüfung manuell bzw. mittels [:Cron:] mit dem Befehl [#btrfsck btrfsck] ausführen!")]] Der Befehl `fsck.btrfs` ist __kein__ direkter Befehl aus den Paket '''btrfs-tools''', sondern wird in der Regel bei der Installation im Verzeichnis '''/sbin''' als Link auf den Befehl [:Befehle_Btrfs-Dateisystem#btrfsck:btrfsck] angelegt. Damit wird sichergestellt, das `mountall` eine relevante Sequenz für die Prüfung des Dateisystemes beim Booten findet. `mountall` bildet aus `fsck` und dem Eintrag in der '''/etc/fstab''' `btrfs` als Angabe zum Dateisystem dann den Befehl `fsck.btrfs`. == Defektes Btrfs-Raid == Wird in einem Btrfs-Dateisystem mit einem Btrfs-RAID-Verbund ein Teillaufwerk als defekt erkannt und das System will nicht mehr booten, so bieten sich zwei Varianten an: * Annahmen zum Beispiel * '''/dev/sda1''' sei intakt * '''/dev/sdb1''' sei defekt * '''/dev/sdc1''' sei die Reserve Sofern noch das Bootmenü erscheint, startet man mit der ersten Variante, ansonsten muss man gleich die zweite Variante benutzen. * Variante 1: Man drückt im Bootloader-Menü die Taste [[Vorlage(Tasten,e)]] nachdem man die relevante Startzeile mit den Pfeiltasten [[Vorlage(Tasten,hoch)]] / [[Vorlage(Tasten,runter)]] aufgerufen hat und ergänzt / editiert die folgenden Zeilen: {{{#!code bash set root='(hd1,msdos1)' search --no-floppy --fs-uuid --set=root 2f613613-85b4-46cf-bbbe-90a1748f7753 linux /@/boot/vmlinuz-3.2.0-7-generic root=UUID=2f613613-85b4-46cf-bbbe-90a1748f7753 ro rootflags=subvol=@ … }}} * Die Zeile 1 Sofern erforderlich, muss man hier die Daten auf die noch intakte Festplatte ändern, ausgehend vom Beispiel also auf: {{{set root='(hd0,msdos1)'}}} * Die Zeile 2 Musste Zeile 1 angepasst werden, dann deaktiviert man die Zeile 2 durch Voranstellen mit [[Vorlage(Tasten,#)]] (man beachte [wikipedia:QWERTY-Tastaturbelegung#Vereinigte_Staaten:US-Tastatur] = [[Vorlage(Tasten,shift + 3)]]) * Die Zeile 3 Man editiert / ergänzt die Zeile 3 bei den rootflags um `,degraded`: {{{ro rootflags=subvol=@,degraded ...}}} und startet dann den Bootprozess mit [[Vorlage(Tasten,F10)]]. * Variante 2: Man startet ein Live-System und überprüft als erstes mit [[Vorlage(Befehl,"sudo btrfsck /dev/sdXY")]] nacheinander die relevanten Laufwerke dahingehend, welches keine Fehler aufweist und bindet das Laufwerk ohne Fehler, nachfolgend mit '''/dev/sda1''' angenommen, ein. Weisen die Laufwerke keine Fehler auf, kann man versuchen, durch das Einsetzen von Schnappschüssen eine Lösung zu finden. [[Vorlage(Hinweis,"Man kann erst einmal versuchen, das __nicht__ funktionsfähige Laufwerk neu zu formatieren und dieses als Ersatz einzusetzen, so lange nicht andere, eindeutige Hinweise die Verwendung ausschließen.")]] Bei beiden Varianten gibt man am jeweiligen Desktop nacheinander in ein Terminal [1] ein: [[Vorlage(Befehl,"sudo mount -o degraded /dev/sda1 /mnt")]] [[Vorlage(Befehl,"sudo btrfs device add /dev/sdc1 /mnt")]] [[Vorlage(Befehl,"sudo btrfs device delete missing /mnt")]] Mit dem letzten Befehl wird gleichzeitig ein Abgleich der Daten vom ersten Laufwerk auf das neue Laufwerk eingeleitet - dieses kann je nach Umfang eine Zeit in Anspruch nehmen. Erst danach sollte man das defekte Laufwerk auch physisch aus dem Rechner entfernen. Mit dem Befehl [#Formatierung-ueberpruefen `btrfs filesystem show`] überprüft man die korrekte Ausführung - es sollte jetzt das Laufwerk '''/dev/sdc1''' mit einer neuen `devid` belegt und ein Teil des RAID-Verbundes sein. Man sollte noch (ggf. in einer [:chroot:]-Umgebung) den Zustand von [:GRUB_2/Reparatur#chroot-Methode:GRUB_2] erneuern bzw. wieder herstellen. = Links = * [:Btrfs-Dateisystem:Das Btrfs Dateisystem] {Übersicht} * [:FAQ_Btrfs-Dateisystem:Allgemeine Hinweise zum Btrfs Dateisystem] ## * [:Archiv/Installieren_auf_Btrfs-Dateisystem:Installieren auf Btrfs-Dateisystem] ## * [:Archiv/Konvertierung_nach_Btrfs:Konvertierung nach Btrfs] * [:Befehle_Btrfs-Dateisystem:Befehle Btrfs-Dateisystem] ## * [:Archiv/Btrfs-Mountoptionen:Btrfs-Mountoptionen] ==Informationen== * [wikipedia:Btrfs:Btrfs-Dateisystem] * [ubuntu_doc:community/btrfs: Ubuntu-Help Btrfs] * [https://btrfs.wiki.kernel.org/ btrfs.wiki.kernel.org] {us} * [http://www.admin-magazin.de/Das-Heft/2009/04/Das-neue-Linux-Dateisystem-Btrfs-im-Detail Btrfs im Detail] {de} * [http://www.funtoo.org/wiki/BTRFS_Fun funtoo.org Btrfs] {en} ==Downloads== ## * [http://packages.ubuntu.com/raring/btrfs-tools btrfs-tools] {de} {dl} (für [:Precise_Pangolin:] einsetzbares '''.deb'''-Paket) * [http://sourceforge.net/projects/partedmagic/ PartedMagic] {en} {dl} #tag: System, Installation, Btrfs, Dateisystem