如何在不丢失数据的情况下将 /home 格式从 XFS 更改为 ext4

如何在不丢失数据的情况下将 /home 格式从 XFS 更改为 ext4

我有opensuse Leap 15.0,在安装它时,我没有指定每个分区的格式。现在我想将我的 /home 分区(我为我的数据和配置文件提供一个单独的主分区)从 XFS 更改为 ext4。那么有没有一种方法可以在不格式化的情况下做到这一点呢?

答案1

不,您需要将数据复制到其他地方,创建ext4文件系统并将数据复制回来。

我认为LeapLVM默认使用,所以你可以添加一个额外的磁盘LVM,创建一个新的逻辑卷,创建一个ext4文件系统并复制数据。然后,您可以删除XFS文件系统,最后从 中删除附加磁盘LVM

如果您不知道,您无法缩小XFS文件系统,因此您无法缩小当前卷以复制到新ext4卷。

答案2

我们得到了 fstransform

https://github.com/cosmos72/fstransform

相同的教程:
https://access.redhat.com/discussions/6134431[1]
https://fedoramagazine.org/transform-file-systems-in-linux/

[1]
步骤 1
从 EPEL 存储库安装工具:

$ sudo yum -y 安装 fstransform

步骤 2
检查文件系统 /myfs 的当前设置:

$ uname -a && sudo lsblk -f | awk '$NF=="/myfs" {print $NF,"is 文件系统类型",$2}'
Linux myhost.domain.dom 3.10.0-1160.25.1.el7.x86_64 #1 SMP 星期二 4 月 13 日 18 日: 55:45 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux /myfs 是文件系统类型 ext4

$ sudo 挂载 | grep myfs
/dev/mapper/myvg-mylv on /myfs type ext4 (rw,noatime,data=ordered)

步骤 3
卸载文件系统 /myfs 并运行转换:

$ sudo umount /myfs

$ sudo fstransform /dev/mapper/myvg-mylv xfs

步骤 4
更改 /etc/fstab 中的文件系统类型并重新挂载 /myfs:

$ sudo sed -i -e "s#/myfs.*ext4#/myfs xfs#" /etc/fstab

$ sudo 挂载 /myfs

$ uname -a && sudo lsblk -f | awk '$NF=="/myfs" {print $NF,"is 文件系统类型",$2}'
Linux myhost.domain.dom 3.10.0-1160.25.1.el7.x86_64 #1 SMP 星期二 4 月 13 日 18 日: 55:45 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux /myfs 是文件系统类型 xfs

相关内容