Буквы в mkfs значке означают “make file system” (создать файловую систему). Команда обычно используется для управления устройствами хранения в Linux. Вы можете рассматривать mkfs как инструмент командной строки для форматирования диска в определенной файловой системе.
mkfs -t [fs type] [target device]
Вы также можете использовать команду mkfs следующим образом:
mkfs.[fs type] [target device]
В этой статье мы в общих чертах расскажем, что такое файловая система. А также приведем примеры эффективного использования команды mkfs.
Поскольку команда mkfs работает с дисками и разделами, вам необходимо быть пользователем root или sudo с правами доступа для запуска команд администратора.
MKFS это мощный инструмент. Важно понимать потенциальные последствия изменения файловой системы. Выбор неправильного узла устройства удалит все данные на этом устройстве. Используйте эту команду на свой страх и риск. Вы были предупреждены
Что такое файловая система
Файловая система (fs) относится к структуре и логике, которые управляют данными на устройстве. Файловая система контролирует, как данные хранятся и извлекаются.
Существует много типов файловых систем, каждая из которых имеет свои преимущества и недостатки. Вот наиболее распространенный тип файловых систем:
- FAT*
- NTFS
- ext*
- APFS
- HFS*
Возможно, вы уже сталкивались с одним или несколькими из этих типов файловых систем. Вы можете даже связать типы с их соответствующими операционными системами.
Вообще говоря, FAT/NTFS предназначены для Windows, Ext используется с системами Linux, а APFS/HFS – файловые системы macOS. Каждый из них по-разному обращается к логике файловой структуры, что может привести к проблемам.
Вот почему важно подумать об этом перед объявлением типа файловой системы или «форматированием» вашего устройства. Каждый вариант использования индивидуален, и вам решать, какая файловая система лучше всего подходит для ваших нужд.
Примеры команд mkfs
Позвольте нам показать вам наиболее распространенное использование команды mkfs.
Пожалуйста, не пытайтесь использовать вслепую ни одну из этих команд в вашей реальной системе. Они отформатирует целевое устройство/раздел диска, удалив все данные.
mkfs без опций создает файловую систему ext2
Если вы не укажете тип файловой системы для целевого устройства, он будет использовать файловую систему ext2 по умолчанию.
sudo mkfs /dev/sdb1
Укажите тип файла с помощью mkfs
Использование ext2 не очень удобно или целесообразно. В наши дни большинство систем Linux рекомендуют использовать ext4. Вы можете указать файловую систему следующим образом:
sudo mkfs -t ext4 /dev/sdb1
Вы также можете использовать это так:
sudo mkfs.ext4 /dev/sdb1
Проверьте наличие плохих блоков на устройстве
Вы также можете проверить наличие плохих блоков на устройстве, но имейте в виду, что проверка часто занимает много времени.
sudo mkfs -c /dev/sdb1
Бонусный совет: проверьте тип файловой системы устройства
Вы можете проверить тип файловой системы устройства, которое вы только что отформатировали, используя команду mkfs. Вы можете использовать команду file для этой цели.
sudo file -sL /device
Вот пример, который показывает, какой вывод он может показать:
linux@andreyex:~$ sudo file -s /dev/nvme0n1p2 /dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)
Реальный пример использования: использование команды mkfs для создания файловой системы на USB-устройстве.
Теперь, когда у вас есть некоторая справочная информация, вы можете начать использовать mkfs.
Самая практическая демонстрация, которую мы можем придумать, – это форматирование USB-накопителя. Эти же принципы будут применяться к любому типу хранилища по вашему выбору.
Найди свое устройство
Сначала вам нужно будет найти свое устройство. Один метод, который вы можете использовать, это sudo fdisk -l. Это перечислит все дисковые узлы, которые в настоящее время смонтированы.
destroyer@linux-andreyex:~$ sudo fdisk -l Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x3c62c49c Device Boot Start End Sectors Size Id Type /dev/sda1 * 4096 1023998 1019903 498M 83 Linux /dev/sda2 1024000 44036094 43012095 20.5G 83 Linux /dev/sda3 44036096 52424702 8388607 4G 82 Linux swap / Solaris Disk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectors Disk model: Patriot Memory Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9A Device Start End Sectors Size Type /dev/sdb1 2048 60626910 60624863 28.9G Linux filesystem
Ваш вывод, очевидно, будет различным. Пожалуйста, будьте очень осторожны при определении желаемого диска . Если вы не уверены, извлеките диск и повторите команду fdisk -l. Если у вас есть правильное устройство, оно не будет отображаться во время отключения.
Проверьте раздел
Устройство, которое мы используем, является USB-накопителем Patriot Memory, и оно находится по адресу /dev/sdb. В дополнение к определению правильного диска, вам нужно будет убедиться, что вы меняете fs нужного раздела.
Мы использовали инструменты fdisk, чтобы удалить существующие данные и написать новую таблицу разделов. Пока мы делали это, мы создали новый раздел для записи. Этот раздел будет нашей целью /dev/sdb1.
Отсоединение
Прежде чем пытаться изменить файловую систему, вам нужно размонтировать ее с помощью команды umount.
destroyer@linux-andreyex:~$ sudo umount /dev/sdb1
Создать файловую систему
Теперь, когда вы проверили свою цель и размонтировали диск, вы можете приступить к созданию файловой системы.
Мы добавили опцию -v verbose, чтобы отобразить больше информации при запуске.
destroyer@linux-andreyex:~$ sudo mkfs.ext4 /dev/sdb1 -v mke2fs 1.45.5 (07-Jan-2020) fs_types for mke2fs.conf resolution: 'ext4' Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1896832 inodes, 7578107 blocks 378905 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2155872256 232 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Filesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921d 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
Этот процесс может занять некоторое время, но должен завершиться менее чем за 20 минут, если цель не превышает 2 ТБ.
У нас было несколько проблем с программой, висящей на последнем пункте. К сожалению, нет индикатора прогресса, и мы не видели ошибок.
Проверьте вновь созданную файловую систему
Сначала проверьте файловую систему устройства, которое вы только что использовали. Это тот, который вы хотели?
sudo file -sL /dev/sdb1
Важно убедиться, что устройство распознается в системах, с которыми оно будет использоваться. Мы создали папку с именем test и внутри нее файл с именем test.txt.
Чтобы сэкономить время, вы можете скопировать и вставить мои команды здесь.
mkdir test && cd test touch test.txt echo "THIS IS ONLY A TEST" > test.txt cat test.txt
Если все работает, вы сможете смонтировать диск в нужные вам системы и получить доступ к файлам. Если вы не можете получить доступ к файлам в вашей системе, возможно, существует проблема совместимости.
Вывод
Мы надеемся, что вы найдете это краткое руководство по команде mkfs полезным. Если вам нравится эта статья, пожалуйста, поделитесь ее в социальных сетях.
Если у вас есть какие-либо комментарии или вопросы, пожалуйста, оставьте их ниже. Если у вас есть предложения по темам, которые вы бы хотели охватить, не стесняйтесь также оставлять их.