如何在linux中分离/boot分区?

如何在linux中分离/boot分区?

我的设备只能从 SD 卡或 eMMC 模块启动,但我没有 eMMC 模块,所以我必须从 SD 卡启动。但是,我也有 NVMe 驱动器,我想要做的是让我的系统从 SD 卡启动,但将其他所有内容(库、程序,不仅仅是主目录)存储在 NVMe 上。将另一个驱动器用于 /home 文件夹很容易,因为它只需要您将数据复制到该驱动器并在 /etc/fstab 中添加一个条目,但我只能在一个目录中挂载一个驱动器,因此例如,我不能将 /bin 目录挂载到我文件系统中 /bin 目录中的驱动器上,也不能将 /home 目录挂载到我文件系统中 /home 目录中的驱动器上。当然,我可以为 /bin、/lib、/home、/var... 文件夹中的每一个创建不同的分区,但它们不可扩展。

因此,我想要做的是,在我的 NVMe 驱动器上只有一个分区(和一个命名空间,因为 NVMe 驱动器也有命名空间),并且我希望该驱动器上有 /bin、/lib、/home... 目录,并希望它们在我的真实文件系统中挂载到 /bin、/lib、/home 目录中。并且这些必须位于 SD 卡上的目录(/boot、/etc)我也希望挂载到相应的目录中。

答案1

创建一个根/分区和一个/boot分区。将启动分区挂载到/boot根分区上。这是此类情况下的常见设置。

您不需要单独的/etc分区。存储在上的早期文件系统映像 (initrd/initramfs)/boot将包含挂载根文件系统所需的驱动程序和信息。挂载根文件系统后,/etc即可访问它并处理 fstab。

记得更新 initramfs(在 Debian 衍生产品上是update-initramfs -u -k all),因为它需要考虑 fstab 中的一些信息。您可能还需要更新引导加载程序配置。对于 GRUB 来说,这将是update-grub;对于 systemd-boot 来说,kernelstub如果您正在使用它,则它要么是调用,要么是等效操作。在嵌入式平台上,可能某个地方有一个 uboot 配置文件需要调整。(来自 OP 自己的实验/boot/armbianEnv.txt:)

如果这不起作用并且您没有显示器来跟踪启动消息,我建议使用 UART 来抓取它们并查看出了什么问题。

相关内容