我可以在具有现有文件系统的裸驱动器上创建分区表吗?

我可以在具有现有文件系统的裸驱动器上创建分区表吗?

我继承了一台机器,ext4其驱动器上的文件系统为无分区(没有其他花哨的东西,没有 LVM 等)。

是否可以在此驱动器上创建分区表保留现有的 ext4 文件系统吗? — 即,以某种方式稍微缩小分区,移动超级块,然后创建分区表?

(显然,调整大小可能存在风险,导致数据丢失等——这主要是一个学术问题。)

$ lsblk /dev/sdc
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sdc    8:32   0 54.6T  0 disk /data

$ tune2fs -l /dev/sdc
...
First block:              0
...

$ fdisk -l /dev/sdc
Disk /dev/sdc: 54.57 TiB, 60001666203648 bytes, 117190754304 sectors
Disk model: LOGICAL VOLUME
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes

$

答案1

这是非常棘手的,最好的建议是在尝试此类操作之前备份驱动器。通过复制驱动器上的所有内容,然后在分区后将其复制回来,这样做会容易得多。

如果您必须以这种方式尝试,那么从较高的层面来看,您需要:

  1. 使用 resize2fs 调整现有文件系统的大小。缩小现有分区将在以下位置创建额外的空间结尾(不是开始)
  2. 将整个文件系统移至右侧 - 远离驱动器的开头。 GPT 分区表至少需要 17k,但也许 1mb 更安全。 ddrescue 可以做到这一点。尽管如果新位置与旧位置重叠,请务必小心。您可能会不小心丢弃您的数据。
  3. 使用您选择的分区工具(例如:cfdisk)在您在步骤 2 中放置数据的位置创建一个分区。请勿格式化该分区!

同样,这是不可取的,我故意不给出命令指令,因为我不能确定你不会搞砸你的数据。

相关内容