我有一个 8 TB 硬盘,上面有两个分区:3 TB 和 1 TB,所以剩余 4 TB 是可用的。我想创建一个跨越磁盘其余部分的第三个分区。在早期使用 fdisk 创建新分区时,程序会自动提供一个起始位置,该位置位于前一个分区末尾之后。然而 GNU parted 不提供这样的选项。
驱动器的布局如下所示:
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA WDC WD80EFZX-68U (scsi)
Disk /dev/sdc: 8002GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3001GB 3001GB primary
2 3001GB 4001GB 1000GB primary
所有指南都建议使用(在本例中)“4001GB”作为分区的开始,使用“-1”作为分区的结束。在这种情况下,“4001GB”的边界对我来说似乎有点模糊。虽然 1 GB 在 TB 范围内是微不足道的,但 OCD-me 希望使用整个磁盘。
因此我的问题是:
是否有一种明智的方法可以使用 GNU Parted 创建新分区,使新分区位于前一个分区之后,并考虑到正确的对齐方式?或者 - 如果它与 MB/GB/TB 一起使用,它是否只是“做正确的事情”?
答案1
使用parted
,print free
可查看分区中的所有空闲段或间隙,作为可在后续mkpart
命令中使用的开始/结束/大小。
(parted) unit mib # or s, b, whatever you prefer
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 7629395MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
0.02MiB 1.00MiB 0.98MiB Free Space
1 1.00MiB 953674MiB 953673MiB root
953674MiB 2861023MiB 1907349MiB Free Space
3 2861023MiB 7629394MiB 4768371MiB data
7629394MiB 7629395MiB 0.52MiB Free Space
因此,在此示例中,可用空间为 953674MiB - 2861023MiB。
创建一个分区,它应该完美填充。
(parted) mkpart home 953674MiB 2861023MiB
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 7629395MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
0.02MiB 1.00MiB 0.98MiB Free Space
1 1.00MiB 953674MiB 953673MiB root
2 953674MiB 2861023MiB 1907349MiB home
3 2861023MiB 7629394MiB 4768371MiB data
7629394MiB 7629395MiB 0.52MiB Free Space
考虑到正确的对齐方式?
正如评论中已经指出的,对齐取决于前一个分区的正确结束扇区。最好手动检查 MiB 对齐是否正确。
如果分区的大小不正确,通常(但并非总是)可以使用该resizepart
命令相应地增加前一个分区的末尾扇区。在分区中留下间隙没有任何害处,所以不必太担心。