mkfs — создать файловую систему
Команда mkfs создаёт на разделе пустую файловую систему ext4 или xfs; прежние данные на разделе становятся недоступны.
Шпаргалка
7 команд Версия для печати-
lsblk -f /dev/vdbчто на диске сейчас -
sudo mkfs.ext4 /dev/vdb1ext4 на разделе -
sudo mkfs.ext4 -L data /dev/vdb1сразу с меткой data -
sudo mkfs -t ext4 /dev/vdb1то же через mkfs -t -
sudo mkfs.xfs -L logs /dev/vdb2xfs с меткой -
sudo mkfs.ext4 -n /dev/vdb1показать параметры, не создавая -
sudo blkid /dev/vdb1UUID новой ФС для fstab
Обзор
mkfs (make filesystem) записывает на раздел служебные структуры
файловой системы: суперблок с её параметрами, таблицы inode,
журнал. После этого раздел можно смонтировать и класть на него файлы. mkfs.ext4,
mkfs.xfs — отдельные программы для каждого типа, mkfs -t тип просто вызывает
нужную.
Порядок подготовки нового диска: таблица и раздел (fdisk-parted) → файловая
система (mkfs) → монтирование (mount).
При создании файловая система получает UUID, а с -L —
метку. Оба значения печатает blkid, по ним раздел
записывают в /etc/fstab. Повторный mkfs на том же разделе даёт новый UUID, и
старая строка fstab перестаёт находить раздел.
Чем отличаются ext4 и xfs, как их проверять и чинить — в статье Файловые системы.
Ключи
10Ниже ключи mkfs.ext4 (это mke2fs) и mkfs.xfs. Полный список — man mke2fs,
man mkfs.xfs.
| Ключ | Что делает | Пример |
|---|---|---|
-L LABEL |
Метка файловой системы — имя для LABEL= в fstab и lsblk -f. | sudo mkfs.ext4 -L data /dev/vdb1 |
-t TYPE |
Тип файловой системы для mkfs — ext4, xfs, vfat. | sudo mkfs -t ext4 /dev/vdb1 |
-m PERCENT |
Сколько процентов места оставить только root; по умолчанию 5. | sudo mkfs.ext4 -m 1 /dev/vdb1 |
-n |
Показать, что будет создано, ничего не записывая. | sudo mkfs.ext4 -n /dev/vdb1 |
-q |
Не печатать ход работы — для скриптов. | sudo mkfs.ext4 -q /dev/vdb1 |
-L LABEL |
Метка xfs, до 12 символов. | sudo mkfs.xfs -L logs /dev/vdb2 |
-F |
Не переспрашивать, даже если на устройстве уже есть ФС. опасно | sudo mkfs.ext4 -F /dev/vdb1 |
-i BYTES |
Один inode на столько байт; меньше число — больше inode. | sudo mkfs.ext4 -i 4096 /dev/vdb1 |
-U UUID |
Задать UUID вместо случайного. | sudo mkfs.ext4 -U 3f6c1a2e-9b7d-4c55-8e21-6d0b9a4f7c13 /dev/vdb1 |
-f |
Перезаписать существующую файловую систему. опасно | sudo mkfs.xfs -f /dev/vdb2 |
Ничего не найдено. Попробуй запрос короче.
Рецепты
5Найти раздел по метке
Меньше места под root на большом диске
ext4 по умолчанию оставляет 5% места только для root. На диске данных это лишние
гигабайты; уже созданной ФС резерв меняет tune2fs -m.
Много мелких файлов
Число inode задаётся при создании. Если файлов миллионы, а inode кончаются раньше места, ФС приходится пересоздавать — см. место на диске.
Файловая система в файле
Подробнее — в статье Loop-устройство.
Неполадки
6contains a ext4 file system … Proceed anyway? (y,N)
На разделе уже есть файловая система, и mkfs.ext4 переспрашивает. Ответ y
сотрёт её. Если раздел нужен — ответь N и проверь имя через lsblk -f.
/dev/vdb1 is mounted; will not make a filesystem here!
Раздел смонтирован, на нём работают. Если его действительно надо пересоздать —
сначала отмонтируй (sudo umount /dev/vdb1) и убери строку из fstab.
appears to contain an existing filesystem (mkfs.xfs)
mkfs.xfs нашёл чужую файловую систему и отказался. Перезапись — ключом -f,
когда ты уверен, что раздел не нужен. На смонтированном разделе он отвечает
contains a mounted filesystem и печатает справку — сначала umount.
The file /dev/vdb1 does not exist and no size was specified
Раздела нет: опечатка в имени или ядро не перечитало таблицу. Сверь с lsblk,
после разметки выполни sudo partprobe /dev/vdb.
После mkfs раздел не монтируется по fstab
mkfs выдал новый UUID, а в fstab остался старый. Возьми новый из
sudo blkid /dev/vdb1 и поправь строку — см. mount.
mkfs на весь диск вместо раздела
mkfs.ext4 /dev/vdb (без цифры) создаёт ФС на всём диске поверх таблицы
разделов. Так работать можно, но разделы пропадут. Если нужен раздел — сначала
fdisk-parted, потом mkfs на /dev/vdb1.
Опасно
2mkfs стирает раздел без отката
Новая файловая система ложится поверх старой, прежние файлы становятся
недоступны сразу. Переспрашивает mkfs.ext4 только в терминале: в скрипте и в
конвейере он молча пишет поверх существующей ФС. Перед запуском проверь устройство: lsblk -f покажет его тип,
метку и точку монтирования. /dev/vdb1 на разных машинах и после перезагрузки
может быть разным разделом.
mkfs, чтобы «починить» раздел
Если раздел не монтируется из-за неверной строки fstab, mkfs не лечит, а
стирает данные. Сначала сравни строку fstab с выводом blkid.
См. также
- fdisk-parted — создать раздел перед mkfs.
- blkid — UUID, метка и тип новой файловой системы.
- mount — подключить ФС и записать её в fstab.
- filesystems — ext4 и xfs, проверка fsck, tune2fs.
- lsblk — посмотреть диски и их файловые системы.
- loop-device — потренироваться на файле вместо диска.
Есть неточность? Сообщить об ошибке в статье