我目前面临以下情况:
在更新后重新启动 Ubuntu 12.04 LTS 服务器时(它完美地运行了大约一年,我在大约两个月前更新了它,重新启动时没有任何问题,现在大约两周前我再次进行了 apt-get 更新/升级),它在我进入 Grub 菜单选择之前就挂起了,并显示以下消息:
udevd[538] inotify_add_watch(6, /dev/dm-2, 10) failed: invalid argument
done.
该服务器有 4 个硬盘,其中 3 个被组织成一个 LVM 组(这不是我做的,所以我不知道这是如何执行的,如果需要我可以提供 vgdisplay 的输出,对我来说看起来很好)并且最后一个用于启动系统。
从 Ubuntu 12.04 Live CD 启动时(我也遇到了 udev 错误,但它只会使启动过程停滞约 10 秒钟),我可以通过执行以下操作毫无问题地挂载所有分区
mount /media/ubuntuserver /dev/mapper/ubuntuserver-root (contains the root partition)
mount /media/sda1 /dev/ubuntuserver/boot (contains the /boot directory)
fsck 没有报告这些磁盘上有任何错误。
在类似的帖子中我读到“cryptsetup”的安装修复了一些 udev 错误,所以我尝试执行 chroot:
Boot from Live CD
sudo bash
mount /media/ubuntuserver /dev/mapper/ubuntuserver-root
mount /media/sda1 /dev/ubuntuserver/boot
mount -o bind /proc /media/ubuntuserver/proc
mount -o bind /dev media/ubuntuserver/dev
mount -o bind /dev/pts /media/ubuntuserver/dev/pts
mount -o bind /sys /media/ubuntuserver/sys
chroot /media/ubuntuserver /bin/bash
swapon /dev/mapper/ubuntuserver-swap_1
但是我无法完成 apt-get 升级(更新工作正常),因为每当要处理安装后触发器时,系统就会挂起并且不执行任何操作,没有错误,什么都没有。
使用 ctrl+c 取消此过程最终让我到达调用 initramfs-update 的部分,该部分也停止运行。当从第二个 shell chroot 到系统时,我看到 /boot 中的新 initrd 文件为 0 字节。
经过一些额外的调整后,我发现当调用
update-initramfs -u -v
它停在线上
Building cpio /boot/initrd.img-2.6.32-24-server.new initramfs
/sda1 已挂载到 /boot,在第二个 shell 上,我看到创建的文件大小为 0 字节,就是这样。
有没有提示我哪里做错了?还有什么提示我还可以尝试吗?我没什么主意了……
提前谢谢你,并致以最诚挚的问候 Manuel