Tob*_*ler 10 chroot mount proc sysfs
这个对另一个问题的回答基本上归结为chroot
进入另一个 Linux 发行版,以便主要使用它来替代其过于受限(但不可替代)的父发行版。chroot
我想更好地理解运行之前的建议操作是:
cp /etc/resolv.conf etc/resolv.conf
cp -a /lib/modules/$(uname -r) lib/modules
mount -t proc archproc proc
mount -t sysfs archsys sys
mount -o bind /dev dev
mount -t devpts archdevpts dev/pts
Run Code Online (Sandbox Code Playgroud)
resolv.conf
很清楚(网络/互联网访问),虽然我不确定modules
- 当chroot
进入 stage3 Gentoo 系统时,这实际上似乎没有必要,对吧?proc
,sys
和dev/pts
重新安装而不是使用绑定安装?这种情况的实际区别是什么,哪个“更正确”?proc
和dev
,但既不dev/pts
也不sys
被安装在所有。此外,它复制/etc/{hosts,fstab}
到新的根。那有意义吗?我不应该也包括在内/etc/mdadm.conf
吗?复制 /etc/resolv.conf 以免丢失 DNS。
复制 /lib/modules 是因为可能需要使用一些在设置 chroot 时不需要的硬件组件。您必须记住,您在 OP 中提到的原始问题涉及用 Arch Linux 替换 NAS 操作系统。因此,您将需要以太网驱动程序、可能是无线驱动程序、各种 USB 组件等。复制 /lib/modules 文件夹可确保新环境能够处理其未来的任务。
关于重新安装与绑定安装,您确实是正确的。根据您引用的帖子的答案,chroot上的Arch Linux Wiki 页面确实使用了您指定的重新安装和绑定安装:
cd /mnt/arch
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -t devpts pts dev/pts/
Run Code Online (Sandbox Code Playgroud)
(我认为这显示了从这篇文章中复制的行的语法是错误的:要安装的开发者在安装点之前)。
然而,chroot 上的Ubuntu 手册页讲述了一个不同的故事:
sudo mount -o bind /proc /var/chroot/proc
Run Code Online (Sandbox Code Playgroud)
这里 /proc 是绑定安装的,而不是重新安装的。
我实际上已经尝试了这两种方法,经过简短的测试运行后,我一直无法注意到任何区别。诚然,这不是一个测试,因此我将在这里说明我的情况,它应该没有太大的不同。
/etc/resolv.conf
- 您需要此文件来解析 DNS 请求。在某些情况下没有必要:
一个 DHCP 客户端在 chroot 中可用,它确实被执行并且 DHCP 服务器返回适当的信息(通常是这种情况)。
您/etc/resolv.conf
对 chroot 内部的网络(或更准确地说,从依赖 的常用应用程序进行 DNS 查询)不感兴趣。
/lib/modules/$(uname -r)
- 在您可能需要为活动内核加载任何其他模块的情况下是有意义的。如果没有这个,你会被你目前运行的任何东西困住。因此,如果您打算长时间运行 chroot 系统,您可能应该这样做。另一方面,在这种情况下,您可能应该pivot_root
改为使用(这通常是 initrd 在其生命周期结束时所做的)。如果您只需要这样做,例如从 chroot 安装引导加载程序,则没有必要(因为必须加载所有需要的驱动程序,以便您无论如何都能够执行 chroot 本身)。
/proc
并且/dev
相当明显 - 这些包含基本的系统接口。
/sys
是IIRC不是那个广泛应用于早在2007年这是什么Slackware的(这本身是相当保守的)操作指南发布日期。如今,如果没有它,您的系统可能会以某种方式失败(例如,一旦有人尝试枚举某种类型的硬件)。
/dev/pts
- 多年来,/dev
树的处理方式发生了一些变化。在某些时候,设备/dev/pts
被处理devfs
- 例如,请参阅此 LKML 线程以讨论可能的问题。
绑定安装 - 绑定安装有一些有趣的方面(在mount(8)
手册页中有很好的解释)。例如,如果您有:
/some/device on /x/a (rw)
/x/a/A on /x/b (rw)
Run Code Online (Sandbox Code Playgroud)
然后以/x/a
只读方式重新挂载,您将无法更改/x/B
. 这是可以理解的,但可能会让您第一次感到惊讶。另一个很好的问题是/x/b
在上面的例子中当你umount /x/a
. 对我来说远非显而易见,您仍然可以访问它下面的树。因此绑定安装可能很棘手。在功能上,当在整个文件系统上使用时,它是相同的。
其他内容/etc/
- 复制有用的相关配置绝对有意义。复制例如/etc/passwd
、/etc/shadow
、以及 的服务器密钥/etc/groups
可能有意义sshd
。
归档时间: |
|
查看次数: |
7392 次 |
最近记录: |