Как исправить количество разделов на GPT-диске (/dev/sdaX)

Как исправить количество разделов на GPT-диске (/dev/sdaX)

Я использовал Gparted для удаления разделов EFI (/dev/sda1) и Ubuntu (/dev/sda2) на моем вторичном диске. Третий раздел (/dev/sda3) предназначен для данных, поэтому я изменил его размер, чтобы использовать все нераспределенное пространство, которое у меня осталось после удаления первых двух разделов. Теперь, имея на диске только один уникальный раздел, я хотел бы исправить его номер, чтобы получить /dev/sda1. Какой самый простой способ сделать это, который работает с диском, имеющим таблицу разделов GPT? Спасибо!

решение1

gdiskДля перезаписи таблицы разделов можно использовать :

судо gdisk /dev/sda
p (команда p выводит на экран последнюю таблицу разделов)
s (команда s сортирует записи таблицы разделов)
p (используйте команду p еще раз, чтобы увидеть результат на экране)
w (записать измененную таблицу разделов на диск)
q (выйти из gdisk)

Самую полезную информацию вы найдете на gdiskсайтеhttp://www.rodsbooks.com/gdisk/

решение2

Заинтригованный находкой последней ссылки и жаждущий узнать что-то новое, я воспроизвел ситуацию с разделами Generoso на своей системе, используя USB-накопитель на 32 ГБ. Ниже приведены мои выводы, но сначала мои:

Вывод: Поскольку мой пример нацелен на 1 (последний) раздел, ближе к концу я просто изменил его имя. Я не трогал сами сектора. В ссылке в моем комментарии выше показан пример, где номера секторов перемещаются. Я последовал этому примеру и ужасно облажался и уничтожил USB-диск, доказав, насколько опасно играть с разделами на самом деле!!
Возможно, мой сценарий также работает с несколькими разделами, не стесняйтесь попробовать его сами. Я бросаю вам вызов, чтобы вы использовали для этого свой основной раздел... ха-ха.
Хорошо, вот мои:

Результаты: С помощью Gparted я создал 3 раздела, каждый по 1 ГБ.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot   Start     End Sectors Size Id Type
/dev/sdc1          2048 2099199 2097152   1G 83 Linux
/dev/sdc2       2099200 4196351 2097152   1G 83 Linux
/dev/sdc3       4196352 6293503 2097152   1G 83 Linux

С помощью Disks смонтировал раздел 3.
Вручную поместил на него файл.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Использование Disks для размонтирования раздела 3.
Использование Gparted для удаления разделов 1 и 2 и увеличения раздела 3 для использования всего диска.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

Использование Disks для монтирования раздела 3.
Проверьте файл на разделе 3.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Использование Disks для размонтирования раздела 3.
Скопируйте таблицу разделов с диска.
Покажите таблицу разделов.

# sfdisk -d /dev/sdc > sdc.tab
# cat sdc.tab
label: dos
label-id: 0xf33657fc
device: /dev/sdc
unit: sectors

/dev/sdc3 : start=        8192, size=    62836480, type=83

Используя vi sdc.tabдля изменения sdc3 на sdc1.
Применить измененную таблицу разделов.

# sfdisk --no-reread -f /dev/sdc < sdc.tab
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Old situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xf33657fc.
Created a new partition 1 of type 'Linux' and of size 30 GiB.
/dev/sdc2: 
New situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc1        8192 62844671 62836480  30G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Как только команда завершится, раздел 1 автоматически смонтируется.
Проверьте файл.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Использование Disks для размонтирования раздела 1.
Готово.

P.S. Я делал это cat SomeFile.txtкаждый раз, но посчитал излишним включать этот вывод.

решение3

Вы должны были изменить размер /dev/sda1, чтобы он был больше, чем /dev/sda3. Затем скопируйте sda3 поверх sda1. Проверьте файл sda1 и, если проблем нет, удалите sda3, измените размер sda1 соответствующим образом.

Связанный контент