|
昨天装 gentoo 时遇到的。
启动到
init-early.sh used greatest stack depth
这一行就不动了。找了一下,是 stage3 的 tarball 里的文件有问题。
一个正常的操作系统,在 /dev 下应该有:- crw------- 1 root root 5, 1 May 28 10:28 console
- crw-rw-rw- 1 root root 1, 3 May 28 10:27 null
- crw-rw-rw- 1 root root 1, 5 May 28 10:27 zero
复制代码 注意字母 c ,这代表这些是特定的设备文件(翻译合适否?)。
而最近的 stage tarball 只有 /dev/null ,而且文件类型还不正确。
(现在假设你在另一个宿主系统里,将 gentoo 挂载到了 /mnt/gentoo )
要解决这个问题,只需要
先删除 /dev/null - cd /mnt/gentoo/dev
- rm null
复制代码
然后创建以下文件:- mknod --mode=600 console c 5 1
- mknod --mode=666 null c 1 3
- mknod --mode=666 zero c 1 5
复制代码 这使 udev 能够在启动时创建 /dev/ 下的其他文件。
而根据 "基础布局Baselayout和OpenRC迁移指南" ,openrc 在启动的时候不再默认加载 udev 。
先检查一下:- ls -l etc/runlevels/sysinit
复制代码 若没有 udev 字样输出,需创建符号链接。如果 chroot 的话可用 eselect 。或者:- cd etc/runlevels/sysinit
- ln -s /etc/init.d/udev udev
复制代码
<完> |
|