我正在尝试让 lxle 在我的笔记本电脑上运行,然后使用 arch 和 windows 进行引导加载,使用 refind。在理解和实验等方面,我并不是新手,但也不是 Linux 所有特性方面的专家。
当我启动 lxle 时,我得到了一个 initramfs 提示。没有显示任何明显的错误,如挂载失败或其他什么,只是常见的乱码。老实说,我没有看到任何迹象为什么我被带到了这个提示。Refind 传递了 root=UUID=... 参数,并且 initramfs 成功将其挂载到 /root 下:我可以浏览 /root/@ 并查看 lxle 的文件,包括我的 /boot/refind_linux.conf。
然后,当我尝试运行 /root/@/sbin/init 时,我收到一条消息,提示 libjson_something 不存在。我很难相信安装程序会忽略一个关键的启动文件...我尝试了 btrfs check --repair,但它没有改变任何东西。
除此之外,我没有任何症状、线索和想法。有什么可以帮忙的吗?提前谢谢。
编辑:当我exit
遇到内核恐慌时......
答案1
事实证明,这很简单,只需添加
rootflags=default,subvolid=257
到我的 refind_linux.conf,因为仅添加文件系统作为 root= 参数会导致挂载 btrfs 根目录,其中包含 @ 和 @home 子卷。系统希望看到 @(根子卷)的内容挂载在 / 上,但却发现 btrfs 根目录已挂载 @ 和 @home,这显然破坏了一切。
另一个解决方案是
btrfs sub set-default 257 /
使得 subvolid= 参数不再必要。然后可以通过使用 subvolid=0 挂载文件系统来访问 btrfs 根目录。
真的是 Btrfs 基础知识。我很高兴本周尝试了它(子卷、快照等),绝对值得付出努力。我终于意识到,我将 btrfs 根目录挂载为我的文件系统根目录就是因为它。