Команда gdisk: как создать разделы GUID (GPT) в Linux

В этом уроке мы обсудим, как управлять разделами GUID (GPT) в системе Linux с помощью команды gdisk.

В моей предыдущей статье я объяснил следующие концепции и прошу вас сначала прочитать это руководство.

Почему вы хотите использовать разделы GUID

Теперь схема разделения GUID представляет собой более новую схему разделения, и нам нужно обсудить, почему вы хотите использовать разделы GUID вместо старых схем разделения, таких как MBR.

Ключевой проблемой здесь является то, что MBR имеет множество ограничений.

Он существует очень давно, он существует с начала 1980-х годов.

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

Вот несколько примеров.

Прежде всего, в первую очередь должна быть установлена ​​основная загрузочная запись в MBR. 512 bytes жесткого диска.

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

Также размер блока по умолчанию, используемый MBR, составляет 512 bytes и из-за этого размер раздела MBR на жестком диске может составлять не более 2 терабайт (TB) по размеру.

А в 1980-х это было огромное пространство, почти немыслимое количество.

Сегодня ну 2 Терабайта (TB) диски дешевы, вы можете пойти в ближайший магазин и купить его.

Теперь, чтобы устранить эти ограничения, на протяжении многих лет было внедрено множество обходных путей исправлений и действительно откровенно Kluge’s, чтобы попытаться обойти эти недостатки MBR, такие как использование логической адресации блоков или LBA это позволяет использовать жесткие диски большего размера.

Кроме того, мы начали использовать 4 килобайта (KB) секторов с разделами MBR, чтобы увеличить максимальный размер раздела на конкретном диске.

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

Объяснение таблицы разделов GUID

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

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

Соответственно, в Linux теперь доступна новая схема разбиения диска.

Это называется граммлобально Uник яопознавать пСхема таблицы artition (GUID), которую мы называем просто GUID или иногда просто GPT.

Он призван заменить старую схему разделения MBR.

Кстати, GPT расшифровывается как GUID Partition Table.

На самом деле GPT является частью общего унифицированного расширяемого интерфейса микропрограмм или спецификации UEFI.

Которая действительно предназначена для замены BIOS в большинстве компьютерных систем и обеспечения лучшего интерфейса программного обеспечения к оборудованию.

По сути, воспринимайте UEFI как BIOS на стероидах.

Теперь, несмотря на то, что UEFI реализован только на очень поздних моделях компьютеров, вы все еще можете использовать разделение GPT на старых системах Linux, которые все еще используют стандартный BIOS.

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

Преимущества GPT

  • Нет первичных, расширенных или логических разделов.

    Если мы имеем дело с разделением GUID, все разделы в GUID — это просто старые разделы, они все одинаковы.

  • Поддерживает огромные диски и разделы.

    Мы говорим о разделах, которые измеряются в Зеттабайтах (ZB) вместо терабайт (TB).

  • Помните, что с MBR мы были ограничены четырьмя разделами на диск. Что ж, с GPT у вас может быть до 128 разделов на диск, а это намного больше, чем четыре.
  • Кроме того, GPT обеспечивает отказоустойчивость, сохраняя копию таблицы разделов в первом и последнем секторах на диске.

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

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

  • GPT выполняет циклическую проверку избыточности или CRC для проверки целостности таблицы разделов.
  • И он также присваивает уникальные идентификаторы каждому жесткому диску в каждом разделе на каждом жестком диске.

Создание и управление разделами диска GPT

Итак, для управления разделами GPT мы не можем использовать fdisk больше вместо этого мы используем утилиту с именем gdisk который во многом работает так же, как fdisk.

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

Особенности gdisk:

  • Преобразуйте таблицу разделов MBR в таблицу разделов GPT.
  • Проверьте жесткий диск.
  • Создавать и удалять разделы GPT.
  • Показать информацию о разделе.
  • Измените Имя и Тип раздела.
  • Резервное копирование и восстановление таблицы разделов жесткого диска.

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

Итак, чтобы сделать это, я бы ввел gdisk в приглашении оболочки, а затем файл устройства, на котором я хотел управлять разделами /dev/sdb.

Синтаксис такой же, как у старого fdisk утилита.

~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): 

Действительно, если вам удобно уже использовать fdisk тогда использовать команду gdisk будет очень просто, потому что на самом деле команды почти одинаковы.

Распечатать меню справки gdisk

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

~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): 

Вот некоторые из наиболее часто используемых команд.

  • d — Удалить раздел
  • c — Изменить имя раздела
  • l — Список известных типов разделов
  • p — Распечатать таблицу разделов
  • q — Выйти без сохранения изменений
  • t — Изменить код типа раздела
  • w — Записать таблицу на диск и выйти

