使用 Fstransform 转换文件系统

很少有人知道他们可以将文件系统从一种类型转换为另一种类型而不会丢失数据,即无损。 这可能听起来像魔术,但 Fs变换 几乎可以任意组合将 ext2、ext3、ext4、jfs、reiserfs 或 xfs 分区转换为列表中的另一种类型。 更重要的是,它就地执行此操作,无需在任何地方格式化或复制数据。 除了这些优点之外,还有一点好处:Fstransform 还可以处理 ntfs、btrfs、fat 和 exfat 分区。

在你运行它之前

Fstransform 有一些警告和限制,因此强烈建议在尝试转换之前进行备份。 此外,使用 Fstransform 时需要注意一些限制:

  • Linux 内核必须支持源文件系统和目标文件系统。 听起来很明显,如果您想使用 ext2、ext3、ext4、reiserfs、jfs 和 xfs 分区,则风险为零。 Fedora 支持所有这些就好了。
  • 将 ext2 升级到 ext3 或 ext4 不需要 Fstransform。 请改用 Tune2fs 实用程序。
  • 带有源文件系统的设备必须至少有 5% 的可用空间。
  • 在开始之前,您需要能够卸载源文件系统。
  • 您的源文件系统存储的数据越多,转换的持续时间就越长。 实际速度取决于您的设备,但预计约为每分钟 1 GB。 大量的硬链接也会减慢转换速度。
  • 虽然 Fstransform 被证明是稳定的,但请在您的源文件系统上备份数据。

安装说明

Fstransform 已经是 Fedora. 使用命令安装:

sudo dnf install fstransform

是时候转换一些东西了

将一个文件系统就地转换为另一个文件系统可能需要一段时间

fstransform 命令的语法非常简单:fstransform <源设备> <目标文件系统>。 请记住,它需要root权限才能运行,所以不要忘记添加 sudo 在一开始的时候。 这里有一个 example:

sudo fstransform /dev/sdb1 ext4

请注意,不能转换根文件系统,这是一种安全措施。 请改用测试分区或实验性拇指驱动器。 同时,Fstransform 会通过控制台中的很多辅助输出。 最有用的部分是预计完成时间,它可以让您了解该过程需要多长时间。 同样,几乎空的驱动器上很少有小文件可以让 Fstransform 在大约一分钟内完成它的工作,而更多的实际任务可能需要数小时的等待时间。

支持更多文件系统

如上所述,可以尝试使用 ntfs、btrfs、fat 和 exfat 分区的 Fstransform。 这些类型是非常实验性的,没有人能保证转换会完美无缺。 尽管如此,仍有许多成功案例,您可以通过在测试分区上使用样本数据集测试 Fstransform 来添加自己的成功案例。 这些额外的文件系统可以通过使用 –force-untested-file-systems 参数来启用:

sudo fstransform /dev/sdb1 ntfs --force-untested-file-systems

有时该过程可能会因错误而中断。 随意再次重复该命令——它最终可能会完成第二次或第三次尝试的转换。