我遇到了升级的Fedora系统的问题。 最近亚马逊增加了基于EBS的图像,我决定尝试一下。 我启动了一个基本的FC8实例,并用yum升级它。 首先是FC10,之后是FC12。
那么我现在在FC12实例上缺less/ dev / random,还有一些其他的晦涩的东西。 例如:/ dev / null有600个权限,/ dev / urandom不是块设备。 / dev / random是绝对的:)
我在这里阅读http://markus.revti.com/2007/12/creating-devrandom/ ,如何“修复”上面的问题,然而在系统的每一个开始一切都是一样的。 我打算将修补程序添加到/etc/rc.local。 你认为这是一个很好的解决scheme/解决方法吗?
有谁知道问题到底在哪里?
感谢您的build议和分享知识,
斯坦。
ps实例正在运行这个内核:2.6.21.7-2.ec2.v1.2.fc8xen
我相信他们是由udev创build的。 将/ etc / udev目录的内容与正在工作的系统进行比较,或者查看/ var / log / udev可能会给您一些启示。
你不能像这样升级一个ec2映像。 由于内核是由亚马逊提供的,所以你必须确保使用匹配的内核来启动你的实例,否则就会发生奇怪的行为(就像你所描述的那样)。
要升级需要更改内核的系统,唯一的方法是从头开始构build一个新映像,或者find一个现有的AMI,并使用所需的操作系统版本。
你可以运行:
/sbin/MAKEDEV std
有创build这些设备文件(和一些其他)。
大多数现代Linux发行版使用udev来dynamic填充/dev的内容。
通常,根FS只需要/dev/console和/dev/null静态条目以启动。 一旦启动,一个tmpfs挂载覆盖/dev ,以提供完整的设备节点的补充。
一些诊断步骤
dmesg | grep udev dmesg | grep udev ps ax | grep udevd ps ax | grep udevd grep udev /proc/mounts 你可以也应该按照Kyle的答案检查/etc/udev的内容。 虽然udev应该在没有任何规则的基础上运行,所以不太可能是原因。
不要手动创build所有的节点,因为它会在以后回来咬你。
我发现我的问题在哪里:
https://bugs.launchpad.net/ubuntu-on-ec2/+bug/397187
事实上,当我升级到更新的Udev时,它使用了signalfd(2),这在我的EC2内核中是不可用的。
我希望这个信息会帮助别人。
斯坦。
凯尔说什么。 Fedora wiki有一篇文章: 使用yum升级Fedora – 特别是,我将检查/ etc中的.rpmsave文件,如“Clean Stuff”部分所述。 解决这个问题总是比解决问题更好,而且可能会丢失一些重要的东西。