Pol*_*zi8 2 partition bios fdisk grub2 gpt
如何使用 GPT (33) 和第一个对齐分区 (2048) 之间的可用扇区为 GPT 磁盘的 GRUB 旧引导创建分区?
如果我已经对所有其他扇区进行了分区,fdisk
并且gdisk
会parted
抱怨没有可用的空闲扇区。
我最终做的是:
sfdisk
partprobe
刷新可用分区数fdisk
我知道这是一个棘手的解决方法,但我找不到一种方法可以在不首先破坏其他分区的情况下使用普通工具来完成此操作。
parted
通常工作得很好。它会警告您有关对齐问题的信息,但在这种情况下您可以忽略它。
# truncate -s 1G foobar.img
# parted foobar.img
GNU Parted 3.4
Using /dev/shm/foobar.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) mklabel gpt
(parted) disk_set pmbr_boot on
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
34s 2097118s 2097085s Free Space
(parted) mkpart linux 2048s 2097118s
(parted) set 1 lvm on
Run Code Online (Sandbox Code Playgroud)
在第 34 扇区创建 grub 分区:
(parted) mkpart grub 34s 2047s
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? Ignore
(parted) set 2 bios_grub on
Run Code Online (Sandbox Code Playgroud)
最终结果是一个 GPT 分区表,在旧版 MBR 标头中设置了引导标志(某些机器需要),并且 grub 分区挤在第一个 1MiB 之前。
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
2 34s 2047s 2014s grub bios_grub
1 2048s 2097118s 2095071s linux lvm
Run Code Online (Sandbox Code Playgroud)
当然,对于全新的分区表来说,没有必要这样做。您也可以坚持 grub 分区的 MiB 对齐,无论哪种方式都没有坏处。