我正在为RPi构建定制的内核。问题是RPi引导加载程序需要vfat / boot分区,而我打算最小化内核大小,因此需要从内核中删除vfat支持。
我已经阅读了《嵌入式Linux入门》和《 Linux内核开发》书籍。据我了解,引导加载程序似乎使用/ boot分区来查找内核和initramfs,以及其他一些重要文件
我尝试从内核中删除vfat支持,同时保持/ boot的格式为vfat。内核启动就好了。但是,systemd停留在某处说无法挂载/ boot,因为内核不支持vfat,witch非常好。然后,Systemd给了我一个救援壳。
我想知道既然RPi引导加载程序已经支持vfat,并且能够毫无问题地加载内核,有什么办法可以要求systemd根本不挂载/ boot吗?据我了解,由于此阶段已经加载了内核,因此内核不需要访问/ boot分区。
任何帮助将不胜感激。
systemd将尝试挂载您在中列出的文件系统/etc/fstab
,因此,如果/boot
从/etc/fstab
其中删除,则不要尝试挂载它。
(我刚刚在Fedora系统上对其进行了测试,将其从中移除/etc/fstab
并确认未安装。)
systemd确实有一些代码专门用于处理EFI分区,所以也许这就是您在RPi上所拥有的,而这正是触发挂载的原因……但这通常是使用自动挂载单元实现的,换句话说,它将尝试只有当有人朝里看时才安装它/boot
。
挂载的逻辑/etc/fstab
由systemd-fstab-generator实现,而挂载EFI分区的逻辑由systemd-gpt-auto-generator实现。
另一个有用的命令是systemctl status /boot
(当您将其安装到支持vfat的内核时),它可以为您提供更多有关其来源的提示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句