Вы должны создать файловую систему, прежде чем сможете использовать любое устройство хранения данных, подключенное к компьютеру с 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
Файл создан для нас, и dd
сообщает, что для нас было создано 250 блоков по запросу.
Мы можем посмотреть на наш файл изображения с помощью ls
:
ls -hl
Это 250 МБ, как и ожидалось, что обнадеживает.
Создание файловой системы
Давайте выберем файловую систему для использования. Мы вернемся назад во времени и будем использовать Ext2, самую раннюю версию Ext, которую может создать эта реализация mkfs
. Это не журналируемая файловая система, поэтому не храните в ней ничего ценного, не создавая резервных копий в другом месте. Мы используем вариант mkfs.ext2
команды mkfs
, и мы говорим ей использовать наш файл изображения в качестве цели.
mkfs.ext2 ~ / .img
Файловая система создана, и отображаются некоторые детали файловой системы.
Как видно из выделенного текста, mke2fs
появляется.
Теперь у нас есть контейнер для файловой системы — файл образа, который заменяет жесткий диск в этом сценарии. Внутри этого контейнера мы создали файловую систему. Теперь нам нужно смонтировать файловую систему, чтобы мы могли ее использовать.
Это временная настройка, поэтому мы создадим точку монтирования в / mnt под названием «geek». Мы удалим ее, когда закончим.
sudo mkdir / mnt / geek
Теперь мы можем смонтировать наш файл образа.
sudo mount ~ / .img / mnt / geek
Нам нужно изменить владельца файла точки монтирования, чтобы у нас был доступ для чтения и записи к нему.
Судо Чоун Дейв: пользователи / mnt / geek /
И теперь мы сможем использовать нашу новую файловую систему. Давайте перейдем в файловую систему и скопируем в нее некоторые файлы.
cd / mnt / geek
cp ~ / Documents / Code / *.? ,
Это скопирует все файлы с однобуквенным расширением из каталога ~ / Documents / Code в нашу новую файловую систему. Давайте проверим, что они были скопированы.
Ls
Файлы были скопированы, поэтому наша файловая система была создана, смонтирована и использована. Или так мы думаем. Давайте перепроверим. Из нашего домашнего каталога мы размонтируем файловую систему . Обратите внимание, что в umount есть только одно «n».
sudo umount / mnt / geek
Теперь, если мы вернемся к / mnt / geek и проверим наличие файлов, мы не должны их найти, потому что они находятся внутри нашего файла изображения, и он был размонтирован.
cd / mnt / geek
Ls
СВЯЗАННЫЕ: Как смонтировать и размонтировать устройства хранения из терминала Linux
Дальнейшее изучение
Теперь у нас есть отработанный процесс, пробовать другую файловую систему должно быть легко. На этот раз мы будем использовать файловую систему MINIX. В нашем домашнем каталоге мы можем создать новую файловую систему внутри существующего файла изображения.
Быть осторожен! Если в файловой системе есть какие-либо важные файлы внутри файла образа, подключите файл образа и извлеките их перед созданием новой файловой системы.
mkfs.minix ~ / .image
Без намека на вопрос «если вы уверены», новая файловая система создается поверх старой. Мы можем смонтировать наш файл образа точно такой же командой, как и раньше:
sudo mount ~ / .img / mnt / geek
Давайте перейдем в новую файловую систему в / mnt / geek и посмотрим, сможем ли мы создать файл.
коснитесь geek.txt
ls -ahl geek.txt
И так же просто и быстро мы создали новую файловую систему, смонтировали ее и можем ее использовать.
Удаление точки монтирования
Когда вы закончите, мы можем удалить точку монтирования «geek». Для этого мы будем использовать rmdir :
кд / минт
Компьютерщик Sudo Rmdir
Жонглирование огнем
С Linux, как и с большинством вещей, вы учитесь на практике. Проблема с некоторыми командами заключается в том, что они потенциально разрушительны. Дилемма состоит в том, как практиковаться в их использовании, не подвергая риску свою систему или данные?
Теперь у вас есть простой метод создания и тестирования файловых систем с помощью mkfs
который не mkfs
ваш компьютер.