如何将 ext2 转换为 ext4?

如何将 ext2 转换为 ext4?

我安装了 Ubuntu 12.10,但不知道为什么,我有一个扩展2分割。

  • 我怎样才能将该ext2文件系统转换为ext4
  • 我会丢失所有数据吗?

答案1

按照此帖中详细说明的说明进行操作:将 ext2/3 转换为 ext4

答案2

自从接受的答案中链接的文章撰写以来,ext4 发生了很多变化。现在可以启用更多 ext4 功能。要将 ext2 文件系统转换为功能齐全的 ext4(在撰写本文时),命令为:

tune2fs -O extents,uninit_bg,dir_index,has_journal,flex_bg,huge_file,extra_isize,dir_nlink,uninit_bg /dev/EXT2DEVICE

实际上,不再有“ext2”、“ext3”或“ext4”这一套了。有各种各样的功能。要查看您的 extX 文件系统启用的功能,请使用以下命令:

dumpe2fs -h /dev/DEVICE

ext2 的核心功能集包括:ext_attr,调整inode大小,文件类型,稀疏超级,大文件。通常,ext3 被认为是 ext2 加上日志。而 ext4 基本上是 ext3 加上其余可用功能的任意组合。将来他们可能会将其命名为 ext5、6 或 7。实际上,它们都是具有一组可变功能的文件系统系列。

要了解您阅读本文时最新的 extWHATEVER 功能集,最好的办法就是创建一个小型文件系统并查看其功能列表。对于 ext4,它是:

dd if=/dev/zero of=ext4test bs=1M count=256
mkfs.ext4 ext4test
dumpe2fs -h ext4test

查看“文件系统功能:”这一行,它会告诉您文件系统中包含哪些功能。在撰写本文时,它是:

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

完成此操作后,您可以创建自己的方法将 extX 更新到 extLATEST。对要升级的文件系统执行 dumpe2fs,并将其上的功能与测试 ext 文件系统上的功能进行比较。对于旧文件系统上缺少的任何或所有功能,您可以:

tune2fs -O <comma-delimited list of missing features>

添加完功能后,强制进行文件系统检查:

e2fsck -f /dev/DEVICE

现在您已经确保您的 extX 是具有所有可用功能的 extLATEST。

答案3

对于没有耐心的人来说,简短的版本是:

dev=/dev/sdXn # <-- Adjust this

然后

umount $dev && tune2fs -O extents,uninit_bg,dir_index,has_journal $dev && e2fsck -v -pf $dev

如果由于它是您的系统分区而无法卸载,那么您当然需要先从另一个系统(如 Live CD)启动。

而且,您不会丢失数据。除非发生非常奇怪的事情,在这种情况下,您将不得不使用备份。(当然,您确实有备份。对吧?)

答案4

  • 重新格式化驱动器
  • 是的

另外,您可以启用一些通过运行以下命令并重新启动来了解 ext4 的功能:

sudo tune2fs -O has_journal,uninit_bg,extents /dev/sda1

相关内容