Подробное объяснение команды parted partition в Linux

I. Обзор

Обычно инструменты для создания разделов, которые мы используем, представляют собой fdiskкоманды, но поскольку поддерживаются fdiskтолько разделы MBR , а таблица разделов MBR поддерживает диски размером до 2T, невозможно разделить разделы размером более 2T. Инструмент partedможет разделить один раздел размером более 2T в формате GPT , а также может разделить обычные разделы MBR .

Команда parted — это мощный инструмент для разметки диска и изменения размера разделов, разработанный организацией GNU. Диск формата GPT эквивалентен 416 байтам исходных 4 таблиц разделов, зарезервированных на исходном диске MBR, зарезервированы только первые 16 байтов, аналогично расширенному разделу, реальная таблица разделов находится после 512 байт, а раздел GPT В методе нет ограничения на четыре основных раздела, **до 128 основных разделов**. Давайте посмотрим на использование команды parted.

1.1 Грамматическая структура

parted [选项]… [设备 [命令 [参数]…]…]

2. Опции

选项	描述
-h	–help 显示此求助信息
-l	–list 列出所有设别的分区信息
-i	–interactive 在必要时,提示用户
-s	–script 从不提示用户
-v	–version 显示版本

3. Команда операции

parted交互命令	                        说 明
check NUMBER	                        做一次简单的文件系统检测
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER	复制文件系统到另一个分区
help [COMMAND]	                        显示所有的命令帮助
mklabel,mktable LABEL-TYPE	            创建新的磁盘卷标(分区表)
mkfs NUMBER FS-TYPE	                    在分区上建立文件系统
mkpart PART-TYPE [FS-TYPE] START END	创建一个分区
mkpartfs PART-TYPE FS-TYPE START END	创建分区,并建立文件系统
move NUMBER START END	                移动分区
name NUMBER NAME	                    给分区命名
print [devices|free|list,all|NUMBER]	显示分区表、活动设备、空闲空间、所有分区
quit	                                退出
rescue START END	                    修复丢失的分区
resize NUMBER START END	                修改分区大小
rm NUMBER	                            删除分区
select DEVICE	                        选择需要编辑的设备
set NUMBER FLAG STATE	                改变分区标记
toggle [NUMBER [FLAG]]	                切换分区表的状态
unit UNIT	                            设置默认的单位
Version	                                显示版本

4. Пример интерактивной работы

3.1 Выберите раздел жесткого диска

Во-первых, аналогично fdisk, сначала выберите жесткий диск, который нужно разбить, вот /dev/hdb: ((parted) указывает на команду, введенную в parted, а другая информация печатается автоматически)

[root@my-linux ~]# parted /dev/hdb
GNU Parted 1.8.1
Using /dev/hdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

3.2 Создание разделов

Мы выбрали /dev/hdb в качестве диска, с которым мы работаем, а затем нам нужно создать таблицу разделов (вы можете использовать команду help для вывода справочной информации в parted):

(parted) mklabel
New disk label type? gpt    (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)

3.3 Завершите операцию раздела

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

