我想创建一个不区分大小写的分区(非循环挂载)。
为此,我在 VirtualBox 中创建了一个 Ubuntu 16.04 VM,并在启动时(Ubuntu-Install)手动将磁盘分区为 15 GB 根分区、4 GB 交换分区和 6 GB JFS 分区。
这看起来像那样
一切运行正常,我安装了 Ubuntu,一切运行正常,即使重启后也是如此。
不幸的是,在分区设置期间创建 JFS 分区时我无法指定 -O(不区分大小写)。
因此,在安装完所有内容并重新启动操作系统(成功)后,我卸载了该分区
umount /web
并使用 -O 选项重新创建它(=OS2-compatiblity = 不区分大小写)
mkfs.jfs -O /dev/hda5
它说:这将删除所有内容,我选择[是]。
然后我重新挂载该文件系统:
mount /dev/hda5 /web
在挂载 /web 后,我在 /web 中创建了一个名为“Test”的文件/文件夹,然后我尝试在 /web 中创建另一个名为“test”的文件/文件夹,然后系统提示:错误,文件已存在。
太棒了,运行正常 - 文件系统不区分大小写。
但当我重新启动时,我得到
欢迎来到紧急启动模式...
然后,除了删除虚拟机并重新导入备份副本之外,您基本上无法执行任何操作。
为什么我会进入紧急启动模式?
/ 下的根文件系统包含所有启动内容,不应该受到我所做的任何更改的影响...
我遗漏了什么?
如何让它工作?
答案1
/web 分区是否自动挂载?当您重新创建分区时,它会更改 uuid,您必须使用新的 uuid 更新 /etc/fstab。
编辑:是的,我看到了这些行,系统崩溃了,因为它无法通过 uuid 找到 /web。并且由于它在 fstab 中,因此它被视为依赖挂载。
答案2
我并不是全心全意推荐它,但你也可以运行jsf_tune重用旧文件系统的 UUID。jsf_tune由提供工具(sudo apt install jfsutils
)在所有当前支持的 Ubuntu 版本中。
# blkid /dev/hda5
/dev/hda5: UUID="e034928e-a30c-4d0e-82e4-2970204d6b1f" BLOCK_SIZE="4096" TYPE="jfs"
# mkfs.jfs -O /dev/hda5
…
# jfs_tune -U "e034928e-a30c-4d0e-82e4-2970204d6b1f" /dev/hda5
jfs_tune version 1.1.15, 04-Mar-2011
UUID updated successfully.
现在您不必更新/etc/fstab
。