/ dev / random在升级后丢失

我遇到了升级的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 ,以提供完整的设备节点的补充。

一些诊断步骤

  • 确定你的内核是否支持udev: dmesg | grep udev dmesg | grep udev
  • 检查守护进程是否真的在运行: ps ax | grep udevd ps ax | grep udevd
  • 检查udev是否安装了: 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”部分所述。 解决这个问题总是比解决问题更好,而且可能会丢失一些重要的东西。