Как использовать команду mkfs в Linux

Перед использованием любого устройства хранения данных, подключенного к компьютеру Linux, необходимо создать файловую систему. Узнайте, как использовать mkfs и другие утилиты для работы с любыми файловыми системами. Мы покажем вам, как это сделать.

mkfs создает файловые системы

Команда mkfs делает файловые системы. В других операционных системах создание файловой системы называется форматирование. Независимо от названия, это процесс, который подготавливает раздел для хранения данных. Да, разделу нужен способ хранения файлов. Но ему также нужен механизм для хранения имен и местоположений этих файлов вместе с их метаданными, такими как отметка времени создания файла, отметка времени изменения файла, размер файла и т. Д. После того, как mkfs создаст необходимую среду для обработки и хранения метаданных файлов, вы можете начать добавлять файлы в раздел.

Синтаксис очень простой. Вы просто указываете mkfs раздел устройства, на котором вы хотите создать файловую систему, и какой тип файловой системы вы хотите. Это на первый взгляд. За кулисами все немного иначе. В течение некоторого времени в большинстве дистрибутивов Linux mkfs был обертка для mke2fs. Команда mkfs вызывает команду mke2fs и передает ей указанные вами параметры. Бедный старый mke2fs делает всю работу но не получает славы.

Синтаксис mkfs был обновлен, а старый формат объявлен устаревшим. Обе формы будут работать, но в этой статье мы будем использовать современный стиль.

Выбор файловых систем

Современный способ использования mkfs — набрать «mkfs». а затем имя файловой системы, которую вы хотите создать.

Чтобы увидеть файловые системы, которые может создать mkfs, введите «mkfs» и дважды нажмите клавишу Tab. После «mkfs» нет пробела, просто дважды нажмите Tab.

Список поддерживаемых файловых систем в окне терминала

Список доступных файловых систем отображается в окне терминала. Снимок экрана взят из Ubuntu 18.04 LTS. Другие дистрибутивы могут предлагать больше или меньше вариантов. Мы рассмотрим их и кратко опишем каждый. После короткого слова о ведении журнала.

Ведение журнала — важная концепция файловых систем. Файловые системы записывают ожидающие записи файла в журнал. По мере записи в каждый файл журнал обновляется, и записи, ожидающие записи, обновляются. Это позволяет файловой системе восстанавливать поврежденные, частично записанные файлы, возникшие в результате катастрофического события, такого как отключение электроэнергии. Некоторые старые файловые системы не поддерживают ведение журнала. Те, кто этого не делает, реже записывают на диск, потому что им не нужно обновлять журнал. Они могут работать быстрее, но более подвержены повреждениям из-за прерванной записи файлов.

  Как установить PHP в Linux

