这种情况下,系统是怎么做到正常启动的


#1

用的纯UEFI启动,然后因为某些原因,我把EFI文件夹移走了,然后又放回来了,启动的时候,我看硬盘分区的时候,发现了一下问题
原来的boot分区没有挂载,原来的/分区现在挂载到了/boot,原来的swap分区挂载到了/,那这种情况下,系统是怎么做到正常启动的:joy:


这是yast中的情况


#2

这是/文件夹的情况


#3

uefi 系统只需要 /boot/efi 分区挂载正确即可,/boot 分区好像没用吧,我从没给它分过


#4

/boot是用来放内核的


#5

你看下 journalctl 的开机日志,再就是 /etc/fstab 的写法。怎么启动的在日志里,为什么那么挂应该是 fstab 的写法造成的。


#6

你这不贴 mount 的输出,也不贴内核的参数,fstab 的内容。这只能猜怎么回事。

mount 的信息,我记得有两个地方可以获取。
好像是一个在 /etc/mtab ,一般情况下,这个文件应该是个链接,但是有的时候这个文件也会被单独维护。另一个文件在 /proc 里面,一般情况下 /proc/mounts 就是,但也可能也是一个连接,连接到真本体上。

你先检查一下实际 mount 的情况吧。
还有在内核启动时还有个 root= 的参数,这个挂载在 fstab 时候会被替换重新挂载,但是其实只能是换参数而已。
所以我估计你的问题,很有可能是 fstab 错了,但是内核的 root 是对的。错了的 fstab 导致 mount 时失败,但是依然重写了 mounts 文件。因为 root 参数对了,Linux 成功启动。


#7

我后来想了一下,你ls看到的这个系统可能是残废的,这个根分区不是你真正的根分区,因为真的根本没挂上。
linux启动的时候会把一个内存盘映像加载到内存里,等真的根目录挂载上之后再切过去并把内存盘卸载。
这篇博客比较好的说明了初始化内存盘的作用