Поиск по сайту:

Как разметить и отформатировать устройства хранения в Linux


Введение

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

Это руководство будет охватывать следующий процесс:

  • Идентификация нового диска в системе.
  • Создание одного раздела, охватывающего весь диск (в большинстве операционных систем требуется структура разделов, даже если присутствует только одна файловая система)
  • Форматирование раздела с файловой системой Ext4 (по умолчанию в большинстве современных дистрибутивов Linux)
  • Монтирование и настройка Автоматическое монтирование файловой системы при загрузке

Шаг 1 — Установите Parted

Чтобы разбить диск, вы будете использовать утилиту parted. Большинство команд, необходимых для взаимодействия с низкоуровневой файловой системой, по умолчанию доступны в Linux. parted, который создает разделы, является одним из редких исключений.

Если вы находитесь на сервере Ubuntu или Debian и у вас не установлен parted, вы можете установить его, набрав:

  1. sudo apt update
  2. sudo apt install parted

Если вы используете сервер RHEL, Rocky Linux или Fedora, вы можете установить его, набрав:

  1. sudo dnf install parted

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

Шаг 2 — Определите новый диск в системе

Перед настройкой накопителя необходимо правильно идентифицировать его на сервере.

Если это совершенно новый диск, один из способов определить его на вашем сервере — посмотреть на отсутствие схемы разбиения. Если вы попросите parted вывести список разделов ваших дисков, он выдаст ошибку для любых дисков, которые не имеют допустимой схемы разделов. Это можно использовать для идентификации нового диска:

  1. sudo parted -l | grep Error

Вы должны увидеть ошибку unrecognized disk label для нового неразмеченного диска:

Output
Error: /dev/sda: unrecognized disk label

Вы также можете использовать команду lsblk и найти диск нужного размера, на котором нет связанных разделов:

  1. lsblk
Output
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part /

Примечание. Не забывайте проверять lsblk каждый раз при повторном подключении к серверу перед внесением изменений. Идентификаторы дисков /dev/sd* и /dev/hd* не обязательно будут совпадать между загрузками, а это означает, что существует некоторая опасность разбиения или форматирования неправильного диска, если вы неправильно проверяете идентификатор диска.

Рассмотрите возможность использования более постоянных идентификаторов дисков, таких как /dev/disk/by-uuid, /dev/disk/by-label или /dev/disk/by- идентификатор. См. наше введение в понятия и терминологию хранения в статье Linux для получения дополнительной информации.

Когда вы знаете имя, которое ядро присвоило вашему диску, вы можете разбить его на разделы.

Шаг 3 — Разделите новый диск

Как упоминалось во введении, в этом руководстве вы создадите один раздел, охватывающий весь диск.

Выберите стандарт разделения

Для этого сначала необходимо указать используемый стандарт разбиения. Есть два варианта: GPT и MBR. GPT — более современный стандарт, в то время как MBR более широко поддерживается более старыми операционными системами. Для типичного облачного сервера лучше использовать GPT.

Чтобы выбрать стандарт GPT, передайте идентифицированный диск в parted с помощью mklabel gpt:

  1. sudo parted /dev/sda mklabel gpt

Чтобы использовать формат MBR, используйте mklabel msdos:

  1. sudo parted /dev/sda mklabel msdos

Создайте новый раздел

После выбора формата вы можете создать раздел, охватывающий весь диск, используя parted -a:

  1. sudo parted -a opt /dev/sda mkpart primary ext4 0% 100%

Вы можете разбить эту команду следующим образом:

  • parted -a opt запускает parted, устанавливая оптимальный тип выравнивания по умолчанию.
  • /dev/sda — это диск, который вы разбиваете на разделы.
  • mkpart primary ext4 создает автономный (то есть загрузочный, не расширяемый из другого) раздел с использованием файловой системы ext4.
  • 0% 100% означает, что этот раздел должен занимать пространство от начала до конца диска.

Для получения дополнительной информации обратитесь к странице руководства Parted.

Если вы отметите lsblk, вы должны увидеть новый доступный раздел:

  1. lsblk
Output
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part /

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

Шаг 4 — Создайте файловую систему в новом разделе

Теперь, когда у вас есть раздел, вы можете инициализировать его как файловую систему Ext4. Ext4 — не единственный доступный вариант файловой системы, но это самый простой вариант для одного автономного тома Linux. Windows использует файловые системы, такие как NTFS и exFAT, но они имеют ограниченную поддержку на других платформах (это означает, что они будут доступны только для чтения в некоторых контекстах и не могут использоваться в качестве загрузочного диска для других операционных систем), а macOS использует HFS+ и APFS. с теми же оговорками. Существуют также более новые файловые системы Linux, чем Ext4, такие как ZFS и BTRFS, но они предъявляют другие требования и обычно лучше подходят для многодисковых массивов.

