给定这样的磁盘布局
Disk: /dev/sdc
Size: 119.9 GiB, 127865454592 bytes, 249737216 sectors
Label: dos, identifier: 0x000efb19
Device Boot Start End Sectors Size Id Type
>> Free space 2048 8191 6144 3M
/dev/sdc1 8192 4615234 4607043 2.2G e W95 FAT16 (LBA)
/dev/sdc2 4615235 29985858 25370624 12.1G 5 Extended
├─Free space 4618240 4620288 2049 1M
├─/dev/sdc5 4620288 4685821 65534 32M 83 Linux
├─/dev/sdc6 4685824 5210109 524286 256M c W95 FAT32 (LBA)
└─/dev/sdc7 5210112 29983811 24773700 11.8G 83 Linux
/dev/sdc3 * 29986816 92901375 62914560 30G 83 Linux
Free space 92901376 249737215 156835840 74.8G
如果我想将 sdc3 移入 sdc2(从而使其成为 sdc8),我该怎么做?
注意:sdc7 的结尾是 sdc3 的开头,因此无需实际移动任何数据。这个问题只是如何更改分区表,以便 sdc3 位于 sdc2 中
tl;dr 如何在不实际编辑分区中的数据的情况下更改分区表?
答案1
首先,你应该记下或拍下所有起始和结束扇区的照片,如果出现任何问题,你可以恢复它。为了安全起见,请备份每个带有文件系统的分区的开头:
dd if=/dev/sdc3 of=sdc3.bak bs=1M count=1
然后使用磁盘管理到:
删除分区 2 和 3。这也会删除所有逻辑分区。
从扇区创建逻辑分区4615235至少部门92901375。
重新创建所有其他分区,注意保持起始扇区原样,并保留分区之间的几个扇区作为 EBR。最新版本的磁盘管理会警告你检测到文件系统签名。显然这是一件好事,块应该不是被清除。
磁盘管理通常会尝试保持分区的 1MiB 对齐,因此可能需要进入专家模式(X)并使用b调整起始扇区。
如果这不是您的主磁盘,我会努力将分区类型更改为 GPT,并摆脱所有 DOS 的奇怪行为。
评论:所有文件系统都可以驻留在大于 FS 的分区上。大多数文件系统都可以安全地调整大小以匹配新的分区大小。