在启动过程中,我看到机器执行了这个操作大约 30 秒:
udev: waiting for uevents to be processed
然后我收到一条简短消息,内容如下:
devfs: timeout (50 seconds)
我无法看到整个过程,因为该系统启动得非常快,包括 Xfce。
我需要提供哪些日志和配置以供进一步调查?
$uname -a
Linux genta 3.6.6-gentoo #1 SMP Sun Nov 11 11:02:23 NOVT 2012 i686 Genuine Intel(R) CPU T2300 @ 1.66GHz GenuineIntel GNU/Linux
谢谢你!
UPD:rc 状态
genta / # rc-status sysinit
Runlevel: sysinit
dmesg [ started ]
udev [ started ]
devfs [ started ]
genta / # rc-status boot
Runlevel: boot
hwclock [ started ]
modules [ started ]
fsck [ started ]
root [ started ]
mtab [ started ]
localmount [ started ]
sysctl [ started ]
bootmisc [ started ]
hostname [ started ]
termencoding [ started ]
keymaps [ started ]
net.lo [ started ]
swap [ started ]
urandom [ started ]
procfs [ started ]
UPD 2: 内核配置
genta / # cat /etc/kernels/kernel-config-x86_64-3.6.6-gentoo | grep 'DEVTMPFS\|UEVENT'
CONFIG_UEVENT_HELPER_PATH="/usr/bin/udevadm"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
答案1
为了进一步调查,您可以通过编辑以下内容并重新启动来udev
配置报告更详细的消息 :/etc/udev/udev.conf
udev_log="err"
"info"
您可以在完成调试后将其重新设置为。udev
现在应该将消息报告到var/log/messages
文件中。希望这能有所帮助。
答案2
编译内核时,请确保在驱动程序 -> 通用部分中设置了以下配置选项:
CONFIG_UEVENT_HELPER_PATH="/usr/bin/udevadm"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
这些不是默认值。
还可以运行这些来添加到你的初始化中:
rc-update add sysfs sysinit
rc-update add udev-mount sysinit
您是否在使用 initramrs?您的 /usr 是否位于单独的分区上?
答案3
我终于能解决这个问题了。
问题是 - 我有两个分区:/boot
和/
,但我正在使用初始化内存文件系统启动系统。当时我还不太确定我是否需要它,但现在在积累了一些经验(构建 LFS ;))之后,我明白我不需要它,并initrd
从我的/boot/grub/grub.conf
文件中删除了该行