我正在尝试扩展分区/dev/sda5,它是扩展分区/dev/sda2下的逻辑分区。
我想用磁盘驱动器。
步骤应该是删除两个分区,然后使用完全相同的起始扇区(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 值超出范围。
我已经做到了分手了,但用 fdisk 应该可以。
$ fdisk -V
fdisk from util-linux 2.27.1
答案1
采取的步骤根据吉尔斯的回答:
$ sudo fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.27.1)。 更改将仅保留在内存中,直到您决定写入它们。 使用写入命令之前请务必小心。 命令(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 100147016775167 15773698 7.5G 5 扩展 /dev/sda5 100147216775167 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 最后一个扇区,+sectors 或 +size{K,M,G,T,P}(1001470-20479999,默认 20479999): 创建了类型为“扩展”且大小为 9.3 GiB 的新分区 2。 命令(m 寻求帮助):n 主分区的所有空间均已使用。 添加逻辑分区5 第一扇区(1003518-20479999,默认1003520): 最后一个扇区,+sectors 或 +size{K,M,G,T,P}(1003520-20479999,默认 20479999): 创建了一个类型为“Linux”、大小为 9.3 GiB 的新分区 5。 命令(m 寻求帮助):X 专家命令(m寻求帮助):乙 分区号(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 100147020479999 19478530 5 延长 62/23/86 250/23/209 /dev/sda5 100147220479999 19478528 83 Linux 62/57/118 250/23/209
然后r(返回主菜单)和w(将表写入磁盘)。
答案2
在普通接口中,Linux 的 fdisk 对分区应用对齐约束。哪些限制取决于 fdisk 的版本。旧版本默认采用柱面对齐,以便与不兼容的旧操作系统兼容LBA。当 LBA 出现二十多年前时,fdisk 默认不再迎合这种古老的系统,而是切换到 1MB 对齐,这在现代存储介质上提供了更好的性能。
在当前版本的 fdisk 中,要创建任意扇区(512B)对齐的分区,您需要首先创建具有所需终点的分区,然后进入专家菜单(x
)并使用命令b
调整分区的开头(这会更改分区大小,而不是其结束位置)。它看起来确实相当笨拙。
答案3
Fdisk 是旧程序,它只识别 MBR 分区。我认为你的问题在于改变了磁盘几何结构(磁头、每个磁道的扇区和磁道)。通过 dd 命令(扇区到扇区复制)将数据从旧磁盘复制到新磁盘后,分区未与磁道的起始扇区对齐。这就是为什么 fdisk 不允许您在首次与旧磁盘上的磁道扇区起始对齐之前创建起始分区扇区。
您可以尝试通过扩展菜单中的命令更改 fdisk 程序中新磁盘的几何形状,但这是错误的方法。使用parted 和gparted 程序代替旧的fdisk。
现在读取和写入速度不依赖于每个分区的起始磁道扇区的对齐。