/sbin/init 不存在

/sbin/init 不存在

/sbin/init 不存在

安装 Arch Linux 后,我重新启动,但现在无法完成启动过程。我最终在上面的屏幕上看到了这条消息

ERROR: Boot device mounted successfully, but /sbin/init does not exist. Bailing out, you are on your own. Good luck.

sh: can't access tty; job control turned off.

[rootfs ]# 提示。

我已经通过实时磁盘检查并确认斯宾存在作为象征性的 关联/usr/bin。然而我没有在里面我的文件/文件夹/usr/bin目录。我应该在哪里获取在里面文件夹?我在安装过程中错过了一个步骤吗?我可以做些什么来纠正这个问题吗?谢谢。

答案1

根据我的评论,我建议您纠正它的方法是使用 livecd(或用于启动到安装环境的任何方法)重新启动系统,然后重做安装过程的以下步骤:

如果此后仍然无法正常工作,我建议检查引导加载程序实际安装的文件系统。也许给出哪些文件的列表出现在/usr/bin目录中将使我们能够为您提供进一步的帮助。

答案2

我花了半天时间解决这个问题,最终意识到我的情况的原因是我在单独的分区上设置了 /usr,并且在 grub 引导尝试访问 /usr 时只安装了根分区/bin/init。

我通过将 /usr 文件层次结构移动到根分区解决了这个问题。

理查德

答案3

对于单独的/usr分区,您必须使用 initramfs/ mkinitcpio 并且必须添加 usr-hook。有一条评论/etc/mkinitcpio.conf准确地解释了这一点。可能还需要额外的钩子,文件注释中概述了这一点。之后重新生成 initramfs,例如mkinitcpio -P.

/usr背景:目前,由于二进制文件和库的存储不一致,所有主要发行版都或多或少地被单独的分区破坏了。根据 Linux Standard Base,它们应该使用 /bin、/sbin 和/或 /lib。相反,大多数人都会自己创建并填充 /usr/bin,以欺骗 /usr/sbin 并将其与不同的库路径混合。部分原因是为了防止用户破坏东西并方便使用,部分原因是没有板子首先制定标准。

至少 Arch Linux 和 Gentoo Linux 在其 Wiki 中提供了最新的复杂设置指南。我推荐阅读 Gentoo 的早期用户空间挂载了解创建自定义 initramfs 需要什么。 Arch Linux 在这方面的水平更高一些。

我绝对建议要么保留常见桌面系统的安全性,要么以很少的分区运行。每天登录,您很快就会发现文件系统已满。可以安全地分割/home到单独的分区(和磁盘)并将所有其他目录保存在单个分区/操作系统驱动器上。

非桌面/服务器绝对应该分割分区,以避免填充分区阻塞整个系统。它们在无人看管的情况下运行数月或数年。他们会自动写入日志、数据,甚至可能更新包。由于收集的日志或下载的包存档,您无法再登录到没有剩余空间的计算机/tmp/run或(取决于发行版)。/var某些分区也很可能拥有 RAID 设备和/或复杂的文件系统。这需要更多的钩子和手动配置引导加载程序以及下面的所有内容/sbin/init

相关内容