Linux: Преобразование MBR в GPT, без потери данных.

  • Linux
Устанавливаем gdisk:

apt install gdisk
Условия при которых преобразование сработает:
--Версия grub 1.97 и выше:

$ grub-install --version
....
grub-install (GRUB) 2.02+dfsg1-20+deb10u2

--Перед первым разделом есть место, для создания загрузочной области, до 2048 сектора:

$ fdisk -l /dev/sda
....
Device    Boot    Start          End     Blocks  Id  System
/dev/sda   2048 56640625 56638578   27G Linux filesystem
Запускаем gdisk, первый запуск покажет структуру диска:

$ gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.5

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.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you dont want to convert your MBR partitions to GPT format!
***************************************************************
Проверим список партиций подав команду 'p', убедимся что есть место под boot.

Command (? for help): p
Disk /dev/vda: 62914560 sectors, 30.0 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): AA19D3C5-E8E1-4E6E-8671-823D2BF33E2C
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 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 6275915 sectors (3.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        56640625   27.0 GiB    8300  Linux filesystem
Создаем её командой 'n', оставляем ID по умолчанию (2), First sector — 34, Last sector — 2047, Type — ef02 (BIOS boot partition).

Command (? for help): n
Partition number (2-128, default 2):
First sector (34-62914526, default = 56641536) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}: 2047
Current type is 'Linux filesystem'
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
Press the <Enter> key to see more codes:
af04 AppleTV recovery      af05 Apple Core Storage    af06 Apple SoftRAID Statu
af07 Apple SoftRAID Scrat  af08 Apple SoftRAID Volum  af09 Apple SoftRAID Cache
b300 QNX6 Power-Safe       bc00 Acronis Secure Zone   be00 Solaris boot
bf00 Solaris root          bf01 Solaris /usr & Mac Z  bf02 Solaris swap
bf03 Solaris backup        bf04 Solaris /var          bf05 Solaris /home
bf06 Solaris alternate se  bf07 Solaris Reserved 1    bf08 Solaris Reserved 2
bf09 Solaris Reserved 3    bf0a Solaris Reserved 4    bf0b Solaris Reserved 5
c001 HP-UX data            c002 HP-UX service         e100 ONIE boot
e101 ONIE config           ea00 Freedesktop $BOOT     eb00 Haiku BFS
ed00 Sony system partitio  ed01 Lenovo system partit  ef00 EFI System
ef01 MBR partition scheme  ef02 BIOS boot partition   f800 Ceph OSD
f801 Ceph dm-crypt OSD     f802 Ceph journal          f803 Ceph dm-crypt journa
f804 Ceph disk in creatio  f805 Ceph dm-crypt disk i  fb00 VMWare VMFS
fb01 VMWare reserved       fc00 VMWare kcore crash p  fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed type of partition to 'BIOS boot partition'
Отсортируем ID по стартовым секторам командой 's'.

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34            2047   1007.0 KiB  EF02  BIOS boot partition
   2            2048        56640625   27.0 GiB    8300  Linux filesystem
И записываем изменения 'w'.
Не спешим перезагружаться!!

Теперь необходимо установить загрузчик GRUB:

$ grub-install /dev/sda
Installation finished. No error reported.
Пробуем перезагрузиться и надеемся что все ок :)
Вообще эта штука срабатывает и с Windows. Естественно без части с созданием boot и установки grub.

https://falstaff.agner.ch/2012/11/20/convert-mbr-partition-table-to-gpt-ubuntu/
Поделиться:

Нет комментариев