Примечание:

q позволяет выйти без сохранения изменений, что очень полезно.

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

Потому что так же, как fdisk команда gdisk фактически не записывает изменения на диск сразу же, изменения сохраняются в памяти только до тех пор, пока вы не зафиксируете их с помощью w команда.

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

Итак, если вы хотите создать новый раздел на диске, вы должны ввести n на gdisk приглашение, а затем вы указываете номер разделавы указываете свой первый сектор который вы хотите использовать для раздела, тогда вы указываете последний сектор вы хотите использовать для раздела.

~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-6291422, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-6291422, default = 6291422) or {+-}size{KMGTP}: +2G

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

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

Итак, в данном случае я указал 2 GB.

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

  • Килобайт (KB) — K
  • Мегабайты (MB) — M
  • Гигабайт (GB) — G
  • Терабайт (TB) — T

и так далее.

При определении размера раздела вы должны следовать синтаксису, приведенному ниже.

+size{K,M,G,T,P}

Как вы могли заметить в приведенном выше примере, при установке 2GB размер раздела, я упомянул размер примерно так: +2G.

Укажите тип раздела

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

Теперь номера типов разделов, которые вы используете с командой gdisk, очень похожи на те, которые используются с MBR перегородки.

Обратите внимание, что для создания стандартного раздела Linux мы используем код типа 8300 это по умолчанию.

~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-6291422, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-6291422, default = 6291422) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'        
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'

Command (? for help):

С использованием MBR разделы код типа для стандартного раздела Linux 83.

Итак, вы видите, что здесь много параллелей.

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

И так же, как и с fdisk для MBR разделов с помощью команды gdisk, вы можете использовать L вариант на gdisk запрос на просмотр списка всех возможных типов разделов и связанных с ними кодов.

