将我的扩展分区向左扩展

将我的扩展分区向左扩展

我有以下一个硬盘

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Disk identifier: 0xfa6bd800
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      821247      409600    7  HPFS/NTFS/exFAT
/dev/sda2          821248   210991103   105084928    7  HPFS/NTFS/exFAT
/dev/sda3       210991104   317941759    53475328   83  Linux
/dev/sda4       420343806   625141759   102398977    5  Extended
/dev/sda5       435689472   507955096    36132812+  83  Linux
/dev/sda6       507955200   566546431    29295616   83  Linux
/dev/sda7       566548480   625141759    29296640   83  Linux
/dev/sda8       420345856   435687423     7670784   82  Linux swap / Solaris

我最近从 Windows 恢复了一个分区。我想将“扩展分区”/dev/sda4 向左扩展以使用未分配的空间。您可以看到 /dev/sda4 可以从 420343806 扩展到 317941760(/dev/sda3 的末尾)。我尝试从 gparted 执行此操作,但失败了。

GParted 0.12.1 --enable-libparted-dmraid

Libparted 2.3
Move /dev/sda4 to the left and grow it from 97.66 GiB to 126.95 GiB  00:00:00    ( ERROR )

calibrate /dev/sda4  00:00:00    ( SUCCESS )

path: /dev/sda4
start: 420,343,806
end: 625,141,759
size: 204,797,954 (97.66 GiB)
move partition to the left and grow it from 97.66 GiB to 126.95 GiB  00:00:00    ( ERROR )

old start: 420,343,806
old end: 625,141,759
old size: 204,797,954 (97.66 GiB)
requested start: 358,901,760
requested end: 625,139,711
requested size: 266,237,952 (126.95 GiB)
libparted messages    ( INFO )

Unable to satisfy all constraints on the partition.
Can't have overlapping partitions.

所以我尝试使用 fdisk 进行分区扩展。

我认为这些是以下步骤。 1. 删除 /dev/sda4 2. 创建新的扩展分区,从 317941760 到 625141759。 3. 在 /dev/sda4 上 resize2fs

但如果我这样做,我会丢失逻辑分区或数据吗?或者我应该走另一条路。

答案1

我不知道gparted是否可以做到这一点。当您删除/重新创建扩展分区时,大多数分区程序都会删除 sda5-x。

你可以试试sfdisk。

# sfdisk -d /dev/sda > sda.original

这将创建分区布局的转储,如下所示:

# /dev/sda的分区表
单位:部门

/dev/sda1 :开始= 2048,大小= 4194304,Id= c
/dev/sda2 :开始= 4198400,大小= 2097152,Id=83,可启动
/dev/sda3 :开始= 6297600,大小= 20971520,ID=83
/dev/sda4 :开始= 27271168,大小= 3844096,Id= f
/dev/sda5:开始= 27273216,大小= 1918976,ID=83
/dev/sda6 :开始= 29194240,大小= 1918976,ID=83

创建该转储的副本并根据您的喜好进行修改。

# cp sda.original sda.modified
# 纳米 sda. 修改

因此,在您的情况下,您想要将 /dev/sda4 从 420343806 扩展到 317941760,只需替换 sda.modified 文件中 /dev/sda4 条目的 start= 编号即可。

完成修改后,您可以加载它:

# sfdisk /dev/sda < sda.modified

如果出现任何问题,您可以调整编辑,或恢复到原始状态:

# sfdisk /dev/sda < sda.original

这就是使用 sfdisk 的方式。

在分离的情况下,如果调整大小不起作用,您必须非常仔细地记下分区偏移量和大小,例如使用:

#parted /dev/sda 单元 b print free > sda.parted

这将创建一个像这样的文件:

型号:通用存储设备 (scsi)
磁盘/dev/sda:15931539456B
扇区大小(逻辑/物理):512B/512B
分区表:msdos
磁盘标志:

编号 开始 结束 大小 类型 文件系统 标志
        32256B 1048575B 1016320B 可用空间
 1 1048576B 2148532223B 2147483648B 初级脂肪32 lba
        2148532224B 2149580799B 1048576B 可用空间
 2 2149580800B 3223322623B 1073741824B 主 ext2 引导
        3223322624B 3224371199B 1048576B 可用空间
 3 3224371200B 13961789439B 10737418240B 主 ext2
        13961789440B 13962838015B 1048576B 可用空间
 4 13962838016B 15931015167B 1968177152B 扩展 lba
 5 13963886592B 14946402303B 982515712B 逻辑 ext2
 6 14947450880B 15929966591B 982515712B 逻辑 ext2
        15929966592B 15931015167B 1048576B 可用空间
        15931015168B 15931539455B 524288B 可用空间

您可以选择不同的单位,例如扇区;在这种情况下,我喜欢字节,因为它留下零解释空间 - 根据媒体的不同,分区软件有时对扇区大小等有不同的看法。

有了您已知的确切分区偏移量、大小和类型,在parted中您可以简单地执行mklabel(重置分区表)并从头开始重新创建一个新分区,重新创建您想要保留的分区,更改您想要更改的分区。

请注意,这些选项都不会执行任何操作来修改分区上的文件系统或调整其大小。因此,只有当您可以自己处理这个问题,或者想要在可用空间中创建一个新的空分区时,此解决方案才有效。

相关内容