(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0           (可以用百分比表示,比如Start? 0% , End? 50%)
End? 500GB

3.4 Проверка информации о разделе

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

(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1

3.5 Пример удаления раздела

Если раздел неверный, вы можете использовать команду rm для удаления раздела, например, мы хотим удалить указанный выше раздел, а затем распечатать результат после удаления.

(parted)rm 1               #rm后面使用分区的号码,就是用print打印出来的Number
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags

3.6 Операция форматирования

В интерактивном состоянии после завершения мы можем использовать quitкоманду для выхода из parted и использовать системную mkfsкоманду для форматирования раздела.

[root@my-linux ~]# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/hdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/hdb: 3841.0 GB, 3841022206976 bytes
255 heads, 63 sectors/track, 267349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 267350 2147482623+ ee EFI GPT
[root@my-linux ~]# mkfs.xfs /dev/hdb1
[root@my-linux ~]# mkfs.xfs /dev/hdb2
[root@my-linux ~]# mkdir /data1 /data2
[root@my-linux ~]# mount /dev/hdb1 /data1
[root@my-linux ~]# mount /dev/hdb2 /data2

3.7 Полный пример интерактивного создания разделов

Разделите весь жесткий диск на зоны по вышеуказанной методике, ниже пример после деления

(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0
End? 500GB
(parted) mkpart
Partition name? []? dp2
File system type? [ext2]? xfs
Start? 500GB
End? 3841GB
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
2 500GB 3841GB 1699GB dp2

5. Неинтерактивный режим

5.1 Создать таблицу разделов

parted /dev/sdl mklabel gpt

5.2 Выделите всю емкость жесткого диска основному разделу

parted /dev/sdl mkpart primary 0% 100%

5.3 Запрос существующих разделов диска

parted /dev/sdl print

5.4 Запрос раздела жесткого диска

fdisk -l
or
lsblk

5.5 Форматирование раздела

mkfs -t xfs /dev/sdl1

Отличие файловой системы EXT3, EXT4 и XFS:

EXT3
(1) Он может поддерживать только файловую систему размером 32 ТБ и файл размером не более 2 ТБ, и он может поддерживать только файловую систему 2 ТБ и файл размером 16 ГБ (2)
Ext3 в настоящее время поддерживает только 32 000 подкаталогов
(3) Ext3 файловая система использует 32-битные записи пространства Количество блоков и количество i-узлов
(4) Когда данные записываются в файловую систему Ext3, распределитель блоков данных Ext3 может выделить только один блок размером 4 КБ за
раз
. log файловая система в системе Linux и представляет собой файл EXT3. Последующая версия системы.
(1) Емкость файловой системы Ext4 достигает 1 ЭБ, а емкость файла достигает 16 ТБ
(2) Теоретически поддерживает неограниченное количество подкаталогов
(3) Файловая система Ext4 использует 64-битное пространство для записи количества блоков и i-узлов
(4) Ext4 Многоблочный распределитель поддерживает один вызов для выделения нескольких блоков данных.
XFS
(1) быстро восстанавливает содержимое файлов на диске за короткий период времени в соответствии с записанным журналом
(2) использует оптимизированный алгоритм и влияние записи журнала для общей файловой операции очень малы
(3) Это полноценная 64-битная файловая система, которая может поддерживать миллионы терабайт дискового пространства
(4) Она может хранить данные с производительностью, близкой к необработанному вводу-выводу устройства

5.6 Запрос blkid /dev/sdl1

blkid /dev/sdl1

5.7 Изменить /etc/fstab

vi /etc/fstab

Отредактировано /etc/fstab, чтобы загрузка знала о смонтированной файловой системе.

5.8 Монтировать файловую систему, запрос

mount -a
df -h

6. Пример неинтерактивного режима

6.1 Создать таблицу разделов gpt

[root@my-linux ~]# parted /dev/sdb mklabel gpt
Information: You may need to update /etc/fstab.

6.2 Разделить на 3 раздела

[root@my-linux ~]# parted /dev/sdb mkpart primary 0% 27%
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb mkpart primary 27% 54%
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb mkpart primary 54% 81%
Information: You may need to update /etc/fstab.

6.3 Раздел печати

[root@my-linux ~]# parted /dev/sdb print
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      2097kB  1037GB  1037GB               primary
 2      1037GB  2074GB  1037GB               primary
 3      2074GB  3111GB  1037GB               primary

6.4 Удалить раздел

В команде удаления раздела parted /dev/sdb rm 1последняя цифра 1 представляет номер раздела.

[root@my-linux ~]# parted /dev/sdb rm 1
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb rm 2
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb rm 3
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb print        
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

[root@my-linux ~]# 

Один MBR и GPT

MBR: Всем знакома таблица разделов MBR (то есть главная загрузочная запись). Максимальный поддерживаемый объем: 2T, и существуют ограничения на разделы: до 4 основных разделов или 3 основных раздела плюс дополнительный раздел.

GPT: GPT (то есть таблица разделов GUID). Это более новый стандарт структуры таблицы разделов диска, основанный на стандарте EFI, и является основной формой будущих разделов диска. По сравнению с методом раздела MBR он имеет следующие преимущества. Преодолевая ограничение MBR в 4 основных раздела, каждый диск поддерживает до 128 разделов. Поддерживает разделы размером более 2 ТБ, а самый большой объем может достигать 18 ЭБ.

Восемь, ошибка выравнивания разделенного раздела

При использовании partedдля создания раздела генерируется предупреждающее сообщение: «Предупреждение: результирующий раздел не выровнен должным образом для обеспечения наилучшей производительности».

На официальном сайте Redhat есть анализ этой проблемы: https://access.redhat.com/mt/zh-hans/solutions/184143

8.1 Вопросы

(parted) mkpart primary 128 1048575
Warning: You requested a partition from 128s to 1048575s.                 
The closest location we can manage is 128s to 1048542s.
Is this still acceptable to you?
Yes/No? Yes                                                               
Warning: The resulting partition is not properly aligned for best performance.          <-----
Ignore/Cancel? C  

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

8.2 Решения

8.2.1 Процент

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

mkpart primary 0% 100% или  mkpart primary 0% 320GB создает один раздел, или
mkpart primary 0% 50% и  mkpart primary 50% 100% создает два раздела одинакового размера.

8.2.2 Смещение 1 МБ

Как правило, для большинства дисков размер выравнивания по умолчанию составляет 1 МБ, поэтому в большинстве случаев mkpartвыровненный раздел можно создать, используя МБ в качестве единицы раздела. Поскольку первый МБ на диске включает устаревшую основную загрузочную запись (MBR) в секторе 0, за которой следует главная таблица gpt (если тип gpt), первый МБ на диске необходимо пропустить и начать разбиение с 1 МБ:

mkpart primary 1MiB 100% Например, создать один раздел.

8.2.3 Расчет смещения #

Если использование процентов или смещений в 1 МБ не работает, требуемое выравнивание можно рассчитать напрямую, запросив соответствующую запись sysfs устройства,
чтобы получить следующее значение:

# cat /sys/block/sdb/queue/optimal_io_size
# cat /sys/block/sdb/alignment_offset
# cat /sys/block/sdb/queue/physical_block_size

Получение правильного количества секторов смещения заключается в  сложении optimal_io_size и  alignment_offset делении на  physical_block_size.

Например:

optimal_io_size = 1310720
alignment_offset = 0
physical_block_size = 512

i.e 1310720+0/512 = 2560

Теперь команда для создания раздела может быть:

(parted)  mkpart primary 2560 100%    OR

(parted)  mkpart primary 2560 1000G

おすすめ

転載: blog.csdn.net/zfw_666666/article/details/126744930