Linux. Команда mkfs

18.08.2023

Теги: CLILinuxБлочноеУстройствоКомандаФайловаяСистема

Команда 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 • Файловая система • Блочное устройство

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.