设置
我正在使用 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 ,它应该按预期启动。