在不丢失数据的情况下将文件系统格式从 xfs 更改为 ext4

A.R*_*had 8 linux ubuntu xfs ext4 jfs

我在笔记本电脑上运行了一个全新的 Lucid Lynx (Ubuntu 10.04)。我将文件系统定义为:

  • 挂载点 / ext4 (46 Gb)
  • jfs 上的挂载点 /home (63 GB)
  • 交换为 3 Gb

我在没有交流电源的情况下让机器过夜去做一些任务。第二天早上我发现它处于待机状态,任务完成,但无法访问文件系统。它给了我 I/O 错误

看来jfs和standby有问题。

无论如何,为了避免任何麻烦,我想将此挂载点从 jfs 格式移动到 ext4。

我可以在不丢失数据的情况下执行此操作,并且无需在转换完成之前将数据放置在临时位置吗?

很抱歉提到这一点,但我记得在 Windows 时代,我们会将 FAT16 更改为 FAT32 或将 FAT32 更改为 NTFS,而不必丢失数据。我希望这在 Linux 上可用。

更新 /home 文件系统是 xfs 而不是 jfs,而且由于某种原因,这个文件系统似乎有一个错误,我不得不重新安装操作系统两次,直到我最终使用整个 /

但是,作为结论,似乎没有办法进行转换

chr*_*nos 8

fstransform在 ext2、ext3、ext4、jfs、minix、xfs、reiserfs 之间转换。

我在 Debian 存储库中看到它,所以它可能也可以在其他基于 Debian 的发行版中使用。

  • [github](https://github.com/cosmos72/fstransform) 上有关于这个项目的更多信息 (2认同)

cpb*_*lls 5

我不知道有什么方法可以非破坏性地转换文件系统。这并不意味着这是不可能的,但我认为它的可能性非常低。

例如,您可以ext2ext3不擦除磁盘的情况下从 转换为,而从 转换ext3ext4

但是从类似jfsext4似乎不太可能,而无需先将/home文件复制到另一个分区或外部硬盘。

即使是这样,你会想你的系统上创建一个新用户,有一个主目录类似的地方/tmp/tempuser或复制你的配置为你的用户,通常是“点”文件(开头的文件.在你的home目录)到新位置关闭/home和更新/etc/passwd以使用新的主目录,因此您可以在执行此更新时以普通用户身份登录。

然后,备份您的文件,/home使用/sbin/mkfs.ext4您计划使用的任何工具卸载并格式化它。挂载新分区/home并将您的文件复制回来。

另外,我会推荐一些“智能”的东西,比如rsync复制你的文件,以确保你保留你的权限和所有的爵士乐。