移动包含“/boot”的逻辑卷“/”会导致启动失败吗?

移动包含“/boot”的逻辑卷“/”会导致启动失败吗?

我按照 Stephen Kitt 的建议将/其放在/homeLVM 下,而不是留/在自己的分区中。

如果/boot位于逻辑卷中/(默认情况下是),移动逻辑卷是否会导致启动失败?

这似乎是正确的,如果/文件系统位于分区中并且/boot位于/文件系统中。看来我们需要重新安装grub才能再次启动到磁盘上安装的Lubuntu。

我想知道 LVM 在这方面是否提供任何优势。

谢谢。

答案1

执行某些操作会导致启动失败吗?我们如何定义导致启动失败的原因?之前可以启动,之后无法启动。那么我们知道之前能够启动就满足了,那么之后无法启动也满足了吗?我们必须知道你做了某件事后的情况,而问题中没有给出这一点。

因此,我们假设您在执行某些操作后具有以下文件系统和分区方案(这只是假设,因为您可能有复杂的存储方案设置,它们都会影响最终结果)。

/dev/sda作为您唯一的物理磁盘(GPT 分区),/dev/sda1作为您的 ESP,/dev/sda2作为 LVM PV,由您唯一的 VG 使用,其中还包含两个 LV,一个用于,/一个用于/home.您的系统上没有其他文件系统。我不会点击你的链接,这是你的责任。

现在,您使用 grub 作为引导加载程序,它安装在 ESP 中。因为 ESP 没有被触及,所以 UEFI 固件将成功运行你的 grub,它将完美运行。但是要启动你的linux,grub需要找到你的内核和initramfs,并且kernels(实际上是initramfs,但无论如何它是内核参数,并不重要)需要被告知哪个设备包含文件系统/

grub 如何知道在哪里可以找到内核和 initramfs?显然它无法搜索所有文件系统,必须由您告知。如何?这就是grub.cfg变得重要的地方。它告诉 grub 如何找到内核和 initramfs 以及要传递给内核的参数。

那么,你的内核在哪里呢?当您安装操作系统时,内核和 initramfs 始终安装在/boot新操作系统中。但到底是哪个文件系统呢?这取决于您在安装过程中如何挂载这些文件系统。因此,它在您的“/文件系统”中,因为您从未设置单独的/boot文件系统。

你的“文件系统”在哪里/?在你的两个 LV 之一中。包含文件系统的设备在哪里/?一定是同一个LV。

那么,我们来检查一下grub.cfg,如果写得不正确,操作系统将无法启动,是吗?但如果写得正确,grub会正确找到内核、initramfs并将正确的参数传递给内核。

哦,我忘了我们无法检查,grub.cfg因为没有提供。那么……再次假设?不,根据grub的手册,grub.cfg支持这么多复杂的配置,这些配置都会影响最终的结果,就像我们之前提到的,所以我们就到此为止。做太多的假设只会让我们的答案变得离现实生活太远。

答案2

因为您无法将目录移动到它包含的内容中:

$ tree .
.
└── one
    └── two

2 directories, 0 files
$ mv ./one ./one/two/
mv: rename ./one to ./one/two/one: Invalid argument

您无法移动/到另一个位置,因为该其他位置将被自身包含。这是一个文件系统,而不是克莱因瓶。

相关内容