Чтобы инициализировать файловую систему Ext4, используйте утилиту mkfs.ext4. Вы можете добавить метку раздела с флагом -L. Выберите имя, которое поможет вам идентифицировать этот конкретный диск:

Примечание. Убедитесь, что вы указали путь к разделу, а не ко всему диску. В Linux диски имеют такие имена, как sda, sdb, hda и т. д. Разделы на этих дисках имеют номер, добавленный в конце. Поэтому вам лучше использовать что-то вроде sda1, а не sda.

  1. sudo mkfs.ext4 -L datapartition /dev/sda1

Если вы хотите позже изменить метку раздела, вы можете использовать команду e2label:

  1. sudo e2label /dev/sda1 newlabel

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

Некоторые версии lsblk выводят всю эту информацию с аргументом --fs:

  1. sudo lsblk --fs

Вы также можете указать их вручную с помощью lsblk -o с соответствующими параметрами:

  1. sudo lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT

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

Output
NAME FSTYPE LABEL UUID MOUNTPOINT sda └─sda1 ext4 datapartition 4b313333-a7b5-48c1-a957-d77d637e4fda vda └─vda1 ext4 DOROOT 050e1e34-39e6-4072-a03e-ae0bf90ba13a /

Запишите этот вывод, так как вы будете использовать его при монтировании файловой системы на следующем шаге.

Шаг 5 — Смонтируйте новую файловую систему

Теперь вы можете смонтировать файловую систему для использования.

Стандарт иерархии файловой системы рекомендует использовать каталог /mnt или его подкаталог для временно смонтированных файловых систем (например, съемных дисков). Он не дает рекомендаций о том, где установить дополнительное постоянное хранилище, поэтому вы можете выбрать любую схему, которую хотите. В этом руководстве вы смонтируете диск в /mnt/data.

Создайте этот каталог с помощью mkdir:

  1. sudo mkdir -p /mnt/data

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

Вы можете временно смонтировать файловую систему, набрав:

  1. sudo mount -o defaults /dev/sda1 /mnt/data

Автоматическое монтирование файловой системы при загрузке

Чтобы файловая система монтировалась автоматически при каждой загрузке сервера, вы добавите запись в файл /etc/fstab. Этот файл содержит информацию обо всех постоянных или регулярно монтируемых дисках вашей системы. Откройте файл с помощью nano или вашего любимого текстового редактора:

  1. sudo nano /etc/fstab

На последнем шаге вы использовали команду sudo lsblk --fs для отображения идентификаторов вашей файловой системы. Вы можете использовать любой из них в этом файле. В этом примере используется раздел label, но вы можете увидеть, как будут выглядеть строки, используя два других идентификатора в закомментированных строках:

. . .
## Use one of the identifiers you found to reference the correct partition
# /dev/sda1 /mnt/data ext4 defaults 0 2
# UUID=4b313333-a7b5-48c1-a957-d77d637e4fda /mnt/data ext4 defaults 0 2
LABEL=datapartition /mnt/data ext4 defaults 0 2

Помимо элемента LABEL=datapartition, эти параметры работают следующим образом:

  • /mnt/data — это путь, по которому монтируется диск.
  • ext4 означает, что это раздел Ext4.
  • defaults означает, что этот том должен быть смонтирован с параметрами по умолчанию, такими как поддержка чтения и записи.
  • 0 2 означает, что файловая система должна проверяться локальным компьютером в случае ошибок, но в качестве второго приоритета после корневого тома.

Примечание. Вы можете узнать о различных полях в файле /etc/fstab, просмотрев его справочную страницу. Информацию о параметрах монтирования, доступных для определенного типа файловой системы, см. в man [filesystem] (например, man ext4).

Сохраните и закройте файл, когда закончите. Если вы используете nano, нажмите Ctrl+X, затем, когда будет предложено подтвердить, нажмите Y и затем Enter.

Если вы ранее не монтировали файловую систему, теперь вы можете смонтировать ее с помощью mount -a:

sudo mount -a

Тестирование держателя

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

Вы можете проверить, доступен ли диск в выводе команды df. Иногда df будет включать ненужную информацию о временных файловых системах, называемых tmpfs, в выводе df, который можно исключить, добавив -x tmpfs:

  1. df -h -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.3G 18G 7% / /dev/sda1 99G 60M 94G 1% /mnt/data

Вы также можете проверить, подключен ли диск с возможностью чтения и записи, записав в тестовый файл:

  1. echo "success" | sudo tee /mnt/data/test_file

Прочитайте файл обратно, чтобы убедиться, что запись выполнена правильно:

  1. cat /mnt/data/test_file
Output
success

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

  1. sudo rm /mnt/data/test_file

Заключение

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

Далее вы можете узнать, как использовать SSHFS для монтирования удаленных томов через SSH.