我的 Debian 系统(主要是测试)目前遇到了一个有点奇怪的问题。
我曾经在 lvm 上有一个格式化为 ext3 的根分区。
我现在启动了一个实时系统,并将 ext3 转换为 ext4(通过 tune2fs...),还执行了 fsck.ext4。在实时系统中,我可以将分区挂载为 ext4。
然后我将 /etc/fstab 中的条目从 ext3 更改为 ext4 并重新启动我的 Debian。
问题是该分区(即使 /etc/fstab 中显示的是 ext4)似乎仍然被挂载为 ext3 - 至少 mount 是这么认为的。
当我尝试确定文件系统类型时,我得到了不一致的结果:
fsck -N 报告 ext4:
sudo fsck -N /dev/mapper/hed-root
fsck from util-linux 2.20.1
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/mapper/hed-root
但 blkid 说的是 ext3
sudo blkid -o value -s TYPE /dev/mapper/hed-root
ext3
正如我所说,文件系统位于 lvm 卷中。我没有在那里做任何更改。
我该如何解决这个问题?
非常感谢!
答案1
blkid 可能仍在使用该 LV 的旧缓存条目。
您可以通过绕过缓存来确保 blkid 报告正确的信息:
sudo blkid -p /dev/mapper/hed-root
还可以对缓存进行垃圾收集:
sudo blkid -g /dev/mapper/hed-root
希望这可以帮助。
答案2
根据您的文件系统功能输出,您实际上并没有将文件系统转换为 ext4。
为了解决这个问题,将文件系统转换为 ext4. 重新启动你的 live CD 并运行相应的命令:
tune2fs -O extents,uninit_bg,dir_index /dev/mapper/hed-root
e2fsck -fDC0 /dev/mapper/hed-root
(请注意,ext4 驱动程序能够安装 ext2 和 ext3 文件系统,这就是您的系统当前可用的原因。)