Ext2: Самой первой файловой системой для Linux была файловая система MINIX. Позже она была заменена первой файловой системой, когда-либо написанной специально для Linux, которая была Ext. Ext2 был Преемник Ext. Ext2 не является журналируемой файловой системой.
Ext3: Это был преемник Ext2, и его можно рассматривать как Ext2 с журналированием, которое защищает вашу файловую систему от повреждения данных, вызванного сбоями и внезапным отключением питания.
Ext4: Ext4 — это стандартная файловая система для некоторых дистрибутивов Linux. Это надежная, проверенная и надежная файловая система. Он имеет функции, которые уменьшить фрагментацию файлов и может использоваться с более крупными дисками, разделами и файлами, чем Ext3.
BFS: Это Загрузочная файловая система, который предназначен для одной и только одной задачи: для обработки файлов в загрузочном разделе. Редко приходится создавать загрузочную файловую систему вручную. Ваш процесс установки Linux сделает это за вас.
FAT: Таблица размещения файлов Файловая система была разработана для гибких дисков консорциумом тяжеловесов компьютерной индустрии. Она была представлена ​​в 1977 году. Единственная причина, по которой вы использовали бы эту файловую систему без ведения журнала, — это совместимость с операционными системами, отличными от Linux.
NTFS: Файловая система новой технологии — это файловая система журналов Microsoft, представленная в Windows NT. Это был преемник FAT. Единственная причина, по которой вы будете использовать эту файловую систему, — это совместимость с операционными системами, отличными от Linux.
MINIX: Первоначально создано Эндрю С. Таненбаум как учебное пособие, МИНИКС представляет собой операционную систему «mini-Unix». В настоящее время он нацелен на создание самовосстанавливающейся и отказоустойчивой операционной системы. Файловая система MINIX была разработана как упрощенная версия файловой системы Unix. Возможно, если вы выполняете кросс-разработку на компьютере Linux и ориентируетесь на платформу MINIX, вы можете использовать эту файловую систему. Или, возможно, вам нужна совместимость с компьютером MINIX по другим причинам. Варианты использования этой файловой системы на компьютере с Linux мне не особо интересны, но они доступны.
VFAT: Таблица размещения виртуальных файлов, была введена в Windows 95 и сняла ограничение на восемь символов для имен файлов. Стало возможным имена файлов длиной до 255 символов. Единственная причина, по которой вы будете использовать эту файловую систему, — это совместимость с операционными системами, отличными от Linux.
CRAMFS: Сжатая файловая система ROM — это файловая система, предназначенная только для чтения, предназначенная для встроенных систем и специального использования только для чтения, например, в процессах загрузки компьютеров Linux. Обычно сначала загружается небольшая временная файловая система, чтобы можно было запустить процессы начальной загрузки для подготовки к монтированию «настоящей» загрузочной системы.
MSDOS: файловая система Операционная система Microsoft Disk. Выпущенная в 1981 году, это простая файловая система настолько проста, насколько это возможно. В первой версии даже каталогов не было. Он занимает видное место в истории вычислительной техники, но, помимо совместимости с устаревшими системами, нет особых причин использовать его сегодня.

  6 лучших инструментов для майнинга криптовалюты для Linux

Безопасный способ экспериментировать с файловыми системами

Создание файловой системы на разделе разрушительно для любых данных, которые могут уже находиться на этом разделе. Использование запасного жесткого диска или даже запасного компьютера — идеальный способ поэкспериментировать с созданием и использованием различных файловых систем. Но, конечно же, у многих людей нет запасного оборудования, ожидающего экспериментов.

Однако мы можем создать файл изображения и создать в нем файловые системы. После того, как мы смонтируем его, мы сможем использовать его как обычный раздел. Мы можем исследовать файловые системы и экспериментировать с ними без необходимости в дополнительном оборудовании. Мы будем использовать команду dd для создать наш файл изображения.

Файл изображения создается путем помещения исходных данных в изображение. Нам нужно указать dd, где взять его исходные данные. Мы будем использовать параметр if (входной файл), чтобы указать dd использовать / dev / ноль в качестве источника входных данных. Это будет поток нулей.

Параметр of (выходной файл) позволяет нам указать имя для файла изображения. Назовем его «howtogeek.img».

Размер файла изображения определяется размером и количеством блоков, которые мы добавляем к нему. Мы используем параметр bs (размер блока) для запроса размера блока в 1 МБ и параметр count для запроса 250 блоков. Это даст нам файловую систему размером 250 МБ. Когда вы вводите эту команду, отрегулируйте количество блоков в соответствии с вашими потребностями и свободной емкостью вашего компьютера с Linux.

dd if=/dev/zero of=~/howtogeek.img bs=1M count=250

dd if = / dev / zero of = ~ / howtogeek.img bs = 1M count = 250

Файл создан для нас, и dd сообщает, что в соответствии с запросом для нас было создано 250 блоков.

Вывод команды dd в окне терминала

Мы можем посмотреть наш файл изображения с помощью ls:

ls -hl

ls -hl в окне терминала

Как и ожидалось, это 250 МБ, что обнадеживает.

Создание файловой системы

Выберем файловую систему для использования. Мы вернемся в прошлое и воспользуемся Ext2, который является самой ранней версией Ext, которую может создать эта реализация mkfs. Это файловая система без ведения журнала, поэтому не храните в ней ничего ценного, не имея резервных копий где-либо еще. Мы используем вариант mkfs.ext2 команды mkfs, и мы говорим ему использовать наш файл изображения в качестве цели.