Hex code or GUID (L to show codes, Enter = 8300): L   
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
3000 ONIE boot             3001 ONIE config           3900 Plan 9              
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
4202 Windows Storage Spac  7501 IBM GPFS              7f00 ChromeOS kernel     
7f01 ChromeOS root         7f02 ChromeOS reserved     8200 Linux swap          
8300 Linux filesystem      8301 Linux reserved        8302 Linux /home         
8303 Linux x86 root (/)    8304 Linux x86-64 root (/  8305 Linux ARM64 root (/)
8306 Linux /srv            8307 Linux ARM32 root (/)  8400 Intel Rapid Start   
8e00 Linux LVM             a000 Android bootloader    a001 Android bootloader 2
a002 Android boot          a003 Android recovery      a004 Android misc        
a005 Android metadata      a006 Android system        a007 Android cache       
a008 Android data          a009 Android persistent    a00a Android factory     
a00b Android fastboot/ter  a00c Android OEM           a500 FreeBSD disklabel   
a501 FreeBSD boot          a502 FreeBSD swap          a503 FreeBSD UFS         
a504 FreeBSD ZFS           a505 FreeBSD Vinum/RAID    a580 Midnight BSD data   
a581 Midnight BSD boot     a582 Midnight BSD swap     a583 Midnight BSD UFS    
a584 Midnight BSD ZFS      a585 Midnight BSD Vinum    a600 OpenBSD disklabel   
a800 Apple UFS             a901 NetBSD swap           a902 NetBSD FFS          
a903 NetBSD LFS            a904 NetBSD concatenated   a905 NetBSD encrypted    
a906 NetBSD RAID           ab00 Recovery HD           af00 Apple HFS/HFS+      
af01 Apple RAID            af02 Apple RAID offline    af03 Apple label        

Распечатать таблицу разделов

Теперь, когда вы определили все свои разделы, вы можете использовать p команда для просмотра списка всех разделов на диске.

Command (? for help): p 
Disk /dev/sdb: 6291456 sectors, 3.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 588FBB6B-5F9E-4807-92E6-576FD9C40CC9
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 6291422
Partitions will be aligned on 2048-sector boundaries
Total free space is 2097085 sectors (1024.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem

Command (? for help): 

Как видите, мы создали первый раздел на /dev/sdb привод жесткого диска.

Здесь вы также можете увидеть важную информацию, например:

  • Стартовые сектора — 2048
  • Конечные сектора — 4196351
  • Размер — 2.0 GiB
  • Тип перегородки — 8300 (Это стандартный раздел)

Записать таблицу разделов на диск

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

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

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

~$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-6291422, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-6291422, default = 6291422) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'        
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'

Command (? for help): p 
Disk /dev/sdb: 6291456 sectors, 3.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 588FBB6B-5F9E-4807-92E6-576FD9C40CC9
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 6291422
Partitions will be aligned on 2048-sector boundaries
Total free space is 2097085 sectors (1024.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

Обновить новый раздел до ядра

Теперь, после того, как вы записали свои разделы на диск, имейте в виду, что вам может действительно потребоваться перезагрузка системы, прежде чем ядро ​​Linux распознает изменения раздела, сделанные с помощью команды gdisk.

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

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

Таким образом, вы можете запустить partprobe команда.

В partprobe команда заставит ядро ​​увидеть новую таблицу разделов без перезагрузки системы.

~$ sudo partprobe -s
/dev/sdb: gpt partitions 1

В -s Вариант причины partprobe чтобы показать краткое изложение того, что он нашел.

Итак, как вы можете видеть здесь, он обнаружил новый раздел, который только что был создан на /dev/sdb.

Теперь мы успешно создали новый раздел.

Теперь, прежде чем сохранять данные в этом разделе, нам нужно отформатировать и смонтировать его.

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

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

Итак, введите следующую команду для форматирования раздела.

В этом примере я форматирую этот раздел с помощью ext4 файловая система.

# mkfs.ext4 /dev/sdb1
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 03b2ee34-1135-4d6b-91b8-a6846064ae5e
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

Смонтировать раздел

Теперь вы можете смонтировать этот раздел, используя mount команда.

Предлагаемое чтение: Как монтировать и размонтировать файловые системы в Linux

Временно смонтируйте файловую систему.

Вот монтирую этот раздел в /mydata каталог.

# mount /dev/sdb1 /mydata/

Чтобы проверить, смонтирован ли раздел, выполните следующую команду.

# mount
/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel)
/dev/sdb1 on /mydata type ext4 (rw,relatime,seclabel)

Этот метод временно смонтирует ваш раздел.

Постоянно смонтировать файловую систему

Чтобы смонтировать этот раздел навсегда, вы должны ввести этот раздел в /etc/fstab файл.

# nano /etc/fstab

# /etc/fstab
# Created by anaconda on Sun Jan 24 10:20:39 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=b119d862-07b7-4842-a6ea-cd2da64f8eae /                       xfs     defaults        0 0
UUID=e9f23f2d-118e-4a5e-94ab-b08afb78a3be /boot                   ext4    defaults        1 2
UUID=d3e3cc9a-6c24-4d58-9d33-4aeaa2eef5d1 swap                    swap    defaults        0 0
UUID=03b2ee34-1135-4d6b-91b8-a6846064ae5e /mydata      	          ext4	  defaults	  0 0

Вы можете использовать blkid чтобы получить UUID номер любого диска.

# blkid /dev/sdb1
/dev/sdb1: UUID="03b2ee34-1135-4d6b-91b8-a6846064ae5e" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="71377509-6445-4c5c-a98c-9487f4412eed"

Прежде чем завершить эту статью, давайте создадим еще один раздел.

Я привожу все больше и больше примеров, чтобы вы могли более основательно разобраться в этой теме.

Как видите, в папке уже есть раздел. /dev/sdb жесткий диск.

# sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 6291456 sectors, 3.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 930CCA9E-09A8-4B6D-A63A-48F9094CD028
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 6291422
Partitions will be aligned on 2048-sector boundaries
Total free space is 2097085 sectors (1024.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem

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


### Creating a New Partition

# sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (2-128, default 2): 
First sector (34-6291422, default = 4196352) or {+-}size{KMGTP}: 
Last sector (4196352-6291422, default = 6291422) or {+-}size{KMGTP}: +500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

### Update the partition to kernel

[[email protected] ~]# partprobe -s
/dev/sda: msdos partitions 1 2 3
/dev/sdb: gpt partitions 1 2
/dev/sdc: msdos partitions

### Formatting the Partition

[[email protected] ~]# mkfs.ext4 /dev/sdb2
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: 7dbf105a-2a31-480f-a432-90cc1dafd14d
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

### Print the Partition Table

# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 6291456 sectors, 3.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 930CCA9E-09A8-4B6D-A63A-48F9094CD028
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 6291422
Partitions will be aligned on 2048-sector boundaries
Total free space is 1073085 sectors (524.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem
   2         4196352         5220351   500.0 MiB   8300  Linux filesystem

Теперь вы можете хранить данные, смонтировав этот раздел.

# mount /dev/sdb2 /data/

Вы можете посетить следующие веб-сайты, чтобы получить дополнительную информацию о команде fdisk.

Заключение

Я надеюсь, что теперь вы хорошо понимаете, как создавать разделы GUID (GPT) в Linux, и у вас есть идеи, как использовать команду gdisk в своем рабочем процессе.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.