如何使用 fdisk 扩展逻辑和扩展分区

A.D*_*.D. 20 partition fdisk

我正在尝试扩展分区 /dev/sda5,它是扩展分区 /dev/sda2 下的逻辑分区。

我想使用fdisk

程序应该是删除两个分区,然后使用完全相同的起始扇区(1001470 和 1001472)重新创建它们。在创建最小起始扇区比它需要的更大(1003518)的逻辑分区之前,它会顺利进行。

$ sudo fdisk /dev/sda
命令(m 寻求帮助):p
磁盘 /dev/sda:9.8 GiB,10485760000 字节,20480000 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0cd7105f

设备引导开始结束扇区大小 ID 类型
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 16775167 15773698 7.5G 5 扩展
/dev/sda5 1001472 16775167 15773696 7.5G 83 Linux


分区 5 已删除。
分区 2 已删除。

命令(m 寻求帮助):n
分区类型
   p 主要(1 个主要,0 个扩展,3 个免费)
   e 扩展(逻辑分区的容器)

选择(默认 p):e
分区号(2-4,默认 2):
第一个扇区(999424-20479999,默认 999424):1001470
最后一个扇区,+sectors 或 +size{K,M,G,T,P}(1001470-20479999,默认20479999):
创建了一个类型为“扩展”且大小为 9.3 GiB 的新分区 2。

命令(m 寻求帮助):n
主分区的所有空间都在使用中。
添加逻辑分区 5
第一个扇区(1003518-20479999,默认1003520):1001472

值超出范围。

我已经用parted完成了,但是用 fdisk 应该可以。

$ fdisk -V
fdisk from util-linux 2.27.1
Run Code Online (Sandbox Code Playgroud)

A.D*_*.D. 22

根据吉尔斯的回答采取的步骤:

$ sudo fdisk /dev/sda

欢迎使用 fdisk (util-linux 2.27.1)。
更改将仅保留在内存中,直到您决定写入它们。
在使用 write 命令之前要小心。


命令(m 寻求帮助):p
磁盘 /dev/sda:9.8 GiB,10485760000 字节,20480000 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0cd7105f

设备引导开始结束扇区大小 ID 类型
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2        1001470 16775167 15773698 7.5G 5 扩展
/dev/        sda5 1001472 16775167 15773696 7.5G 83 Linux

命令(m 寻求帮助):d
分区编号(1、2、5,默认为 5):2

分区 2 已删除。

命令(m 寻求帮助):n
分区类型
   p 主要(1 个主要,0 个扩展,3 个免费)
   e 扩展(逻辑分区的容器)
选择(默认 p):e
分区号(2-4,默认 2):
第一扇区(999424-20479999,默认999424):1001470
最后一个扇区,+扇区或 +size{K,M,G,T,P}(1001470-20479999,默认 20479999):

创建了一个类型为“扩展”且大小为 9.3 GiB 的新分区 2。

命令(m 寻求帮助):n
主分区的所有空间都在使用中。
添加逻辑分区 5
第一扇区(1003518-20479999,默认1003520):
最后一个扇区,+扇区或 +size{K,M,G,T,P}(1003520-20479999,默认 20479999):

创建了一个类型为“Linux”且大小为 9.3 GiB 的新分区 5。

命令(m 寻求帮助):x


专家命令(m 求帮助):b
分区编号(1、2、5,默认为 5):
数据的新开头(1001471-20479999,默认1003520):1001472

专家命令(m 寻求帮助):p

磁盘 /dev/sda:9.8 GiB,10485760000 字节,20480000 个扇区
单位:1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0cd7105f

设备引导开始结束扇区 Id 类型 Start-C/H/S End-C/H/S Attrs
/dev/sda1 * 2048 999423 997376 83 Linux 0/33/32 62/55/53 80
/dev/sda2        1001470 20479999 19478530 5 扩展 62/23/86 250/23/209
/dev/        sda5 1001472 20479999 19478528 83 Linux 62/57/118 250/23/209

然后r(返回主菜单)和w(将表写入磁盘)。


Gil*_*il' 18

在普通界面中,Linux 的 fdisk 对分区应用对齐约束。哪些约束取决于 fdisk 的版本。旧版本默认为柱面对齐,以兼容与LBA不兼容的旧操作系统。当 LBA 有二十多年的历史时,fdisk 默认停止迎合这种古老的系统,而是切换到 1MB 对齐,这在现代存储介质上提供了更好的性能。

在当前版本的 fdisk 中,要创建任意扇区(512B)对齐的分区,首先需要创建具有所需端点的分区,然后进入专家菜单(x)并使用命令b调整分区的开头(这会改变分区大小,而不是它结束的地方)。看起来确实比较笨拙。

  • @AD 因为在那种情况下,分区在 1MB 上对齐。 (2认同)