这是第一次安装arch,很多不太明白,之前帖子好像也是这个错误,但是感觉原因不太一样,所以请教一下,细节如下
UEFI启动,grub
分区情况:sdb 22.4G ext4 挂载点/ sda1 512M 作ESP 挂载点/boot sda2 20G ext4 挂载点/usr sda3 sda剩余空间 ext4 挂载点/home
fstab文件截图
然后是两条指令输出的截图
#ls /new_root
#ls -l /new_root/sbin/init
最近编辑记录 haski (2018-01-05 19:31:06)
离线
不要单独分 /usr,除非你对启动过程非常非常了解。
离线
搞定了,确实是2l说的/usr独立分区带来的问题。总结下以供参考,排查和解决方法是这样的:
首先通过
ls /new_root
排查new_root下的目录结构是否类似根的目录结构,如果是的,证明安装的分区应该没问题, 再通过
ls -l /new_root/sbin
查看是否是一个指向/usr/bin的软链接,如果没有链接的话可以尝试手动链接。再查看/usr/bin目录下是否存在init文件,如果存在链接并且init都存在的话证明是在rootfs下无法加载/usr的问题,可能和我一样都是没有注意archwiki里关于mkinitcpio里提到的独立分区/usr需要在/etc/mkinitcpio.conf下添加hook的问题。这里我直接引用一下
/usr 放到单独分区
如果将 /usr 放在单独分区,必须满足:
添加 fsck 钩子,在/etc/fstab中将/usr的passno设置为0。这个对其他用户是推荐选项,而对 /usr 单独分区用户是硬性要求。不添加这个钩子,没有此选项,系统不好对/usr进行磁盘检查。
从 mkinitcpio 0.9.0 开始: 添加上面的钩子和 usr 钩子,它会在 root 挂载后挂载 /usr 分区。
直接讲做法吧,先通过livecd引导进入之后chroot,打开/etc/mkinitcpio.conf文件,找到HOOK那一行,在后面加上fsck usr shutdown,最终HOOK那一行看起来可能会是这样的
HOOKS=(base udev autodetect sata filesystems shutdown usr fsck)
之后不要忘记
mkinitcpio -p linux
,再打开/etc/fstab文件修改一下对应于/usr分区的passno,改为0,就大功告成了
离线
为什么想到要 /usr 单独分区?
开源/Linux大众化,从驿窗开始~
离线