tune2fs -l /dev/sda1 | grep -i 'block size'bzw. mit
tune2fs -l UUID=a806826e-99be-4515-bfb6-1b965e3c774e | grep -i 'block size'alternativ geht auch:
dumpe2fs -h
Bevor man Datenträger verwenden kann, muß auf den Partitionen auch noch ein Dateisystem angelegt werden, oder wie man (eigentlich nicht ganz korrekt) sagt, formatiert werden.
Linux kennt nicht nur ein Dateisystem, sondern sehr viele (50+) teile sehr spezielle Dateisysteme. Diese werden lokal, remote und im cluster eingesetzt und haben deshalb unterschiedliche Vor- und Nachteile.
Oft verwendet werden ext4 und XFS. Aber auch das von Solaris stammende ZFS hat viele Anhänger. Eine genaue Übersicht findet sich bei Wikipedia (Eng).
Block-größe 1) | maximale Dateigröße | maximale Dateisystemgröße |
---|---|---|
1 KiB | 16 GiB | 2 TiB |
2 KiB | 256 GiB | 8 TiB |
4 KiB | 2 TiB | 16 TiB |
8 KiB 2) | 2 TiB | 32 TiB |
tune2fs -O extents,uninit_bg,dir_index /dev/sda1
3) Anschließend ein Dateisystemcheck:
fsck -fCVD /dev/sda1
Von da an kann das neue Dateisystem nicht mehr als ext3 gemountet werden, eine Konvertierung zurück ist ausgeschlossen. Ein ext3-Dateisystem kann jedoch als ext4 gemountet werden Es bleibt dennoch ein ext3-System, bis es explizit konvertiert wird. Die maximale Dateigröße steigt bei 4k Blöcken auf 16TiB. Bis 29.11.2011 limitierten die e2fsprogs die maximale Volumegröße auf 16 TB, mit der Version 1.42 von e2fsprogs ist diese Hürde entfallen, für Online-Resizing ist aber ein Kernel ab Version 3.2 erforderlich 4), offline funktioniert es immer noch nicht. Siehe auch: ext3 und reiserfs im Detail, The Ongoing Evolution of Ext4 le system und Quo vadis Linux File Systems: An operations point of view on EXT4 and BTRFS.
Wer konservativ ist, oder sich nicht entscheiden kann, wählt einfach mit einem aktuellen Kernel einfach ext4.
Ein Dateisystem wird mit dem Befehl mkfs angelegt. mkfs
ist dabei eigentlich nur eine Art Verteiler, welcher dann das eigentliche Pogramm aufruft, da jedes Dateisystem seinen eigenen Befehl zum erzeugen hat. Der Parameter -t sagt mkfs
welches Dateisystem wir anlegen wollen. Dann muß mkfs
natürlich auch noch wissen, welche Partition wir formatieren wollen, daher muß auch noch der Gerätename mit Partitionsnummer angegeben werden:
mkfs -t reiserfs /dev/hda1
legt z. B. eine ReiserFS-Partition auf hda1 an. mkfs
ruft dabei in Wirklichkeit mkreiserfs
auf welches das ReiserFS anlegt. Der direkte Befehl um ext2/ext3 Partitionen anzulegen, lautet mke2fs
, wobei der Parameter -j zusätzlich ein Journal anlegt (also aus dem ext2 ein ext3 Dateisystem macht).
mkswap
gefolgt vom Gerätenamen mit Partitionsnummer formatiert.mkdosfs
gefolgt von der Gerätebezeichnung anlegen.Dateisysteme mit Journaling enthalten ein Journal (eine Art Logbuch) für Datenverändernde Transaktionen. Bei Störungen (Strom weg etc.) fällt das beim nächsten Check des Journals auf und der Fehler kann behoben werden.
Daher benötigen Dateisysteme mit Journalen nicht nach jedem Absturz des Systems einen kompletten Dateisystemcheck und man spart Bootzeit und sichert dennoch Datenkonsistenz. Vertreter sind z.B. ext3 und ReiserFS.
Die meisten Distributionen checken standardmäßig nach einer bestimmten Zeit oder einer bestimmten Anzahl von mounts die Dateisysteme durch. Wenn man dennoch auf solchen Datenträgern von Zeit zu Zeit ein Dateisystemcheck durch führen will gibt es dazu das Kommando fsck
das mit root-Rechten ausgeführt werden muss und bei einem nicht eingehängten Dateisystem angewendet werden kann.
Bei (automatisch beim booten) gemounteten Datenträgern wird ein eventueller Dateisystemcheck vorgenommen, wenn der letzte Parameter der /etc/fstab
eine 1 oder 2 ist, wobei Partitionen mit einer 1 zuerst gecheckt werden, dann die mit einer 2. Dieser Check wird von Zeit zu Zeit ausgeführt, was man dann an einer längeren Bootzeit bemerkt. Mit fsck -t Dateisystemtyp Gerätename kann dieser Check auch manuell vorgenommen werden. Dabei darf der Datenträger nicht gemountet oder allenfalls nur read only gemountet sein.
mit tune2fs kann man u.A. folgende Dateisystemparameter bei ext2/3 einstellen:
Möglichkeiten | Welcher Parameter |
---|---|
Die Anzahl der mounts nach dem das Dateisystem mal wieder komplett gecheckt wird | -c [Zahl] |
Den Speicherplatz (prozentual) der für root reservierten ist | -m [Zahl] |
Den Speicherplatz (Blöcke) die für root reservierten ist | -r [Zahl] |
Fehlerverhalten (continue, remount-ro, panic) | -e |
Datenträgerbezeichnung (Volume-Label) setzen | -L [Bezeichnung] |
Der Befehl
sudo tune2fs -c 40 -i 60 -m 0 -L filme1 /dev/sda1
würde also beim 40 mounts oder nach 60 Tagen (was eher zutrifft) wieder das Dateisystem komplett checken, für root keinen Speicherplatz reservieren und die Bezichnung/das Label „filme1“ vergeben. Genaueres liefert der Befehl man tune2fs
.
Einige Hersteller (Netapp, …) formatieren Datenträger auf 520B Sektorgröße, die muss man wieder zeitaufwendig umformatieren:
smartctl -i /dev/$Disk [...] Logical block size: 520 bytes
apt install sg3-utils
--format zerstört alle Daten!
sg_format -v --format --size=512 /dev/$Disk
bei 4k protection ist u.U. fmtpinfo nötig:
sg_format --format --size=512 --fmtpinfo=0 /dev/sda
Quellen:
tune2fs -l /dev/sda1 | grep -i 'block size'bzw. mit
tune2fs -l UUID=a806826e-99be-4515-bfb6-1b965e3c774e | grep -i 'block size'alternativ geht auch:
dumpe2fs -h