mkfs.ext2 ~/howtogeek.img

mkfs.ext2 ~ / howtogeek.img в окне терминала

Файловая система создается, и отображаются некоторые детали файловой системы.

Вывод команды mkfs.ext2 в окне терминала

Как видно из выделенного текста, появляется mke2fs.

Теперь у нас есть контейнер для файловой системы — файл образа — который в этом сценарии заменяет жесткий диск. Внутри этого контейнера мы создали файловую систему. Теперь нам нужно смонтировать файловую систему, чтобы мы могли ее использовать.

  Как играть в Nioh 2 в Linux

Это временная установка, поэтому мы сделаем Точка монтирования внутри / mnt называется «компьютерщик». Мы удалим его, когда закончим.

sudo mkdir /mnt/geek

mkfs.ext2 ~ / howtogeek.img в окне терминала

Теперь мы можем смонтировать наш файл образа.

sudo mount ~/howtogeek.img /mnt/geek

mkfs.ext2 ~ / howtogeek.img в окне терминала

Нам нужно изменить владение файлом точки монтирования, чтобы у нас был доступ для чтения и записи.

sudo chown dave:users /mnt/geek/

sudo chown dave: users / mnt / geek / в окне терминала

И теперь мы можем использовать нашу новую файловую систему. Давайте перейдем в файловую систему и скопируем в нее несколько файлов.

cd /mnt/geek
cp ~/Documents/Code/*.? .

cp ~ / Documents / Code / *.?  .  в окне терминала

Это скопирует все файлы с однобуквенным расширением из каталога ~ / Documents / Code в нашу новую файловую систему. Проверим, скопировали ли они.

ls

ls в окне терминала

Файлы были скопированы, поэтому наша файловая система создана, смонтирована и используется. По крайней мере, мы так думаем. Давайте еще раз проверим. Из нашего домашнего каталога мы размонтируем файловую систему. Обратите внимание, что в размонтировать.

sudo umount /mnt/geek

sudo umount / mnt / geek в окне терминала

Теперь, если мы вернемся в / mnt / geek и проверим файлы, мы не найдем их, потому что они находятся внутри нашего файла изображения, и он был размонтирован.

cd /mnt/geek
ls

cd / mnt / geek в окне терминала

Дальнейшие исследования

Теперь у нас есть отработанный процесс, попробовать другую файловую систему должно быть легко. На этот раз мы будем использовать файловую систему MINIX. В нашем домашнем каталоге мы можем создать новую файловую систему внутри существующего файла изображения.

Быть осторожен! Если внутри файла образа есть какие-либо важные файлы в файловой системе, смонтируйте файл образа и извлеките их, прежде чем создавать новую файловую систему.

mkfs.minix ~/howtogeek.image

mkfs.minix ~ / howtogeek.image в окне терминала

Без намека на вопрос «уверены ли вы», новая файловая система создается поверх старой. Мы можем смонтировать наш файл образа с помощью той же команды, что и раньше:

sudo mount ~/howtogeek.img /mnt/geek

sudo mount ~ / howtogeek.img / mnt / geek в окне терминала

Давайте перейдем к новой файловой системе в / mnt / geek и посмотрим, сможем ли мы создать файл.

touch geek.txt

коснитесь geek.txt в окне терминала

ls -ahl geek.txt

ls -ahl geek.txt в окне терминала

И так же просто и быстро мы создали новую файловую систему, смонтировали ее, и мы можем ее использовать.

Удаление точки крепления

Когда все будет готово, мы можем удалить точку монтирования «компьютерщика». Для этого мы будем использовать rmdir:

cd /mnt
sudo rmdir geek

sudo rmdir geek в окне терминала

Жонглирование огнем

В Linux, как и в большинстве других вещей, вы учитесь на собственном опыте. Проблема с некоторыми командами в том, что они потенциально разрушительны. Дилемма состоит в том, как практиковать их использование, не подвергая риску вашу систему или данные?

Теперь у вас есть простой метод создания и тестирования файловых систем с помощью mkfs, который не затрагивает ваш компьютер.