在 `rm` 之后恢复 /dev

gcb*_*gcb 5 linux gentoo rm udev dev

在从 livevd 安装 gentoo 期间,有一个步骤可以创建一个 dev 目录,稍后在目标的 chroot 中用于安装

它是这样完成的

mount --rbind /dev /mnt/gentoo/dev
Run Code Online (Sandbox Code Playgroud)

在安装过程中,我决定重新开始……所以我就这样做了

rm -fr /mnt/gentoo/*
Run Code Online (Sandbox Code Playgroud)

没想到它(“将再次解压缩 stage3 tar 球”)我从我的实际 /dev 中删除了大部分设备文件,因为 chroot 中的那些只是绑定到真实设备。

现在,简单的解决方案是:重新启动。我知道如果我重新启动它们会再次出现。但这是一个没有持久性的livevd。因此,如果我重新启动,我将失去大约 1 小时的固件准备时间,等等,

现在我将重新启动。但我想学习如何恢复 /dev 如果这样的情况再次发生(因为现在我需要知道即使我永远不会再使用它)


更新:只记得 LFS。从头开始阅读 linux 文档,我认为最简单的解决方法是调用

 /etc/init.d/udev restart
Run Code Online (Sandbox Code Playgroud)

大多数文件现在似乎都在那里。

use*_*686 7

2014 更新:最新的 udev 版本根本不创建设备节点,而是依靠内核的 devtmpfs 来创建。因此,如果您的发行版具有最新的 udev,旧答案将停止工作。使用 devtmpfs,唯​​一的自动化方法可能是重新启动。


/dev 在大多数 Linux 发行版上由 udev 管理,因此

udevadm trigger
Run Code Online (Sandbox Code Playgroud)

应该有帮助。

完全重新启动 udev 也可以,但这不是必需的,并且该命令高度依赖于所使用的发行版。

注意:在该命令生效之前,您必须手动创建一些项目。/dev/{零,空}