LinuxКак сделать

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

Терминал Linux на ноутбуке с рабочим столом в стиле Ubuntu.
Фатмавати Ахмад Заенури / Shutterstock

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

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

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

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

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

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

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

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

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

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

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

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

СВЯЗАННЫЕ: Какую файловую систему Linux вы должны использовать?

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

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

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

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

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

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

  дд если = / dev / zero = = / .img bs = 1M count = 250 

дд если = / dev / zero = = / .img bs = 1M count = 250

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

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

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

  ls -hl 

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

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

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

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

  mkfs.ext2 ~ / .img 

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

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

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

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

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

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

  sudo mkdir / mnt / geek 

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

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

  sudo mount ~ / .img / mnt / geek 

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

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

  Судо Чоун Дейв: пользователи / mnt / geek / 

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

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

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

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

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

  Ls 

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

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

  sudo umount / mnt / geek 

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

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

  cd / mnt / geek 
  Ls 

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

СВЯЗАННЫЕ: Как смонтировать и размонтировать устройства хранения из терминала Linux

Дальнейшее изучение

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

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

  mkfs.minix ~ / .image 

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

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

  sudo mount ~ / .img / mnt / geek 

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

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

  коснитесь geek.txt 

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

  ls -ahl geek.txt 

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

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

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

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

  кд / минт 
  Компьютерщик Sudo Rmdir 

Компьютерщик sudo rmdir в окне терминала

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

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

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

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone