Linux
/dev/vda1 為 ext3 時,為什麼 /sys/fs/ext4/vda1 存在?
我正在嘗試調整我的文件系統以進行一些涉及大量文件的操作。然後我對我什至使用的 FS 感到困惑。
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
到底是怎麼回事?自建構此 VM 以來一直是 ext3,並且從未轉換或安裝為 ext4。
unname -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。也就是說,它們是相同的文件系統,只是啟用了更新的功能。超級塊中描述了啟用了哪些功能。由於 ext4 驅動程序支持所有以前的功能,它可用於掛載所有啟用較少功能的舊文件系統。核心保留了 ext2 和 ext3 模組的原始程式碼,因此它可以用於掛載較舊的文件系統而無需啟用較新的功能,但也可以使用 ext4 模組,並且大多數現代發行版使用設置它的配置選項建構核心將 ext4 驅動程序用於所有 3 種文件系統風格,而不是攜帶較舊的、功能較弱的程式碼。