为什么当/ dev / vda1是ext3时/ sys / fs / ext4 / vda1存在?

我正试图调整我的文件系统来执行一些涉及大量文件的操作。 然后我对我甚至使用的FS感到困惑。

tune2fs -l / dev / vda1包含:

Filesystem magic number: 0xEF53 

所以这意味着它可以是ext2,ext3ext4,因为它们共享相同的幻数。

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 

到底是怎么回事? 这个虚拟机已经被构build,并且从未被转换或挂载为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 

发生了什么事是ext4是ext3是ext2。 也就是说,它们是相同的文件系统,只是启用了更新的function。 超级块中描述了哪些function已启用。 由于ext4驱动程序支持所有以前的function,因此可以使用它启用较lessfunction的所有较旧的文件系统。 内核保留ext2和ext3模块的原始代码,所以它可以用来挂载较旧的文件系统而不启用新的function,但是也可以使用ext4模块,而且大多数现代发行版都会使用configuration选项来设置内核为所有3种文件系统使用ext4驱动程序,而不是随身携带旧的,性能较差的代码。