我正在使用parted对非 SSD 硬盘进行分区,因为我想要一个 GPT 分区表。
parted /dev/sda mklabel gpt
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试创建正确对齐的分区,因此我使用以下命令来了解第一个扇区的开始位置:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Run Code Online (Sandbox Code Playgroud)
我们可以看到它从扇区 34 开始(这是使用此分区表时的默认值)。
因此,要创建我尝试的第一个分区:
parted /dev/sda mkpart primary 63s 127s
Run Code Online (Sandbox Code Playgroud)
将它对齐到第 64 扇区,因为它是 8 的倍数,但它显示:
警告:生成的分区没有正确对齐以获得最佳性能。
我硬盘中的逻辑和物理扇区大小均为 512 字节:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Run Code Online (Sandbox Code Playgroud)
如何创建正确对齐的分区?我究竟做错了什么?
我们有包含 eMMC 的基于 bbb 的定制板。
我们创建了如下分区,
parted --script -a minimal /dev/mmcblk0 \
mklabel gpt \
mkpart primary 131072B 262143B \
mkpart primary 262144B 393215B \
mkpart primary 393216B 524287B \
mkpart primary 524288B 1572863B \
mkpart primary 1572864B 2621439B \
mkpart primary 2621440B 3145727B \
mkpart primary 3145728B 3276799B \
mkpart primary 3276800B 8519679B \
mkpart primary 8519680B 13762559B \
mkpart primary 13762560B 19005439B \
mkpart primary 19005440B 19267583B \
mkpart primary 19267584B 19529727B \
mkpart primary 19529728B 19791871B \ …Run Code Online (Sandbox Code Playgroud)