Das Dienstprogramm mkfs wird verwendet, um ein Dateisystem (ext2, ext3, ext4 usw.) auf Ihrem Linux-System zu erstellen. Sie sollten mkfs den Gerätenamen angeben, auf dem das Dateisystem erstellt werden soll.
WARNUNG:Das Ausführen dieser Befehle zerstört alle Daten in Ihrem Dateisystem. Probieren Sie diese Befehle also nur auf einem Testsystem aus, auf dem Sie sich nicht um den Verlust Ihrer Daten kümmern.
1. Sehen Sie sich die verfügbaren Filesystem Builder-Befehle an
Die Dateisystem-Builder (mkfs*-Befehle) werden normalerweise in Verzeichnissen wie /sbin/, /sbin/fs, /sbin/fs.d, /etc/fs und /etc gesucht. Wenn es nicht gefunden wird, durchsucht es schließlich die Verzeichnisse, die in der PATH-Variablen gefunden werden.
Die folgende Liste zeigt die verfügbaren mkfs*-Befehle in einem System.
# cd /sbin # ls mkfs* mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat
Wenn Sie neu im Dateisystem sind, lesen Sie über Ext2 vs. Ext3 vs. Ext4.
2. Erstellen Sie ein Dateisystem auf einem bestimmten Gerät
Um das Dateisystem mit dem Befehl mkfs zu erstellen, sind die erforderlichen Argumente Gerätedateiname und Dateisystemtyp, wie unten gezeigt. Das folgende Beispiel erstellt ein ext3-Dateisystem auf der /dev/sda6-Partition.
# mkfs -t ext3 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Bitte beachten Sie, dass der Standarddateisystemtyp für den mkfs-Befehl ext2 ist. Wenn Sie die Option „-t“ nicht angeben, wird ein ext2-Dateisystem erstellt.
Außerdem können Sie die zuvor besprochene Methode verwenden, um festzustellen, ob Sie ein ext2-, ext3- oder ext4-Dateisystem haben.
3. Erstellen Sie ein Dateisystem mit Journal mit der Option -j
Das unten angegebene Beispiel erstellt ein Dateisystem mit Journaling.
# mke2fs /dev/sda6 -j mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Wenn Sie das Journaling auf einem Dateisystem nicht benötigen, führen Sie den mke2fs-Befehl wie unten gezeigt aus.
# mke2fs /dev/sda6
4. Auf fehlerhaften Blöcken auf einem Gerät suchen
Bevor Sie ein Dateisystem erstellen, können Sie überprüfen, ob das System keine fehlerhaften Blöcke enthält, indem Sie die Option -c wie unten gezeigt verwenden. Dadurch wird ein Nur-Lese-Test auf dem Dateisystem durchgeführt, um sicherzustellen, dass keine fehlerhaften Blöcke vorhanden sind. Sie können auch einen Lese-Schreib-Test durchführen, um zu überprüfen, ob keine fehlerhaften Blöcke vorhanden sind, indem Sie die Option „-c -c“ verwenden. Bitte beachten Sie, dass dies langsamer ist als die Option „-c“.
# mke2fs -c /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
5. Erzwingen, dass ein Dateisystem auf einer gemounteten Partition erstellt wird
Es wird empfohlen, keine Dateisystemoperationen auf einer gemounteten Partition durchzuführen. Aber dennoch können Sie es zwingen, ein Dateisystem auf einer in Gebrauch befindlichen Partition oder einer gemounteten Partition mit der Option -F zu erstellen, wie unten gezeigt.
# mke2fs -F /dev/sda6
6. Bytes pro Inode-Gruppe auf einer Partition
Sie können die verwendeten und verfügbaren Inodes in der Partition wie unten gezeigt mit dem Befehl df auflisten.
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 11 1120101 1% /mydata
Wie oben zu sehen ist, ist IUsed auf /dev/sda6 11 von 1120112. Nachdem die neue Datei darauf erstellt wurde, ändert sich der Wert von IUsed entsprechend wie unten gezeigt.
# cd /mydata # touch sample.txt # ls sample.txt # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 12 1120100 1% /mydata
Sie können auch den Befehl tune2fs verwenden, um die Inode-Details anzuzeigen:
# tune2fs -l /dev/sda6 | grep Inode Inode count: 1120112 Inodes per group: 8176 Inode blocks per group: 511 Inode size: 256
Um die Inode-pro-Gruppe der obigen Partition (z. B.:/dev/sda6) zu ändern, verwenden Sie die Option -i wie folgt:
# mke2fs -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Wie oben zu sehen, wurden die Bytes pro Inode vom Standardwert von 16384 auf 8192 geändert. Jetzt wurde das Inode-Limit der Partition wie unten gezeigt erhöht.
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 2240224 11 2240213 1% /mydata # tune2fs -l /dev/sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 1022 Inode size: 256
Das Ändern des Werts von Inodes-per-Group hat nur Auswirkungen auf die Anzahl der Dateien, die auf der Partition aufbewahrt werden sollen. Durch Verringern dieses Werts wird die Anzahl der Dateien auf einer Partition erhöht.
7. Ändern Sie die Inode-Größe auf einer Partition
Es ist möglich, die Größe eines Inodes auf einer Partition mit den Optionen I und i wie unten gezeigt zu ändern.
# mke2fs -I 128 -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Wie oben zu sehen ist, wird die Größe von 256 auf 128 geändert, was zu einer Erhöhung der Gesamtzahl der Inodes auf einer Partition führt:
# tune2fs -l /dev//sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 511 Inode size: 128
8. Legen Sie die Datenträgerbezeichnung für die Partition fest
Mit der Option -L können Sie einen Namen/eine Bezeichnung für eine Partition erstellen. Im folgenden Beispiel weisen wir DATA als Bezeichnung für die /dev/sda6-Partition zu.
# mke2fs -L DATA /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label=DATA OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Sie können den Label-Namen der obigen Partition anzeigen, indem Sie den Befehl e2label wie unten gezeigt verwenden:
# e2label /dev/sda6 DATA
Eine andere Möglichkeit, das Label einer Partition anzuzeigen, ist die Verwendung des blkid-Befehls, wie unten gezeigt:
# blkid /dev/sda6 /dev/sda6: LABEL="DATA" UUID="0de74d35-6050-4838-99b0-46cb1d518da8" TYPE="ext2"
9. Simulieren Sie eine Dateisystemerstellung
Beim Ausführen des mkfs-Befehls wird der Inhalt so angezeigt, wie er es auf stdout tun würde. Sie können diese Meldungen sogar auf stdout anzeigen, ohne tatsächlich ein Dateisystem zu erstellen, indem Sie die Option -n verwenden, wie unten gezeigt:
# mkfs -t ext3 -n /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
10. Erstellen Sie ein Dateisystem mit einer bestimmten Anzahl von Inodes
mkfs bietet die Möglichkeit, das Dateisystem mit der Anzahl der gewünschten Inodes zu erstellen. Es ermöglicht Ihnen, die Standardanzahl von Inodes pro Dateisystem basierend auf dem Byte-pro-Inode-Verhältnis zu überschreiben, wie unten gezeigt.
# mkfs -t ext3 -v -N 700000 /dev/sda6 mke2fs 1.42 (29-Nov-2011) fs_types for mke2fs.conf resolution: 'ext3' Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 701440 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 5120 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Das obige kann sowohl mit tune2fs als auch mit dem df-Befehl überprüft werden, wie unten gezeigt.
# tune2fs -l /dev/sda6 | grep -i inode Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file Inode count: 701440 Free inodes: 701429 Inodes per group: 5120 Inode blocks per group: 320 First inode: 11 Inode size: 256 Journal inode: 8 Journal backup: inode blocks # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 701440 11 701429 1% /mnt