添加:
阅读后建议重复当 chroot 到“替换”发行版时,哪个 proc、sys 等应该绑定安装(或不绑定安装)?:
我怎么知道:
- 通常调用 sysfs、proc、dev、dev/pts 的挂载前
chroot
, - 我想
bind
在mount -o bind /dev dev/
其中使用可以对与系统chroot
运行位置相同的设备进行评估。
但是,它并没有解释为什么我收到错误,从我所看到的设置来看,相关部分与错误不在输出中的设置没有区别。请有人帮助了解更多 Linux 的底层工作原理。 TIA
原来的:
我一直在使用chroot
Linux Mint 20.2 编写脚本。在 20.2 上,我已经挂载到 20.2 的 ISO 发行版中,sudo
按预期工作。
最近我尝试从 20.2 chroot 到 ISO 发行版 21,并且在运行sudo mount -t proc proc /proc
后chroot
得到
sudo: unable to allocate pty: No such device
我比较了/dev
和的内容,/dev/pts
当在 20.2 和 21 中进行 chroot 时ls -a
,内容匹配,也是/dev/pts
空的。
我理解当 chrooted 命令以 root 身份运行时,因为用户是 root,但是我编写脚本部分是为了在幕后学习 Linux,并希望了解错误的原因。连接到服务器时,网络搜索得到了类似错误的链接,我看不到解释我的设置行为的信息。
uname -a
对于 20.2 和 21 输出相同的“5.4.0-74-generic”;替换sudo
为sudo --stdin
仍然导致“sudo:无法分配pty:没有这样的设备”,我记得有一段时间添加--stdin
摆脱了一些错误(不记得错误是什么),我读过相关的明确使用“sudo -S”的目的是什么?
sudo
之后停止输出“sudo:无法分配 pty:没有这样的设备” mount -t devpts devpts /dev/pts
,但是输出变为
*** closefrom failed to close a file descriptor ***: terminated
Aborted
运行后也mount -t proc proc /proc
sudo
按预期工作,但 mount /proc
w/out/dev/pts
仍然导致之前的“无法分配 pty”,所以我很困惑(如上所述,/dev/pts
在工作和非工作情况下,匹配和空的内容)。
我还可以检查和尝试什么? TIA
答案1
我解决了 sudo:
无法分配 pty:没有这样的设备
在运行 chroot 之前获取 root 会话:
sudo su -
然后
chroot /mnt