将软件 raid 卷从 ext3 转换为 ext4(或 ext2)?

Sco*_*ter 5 linux ubuntu ext4 ext3 mdadm

我的 ubuntu linux 11 机器中有一个 mdadm 创建的软件 raid 卷。它不是启动驱动器。它是由 3 个大型 sata 驱动器组成的软件 raid 5 配置。

当我最初创建它时,我将其设为 ext3。从那以后,我了解到将其转换为 ext4(或 ext2)可能会对我有所帮助。

首先,我想确认这是有道理的,例如转换为 ext4 会给我更好的性能(搜索似乎是 ext4 优于 ext3 的共同好处)。

接下来,是否有任何理由考虑使用 ext2 - 或者这实际上是一个坏主意?

最后,我该怎么做?

根据我收集的信息(例如从这个站点),我需要卸载卷,然后执行一些命令来转换卷。对于文件系统类型,我的 fstab 当前设置为“自动”。

Sco*_*ack 11

各种不同的 ext[0-9] 文件系统之间的差异更多是关于特性,而不是结构。优点是它们彼此相当兼容。例如,您可以将 ext3 分区挂载ext2,一切都应该正常工作。同样,您可以将 ext3 分区挂载为 ext4。无论何时执行这些操作中的任何一个,您都无法访问特定于版本的功能。例如,如果您将 ext3 分区挂载为 ext2,您将无法访问日志。同样,将 ext3 分区挂载为 ext4 不会让您使用较新的功能,例如减少 fsck 时间和范围而不是位图。

为了进行转换,您需要在较高级别上执行以下操作

  1. 卸载分区
  2. 运行转换
  3. 挂载分区

因此,只要这不是您的主磁盘,您就可以在不必关闭系统的情况下执行此操作,您只需要期望目标分区关闭一段时间即可。而且,与往常一样,在摆弄您的文件系统之前,您应该对数据进行完整备份,以防万一您有一些损失。

您应该运行的确切命令如下。出于我的目的,我将假设您的目标设备是/dev/md0

umount /dev/md0
fsck.ext3 -pf /dev/md0
tune2fs -O extents,uninit_bg,dir_index /dev/md0
fsck.ext4 -yfD /dev/md0
Run Code Online (Sandbox Code Playgroud)

第一个 fsck 是在我们进行转换之前确保您的文件系统处于干净和健全的状态。否则这个过程可能会失败,甚至更糟,可能会成功,但会留下不一致的地方。该tune2fs命令用于摆弄文件系统设置。它最初是为 ext2 创建的,因此名称的“2fs”部分,但是它用于修改 ext 文件系统的所有版本。在这种情况下,我们启用了在 ext3 和 ext4 之间添加的额外功能。最后的 fsck 正在做两件事。首先它确保从转换中进行任何必要的清理,其次它会创建或重建目录索引。

毕竟,您需要编辑/etc/fstab以确保它安装为 ext4,但实际上该auto选项应该正确地识别它。

恭喜,只要在此过程中没有着火/爆炸/犯下大规模种族灭绝罪/被判谋杀其妻子,那么您应该是 ext4 分区的快乐所有者。