Как мне создать и настроить раздел ext4 из командной строки?

41

РАЗДЕЛЕНИЕ (например fdisk)
Какие полезные команды используются для выделения дополнительного жесткого диска из командной строки? Поскольку большинство опубликованных руководств ориентированы на GParted и другие графические утилиты, было бы полезно краткое описание некоторых последовательностей командной строки.

НАСТРОЙКА - ЗАБРОНИРОВАННОЕ ПРОСТРАНСТВО, ВРЕМЯ ЗАПИСИ И ДОСТУПА
Как удалить зарезервированное дисковое пространство, выделенное (по умолчанию), если накопитель заполнен на 100%. Так как I является вторичным диском просто для «данных», удаление зарезервированной области гарантирует, что весь диск будет доступен для использования.

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

GTH
источник

Ответы:

64

В первую очередь:

!! ВНИМАНИЕ !!

Эти команды являются ПРИМЕРАМИ . УДАЛЕНИЕ РАЗДЕЛЕЙ, ИЗМЕНЕНИЕ И ФОРМАТИРОВАНИЕ Файловых систем уничтожает данные и / или может препятствовать загрузке вашего компьютера. Сделайте резервные копии. Используйте на свой страх и риск. Попробуйте машину, на которой вы не против потерять все данные. будьте осторожны


Чтобы быстро настроить диск как отдельный раздел ext4 ...

  1. Просмотр обнаруженных устройств класса "ДИСК"

    lshw -C disk
    
  2. Просмотр существующих таблиц разделов

    fdisk -l
    
  3. Отредактируйте таблицу разделов для выбранного устройства (в данном случае «sdx»)

    fdisk /dev/sdx
    

    В рамках FDISK нажмите:

    • d... до d далить текущий раздел

    • n... для создания п раздела РЭБ

    • p... чтобы указать его как раздел P RIMARY

    • 1... чтобы установить его как первичный раздел 1 ST

    • w... чтобы записать изменения.

  4. Показать новую таблицу разделов:

    fdisk -l
    
  5. Отформатируйте файловую систему нового раздела как type ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Создайте новый каталог, в который новый диск будет монтироваться:

    mkdir /storage
    mount /dev/sdx1 /storage
    

TUNING

  1. Удалите зарезервированные блоки (т. Е. Установите 0%), поскольку этот диск предназначен только для пользовательских данных.

    tune2fs -m 0 /dev/sdx1
    
  2. Поскольку сервер находится на ИБП, установите обратную запись, чтобы приложения не ожидали фактической записи на диск

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Монтирование при загрузке с использованием, /etc/fstabа также установка политики обратной записи

    vi /etc/fstab
    
  4. Найдите (или добавьте) соответствующую строку fstabдля вашего диска. Параметры в fstab разделены пробелами, например, описанный выше диск может выглядеть так:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • Первый параметр идентифицирует раздел (либо по / dev /, либо по длинному UUID);
    • Второй параметр - это путь, к которому будет подключен раздел;
    • Третий тип файловой системы;
    • Четвертый параметр содержит параметры;
    • Пятое - dumpграфик резервного копирования; а также,
    • Шестой параметр - это номер прохода (используется для управления fsckпорядком).

Измените параметры (4-й параметр) на:

noatime,nodiratime,data=writeback,barrier=0,nobh,errors=remount-ro

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

GTH
источник
3
Должен быть пробел между хранилищем и ext4. Таким образом, команда похожа на / dev / sdx1 / storage ext4 relaytime, error = remount-ro 0 1
Ганеш Кришнан
Отличный гид! Было бы неплохо иметь здесь некоторые ссылки о том, как определить подходящие опции fstab (просто ссылка на какой-то список была бы отличной)
Сандер
13

С помощью parted

Ниже приведены инструкции по созданию нового раздела ext4 на новом жестком диске с parted(проверено на Ubuntu 14.04.4 LTS x64). partedподдерживает GUID Partition Table (GPT) и впоследствии может использоваться для разделов выше 2 ТБ, в отличие от fdisk.

