Linux. Команда mkfs
18.08.2023
Теги: CLI • Linux • БлочноеУстройство • Команда • ФайловаяСистема
Команда mkfs (make file system) используется для создания файловой системы на блочном устройстве, таком как жесткий диск или флэш-накопитель. Без создания файловой системы устройство не может быть использовано для хранения данных.
Команда mkfs
Синтаксис команды mkfs выглядит следующим образом
$ mkfs [опции] [-t тип_фс] [опции_фс] устройство
$ mkfs.тип_фс [опции] [опции_фс] устройство
Команда является оберткой для утилит, которые создают указанную файловую систему. Поэтому есть опции самой команды и есть опции файловой системы, которые mkfs передает этим утилитам. Например, при вызове mkfs.ntfs — будет вызвана утилита /usr/sbin/mkntfs, при вызове mkfs.ext4 — будет вызвана утилита /usr/sbin/mke2fs.
Опции команды mkfs
-tили--type— тип файловой системы, по умолчаниюext2-Vили--verbose— подробная информация; указание два раза приведет к тестовому запуску-Vили--version— информация о используемой версии-hили--help— краткая справка о команде
Опция -V отображает информацию о версии только в том случае, когда является единственной; в противном случае опция будет выводить подробную информацию о процессе создания файловой системы.
Файловые системы
Посмотреть, какие файловые системы доступны можно с помощью команды mkfs + Tab + Tab
$ mkfs Tab Tab mkfs mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.ntfs mkfs.bfs mkfs.cramfs mkfs.ext3 mkfs.minix mkfs.xfs
Самой популярная файловая система Linux в настоящее время — ext4. Она проверена, надёжна и является стандартной для ряда дистрибутивов. Позволяет уменьшить фрагментацию файлов и работать с очень большими дисками, разделами и файлами.
Создание файловой системы bfs вряд когда-либо потребуется, так как она является загрузочной и создаётся при установке Linux.
Система fat или vfat обычно используется на внешних подключаемых носителях — флеш-накопителях и картах памяти.
Файловая система ntfs может потребоваться в том случае, если нужна совместимость с ОС Windows, для которой она родная.
Команда mke2fs
Именно эта команда отвечает за создание файловых систем ext2, ext3, ext4 — можно вызывать ее напрямую, не через mkfs.extN.
$ mke2fs [-t ext2|ext3|ext4] [опции] устройство
Опции команды mke2fs
-t— тип файловой системы, по умолчаниюext2-c— проверка на поврежденные блоки, рекомендуется перед созданием ФС-n— холостой запуск — что будет сделано при реальном запуске-d dir— копировать директориюdirв корень новой файловой системы-V— подробная информация о процессе создания файловой системы
Создание файловых систем
У меня виртуальная машина, у которой два диска — /dev/sda и /dev/sdb.
$ sudo fdisk -l Диск /dev/sda: 25 GiB, 26843545600 байт, 52428800 секторов Disk model: VBOX HARDDISK Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: gpt Идентификатор диска: DA663EDF-5E42-42E3-9DAF-2E6A9AEBB59E Устр-во начало Конец Секторы Размер Тип /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 1054719 1050624 513M EFI /dev/sda3 1054720 52426751 51372032 24,5G Файловая система Linux Диск /dev/sdb: 8 GiB, 8589934592 байт, 16777216 секторов Disk model: VBOX HARDDISK Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: gpt Идентификатор диска: B091D135-5779-6245-B8BB-CBF0A3E670E7 Устр-во начало Конец Секторы Размер Тип /dev/sdb1 2048 4196351 4194304 2G Файловая система Linux /dev/sdb2 4196352 8390655 4194304 2G Файловая система Linux /dev/sdb3 8390656 12584959 4194304 2G Файловая система Linux /dev/sdb4 12584960 16777182 4192223 2G Файловая система Linux
На диске /dev/sdb созданы четыре раздела (см. здесь и здесь). Давайте создадим на них четыре разные файловые системы — ext4, vfat, xfs и btrfs. При этом некоторые команды создания ФС будут недоступны — так что нужно установить недостающие пакеты. Какие команды создания файловых систем доступны — можно посмотреть с помощью mkfs + Tab + Tab.
$ sudo mkfs.ext4 /dev/sdb1
$ sudo apt install dosfstools $ sudo mkfs.vfat /dev/sdb2
$ sudo apt install xfsprogs $ sudo mkfs.xfs /dev/sdb3
$ sudo apt install btrfs-progs $ sudo mkfs.btrfs /dev/sdb4
btrfs в репозитории может иметь различные названия — btrfsprogs, btrfs-progs, btrfs-tools.
И посмотрим что получилось с помощью команды parted
$ sudo parted /dev/sdb print Модель: ATA VBOX HARDDISK (scsi) Диск /dev/sdb: 8590MB Размер сектора (логич./физич.): 512B/512B Таблица разделов: gpt Флаги диска: Номер Начало Конец Размер Файловая система Имя Флаги 1 1049kB 2149MB 2147MB ext4 2 2149MB 4296MB 2147MB fat32 3 4296MB 6443MB 2147MB xfs 4 6443MB 8590MB 2146MB btrfs
Поиск: CLI • Linux • Команда • mkfs • mke2fs • ext4 • Файловая система • Блочное устройство