systemd 根据“/proc/cmdline”挂载“rootfs”

systemd 根据“/proc/cmdline”挂载“rootfs”

设置

我正在使用 systemd 运行 Debian 8 (jessie/testing) amd64。

在包含 btrfs 文件系统的系统分区上,我确实有以下布局:

/dev/sda1  
|-root  
|-root_snapshots/  
   |-snapshot#1
   |-snapshot#2

为了从快照完全启动,我目前必须更改子卷:

  • 在 /etc/fstab 中
  • 在 grub 控制台中(编辑模式)

开机时。

问题

对“/etc/fstab”的更改需要一个正在运行的系统 - 即来自闪存驱动器 - 我想避免

设想

假设某些东西真的损坏了,我必须从快照#1 启动:
我宁愿只更改 grub 控制台中的子卷,并将 rootfs 安装在正确的子卷上(此处:快照#1)。

如果不更改 /etc/fstab,systemd 仍会从 /etc/fstab 中指定的条目挂载 rootfs -> 产生要挂载的错误 rootfs

问题

  • 可以告诉 systemd 从“/proc/cmdline”的“rootflags=subvol=”参数挂载 rootfs
  • 或者有其他解决方案来规避这个问题

答案1

我想这可能会有帮助。有一个 systemd 可以理解的内核命令行参数列表:http://www.freedesktop.org/software/systemd/man/kernel-command-line.html
有一个选项 fstab= 和 rd.fstab

采用布尔参数。默认为“是”。如果为“否”,则导致生成器忽略 /etc/fstab 中配置的任何安装或交换。 rd.fstab= 仅由初始 RAM 磁盘 (initrd) 遵循,而 fstab= 主系统和 initrd 均遵循。

因此,如果在 grub/grub2 中设置(我不知道你在使用什么) root=/dev/required_dev fstab=no ,它应该按预期启动。

相关内容