Используйте, sudo lshw -C disk *-diskчтобы увидеть логическое имя вашего нового жесткого диска:

   description: ATA Disk
   product: ST6000NM0024-1HT
   vendor: Seagate
   physical id: 0.0.0
   bus info: scsi@1:0.0.0
   logical name: /dev/sdb
   version: SN05
   serial: Z4D30T30
   size: 5589GiB (6001GB)
   configuration: ansiversion=5 sectorsize=4096

Логическое имя есть /dev/sdb. Мы можем начать:

sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)

С помощью sudo parted /dev/sdb print, мы можем увидеть созданный GPT:

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Нам также нужно знать размер диска (в качестве единицы мы будем использовать МБ):

sudo parted /dev/sdb print unit MB print free

что указывает на:

Disk /dev/sdb: 6001175MB

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

sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB 

(см. https://unix.stackexchange.com/a/49274/16704, если вы хотите узнать, почему мы используем --align optimal)

С помощью sudo parted /dev/sdb print, мы можем видеть, что была создана основная метка раздела:

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB  xfs          primary

Затем нам нужно использовать mkfs для фактического создания раздела:

sudo mkfs.ext4 /dev/sdb1

Раздел создан, нам нужно его смонтировать. Для этого sudo nano /etc/fstabдобавьте следующую строку ( /crimeaэто папка, в которую мы решили смонтировать новый раздел):

/dev/sdb1       /crimea ext4 defaults   0       0      

Создаем папку и перезагрузим /etc/fstab:

sudo mkdir /crimea
sudo mount -a # Remount /etc/fstab without rebooting in Linux

Вы можете увидеть новый смонтированный раздел, используя df -h:

/dev/sdb1                      5.5T   58M  5.2T   1% /crimea

В sudo nano /etc/fstab, вместо использования /dev/sdb1вы можете использовать его UUID, которые вы можете найти с sudo lshw -C volume:

*-volume
       description: EXT4 volume
       vendor: Linux
       physical id: 1
       bus info: scsi@1:0.0.0,1
       logical name: /dev/sdb1
       logical name: /crimea
       version: 1.0
       serial: c3559307-795b-66db-9844-8e974c88a1cf
       size: 200MiB
       capacity: 5589GiB
       capabilities: journaled extended_attributes huge_files dir_nlink extents ext4 ext2 initialized
       configuration: created=2016-06-24 14:56:55 filesystem=ext4 lastmountpoint=/boot modified=2016-07-01 17:15:55 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2016-07-01 17:07:19 name=primary state=mounted

В противном случае вы можете просто сделать sudo blkid /dev/sdb1:

/dev/sdb1: UUID="c3559307-795b-66db-9844-8e974c88a1cf" TYPE="ext4"

Новая строка /etc/fstabбудет:

UUID=c3559307-795b-66db-9844-8e974c88a1cf          5.5T   58M  5.2T   1% /crimea

https://unix.stackexchange.com/a/137868/16704 объясняет, почему лучше использовать UUID (liquidat, cc by-sa 3.0):

Преимущество использования UUID заключается в том, что он не зависит от фактического номера устройства, которое операционная система дает вашему жесткому диску. Изображение, которое вы добавляете в систему еще один жесткий диск, и по какой-то причине ОС решает, что ваш старый диск теперь sdbвместо sba. Ваш процесс загрузки будет испорчен, если fstab будет указывать на имя устройства. Однако, в случае UUID, это было бы хорошо.


Резюме:

sudo lshw -C disk                # Checking the location of the new drive. It is /dev/sdb.     
sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)
sudo parted /dev/sdb print       # Checking that the GPT has been created
sudo parted /dev/sdb print unit MB print free # see 6001175MB size
sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB # Creating partition label
sudo mkfs.ext4 /dev/sdb1         # Creating the partition
sudo nano /etc/fstab             # Add line `/dev/sdb1 /crimea ext4 defaults 0 0`
sudo mount -a # Remount /etc/fstab without rebooting
Франк Дернонкур
источник
вместо этого sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBлучше указать конец MB в конце, ext4 0% 100%чтобы избежать Предупреждение: результирующий раздел не выровнен должным образом для лучшей производительности.
Пабло Марин-Гарсия