如何正确地重新格式化分区?

如何正确地重新格式化分区?

我想创建一个不区分大小写的分区(非循环挂载)。
为此,我在 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 错误 2 错误 3

答案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

相关内容