我正在尝试调整文件系统,以便处理涉及大量文件的一些操作。然后我对正在使用的文件系统感到困惑。
tune2fs -l /dev/vda1包含:
Filesystem magic number: 0xEF53
所以这意味着它要么是 ext2,要么是 ext3,要么是 ext4,因为它们共享相同的神奇数字。
blkid /dev/vda1说:
/dev/vda1: UUID="c38b3343-603a-49d3-85e0-88af1c8617c5" TYPE="ext3" PARTUUID="1bf082a8-01"
/etc/fstab包含:
UUID=c38b3343-603a-49d3-85e0-88af1c8617c5 / ext3 (...)
mount (和 /proc/mounts)说:
/dev/vda1 on / type ext3 (rw,relatime,errors=remount-ro,data=ordered)
看起来我确实在使用 ext3。
但是之后,突然出现:
liam@lorenz /sys/fs % ls
cgroup ext4 pstore
liam@lorenz /sys/fs % ls ext4
features vda1
liam@lorenz /sys/fs % cd /proc/fs
liam@lorenz /proc/fs % ls
ext4 jbd2 nfsd
liam@lorenz /proc/fs % ls ext4
ext4
发生了什么事?自从构建此虚拟机以来,它一直是 ext3,并且从未转换或安装为 ext4。
uname -a:
Linux lorenz 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
答案1
实际情况是,ext4 就是 ext3,也就是 ext2。也就是说,它们是相同的文件系统,只是启用了较新的功能。启用了哪些功能在超级块中描述。由于 ext4 驱动程序支持所有以前的功能,因此它可用于挂载所有启用了较少功能的旧文件系统。内核保留了 ext2 和 ext3 模块的原始代码,因此它可用于挂载未启用较新功能的旧文件系统,但也可以使用 ext4 模块,并且大多数现代发行版都使用配置选项构建内核,该选项将其设置为对所有 3 种文件系统使用 ext4 驱动程序,而不是携带较旧的、功能较差的代码。