Nástroj mkfs se používá k vytvoření souborového systému (ext2, ext3, ext4 atd.) na vašem systému Linux. Do mkfs byste měli zadat název zařízení, na kterém má být souborový systém vytvořen.
VAROVÁNÍ:Provedení těchto příkazů zničí všechna data ve vašem souborovém systému. Vyzkoušejte tedy tyto příkazy pouze na testovacím systému, kde vám nezáleží na ztrátě dat.
1. Zobrazit dostupné příkazy pro tvorbu souborového systému
Tvůrci souborového systému (příkazy mkfs*) se obvykle hledají v adresářích jako /sbin/, /sbin/fs, /sbin/fs.d, /etc/fs a /etc. Pokud nenalezen, nakonec prohledá adresáře nalezené v proměnné PATH.
Následující seznam ukazuje dostupné příkazy mkfs* v systému.
# 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
Pokud jste se souborovým systémem noví, přečtěte si o Ext2 vs Ext3 vs Ext4.
2. Vybudujte souborový systém na konkrétním zařízení
Aby bylo možné sestavit souborový systém pomocí příkazu mkfs, požadované argumenty jsou název_souboru zařízení a typ souborového systému, jak je uvedeno níže. Následující příklad vytvoří souborový systém ext3 na oddílu /dev/sda6.
# 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
Upozorňujeme, že výchozí typ souborového systému pro příkaz mkfs je ext2. Pokud nezadáte volbu „-t“, vytvoří se souborový systém ext2.
Také můžete použít metodu, kterou jsme probrali dříve, abyste zjistili, zda máte souborový systém ext2 nebo ext3 nebo ext4.
3. Vytvořte souborový systém s deníkem pomocí volby -j
Níže uvedený příklad vytváří souborový systém s žurnálováním.
# 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
Pokud nepotřebujete žurnálování na souborovém systému, spusťte příkaz mke2fs, jak je ukázáno níže.
# mke2fs /dev/sda6
4. Zkontrolujte chybné bloky na zařízení
Před vytvořením souborového systému můžete zkontrolovat, zda v systému nejsou žádné špatné bloky pomocí volby -c, jak je uvedeno níže. To provede test pouze pro čtení na souborovém systému, aby se ujistil, že neexistují žádné špatné bloky. Můžete také provést test čtení a zápisu, abyste ověřili, že neexistují žádné špatné bloky pomocí volby „-c -c“. Upozorňujeme, že to bude pomalejší než volba „-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. Vynutit vytvoření souborového systému na připojeném oddílu
Doporučuje se neprovádět žádné operace se souborovým systémem na připojeném oddílu. Stále jej však můžete vynutit, aby vytvořil souborový systém na používaném oddílu nebo připojeném oddílu pomocí volby -F, jak je uvedeno níže.
# mke2fs -F /dev/sda6
6. Bajtů na skupinu inodů na oddílu
Možná budete chtít pomocí příkazu df vypsat použité a dostupné inody v oddílu, jak je uvedeno níže.
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 11 1120101 1% /mydata
Jak je vidět výše, na /dev/sda6 je IUsed 11 z 1120112. Jakmile se na něm vytvoří nový soubor, hodnota IUsed se odpovídajícím způsobem změní, jak je uvedeno níže.
# 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
Můžete také použít příkaz tune2fs k zobrazení podrobností Inode:
# tune2fs -l /dev/sda6 | grep Inode Inode count: 1120112 Inodes per group: 8176 Inode blocks per group: 511 Inode size: 256
Chcete-li změnit inode-per-group výše uvedeného oddílu (tj.:/dev/sda6), použijte volbu -i následovně:
# 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
Jak je vidět výše, bajty na inod se změnily na 8192 z výchozí hodnoty 16384. Nyní se limit inodů oddílu zvýšil, jak je uvedeno níže.
# 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
Změna hodnoty inodů na skupinu prostě nic jiného než ovlivnění počtu souborů, které mají být na oddílu zachovány. Snížení této hodnoty znamená zvýšení počtu souborů na oddílu.
7. Změňte velikost Inode na oddílu
Je možné změnit velikost inodu na oddílu pomocí volby I a i, jak je uvedeno níže.
# 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
Jak je vidět výše, velikost se mění z 256 na 128, což vede ke zvýšení celkového počtu inodů na oddílu:
# tune2fs -l /dev//sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 511 Inode size: 128
8. Nastavte štítek svazku pro oddíl
Název/název pro oddíl můžete vytvořit pomocí volby -L. V následujícím příkladu přiřazujeme DATA jako označení oddílu /dev/sda6.
# 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
Název štítku výše uvedeného oddílu můžete zobrazit pomocí příkazu e2label, jak je uvedeno níže:
# e2label /dev/sda6 DATA
Dalším způsobem, jak zobrazit štítek oddílu, je použití příkazu blkid, jak je ukázáno níže:
# blkid /dev/sda6 /dev/sda6: LABEL="DATA" UUID="0de74d35-6050-4838-99b0-46cb1d518da8" TYPE="ext2"
9. Simulovat vytváření souborového systému
Při provádění příkazu mkfs zobrazí obsah, jako by to udělal na stdout. Tyto zprávy můžete dokonce zobrazit na stdout, aniž byste ve skutečnosti vytvořili souborový systém pomocí volby -n, jak je uvedeno níže:
# 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. Vytvořte souborový systém s určitým počtem inodů
mkfs poskytuje možnost vytvořit souborový systém s počtem požadovaných inodů. Umožňuje vám přepsat výchozí počet inodů na souborový systém na základě poměru bajtů na inod, jak je ukázáno níže.
# 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
Výše uvedené lze ověřit pomocí příkazu tune2fs i df, jak je ukázáno níže.
# 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