Tty
Debian chroot 阻止主機上的 PTTY
我
debootstrap
在 Arch Linux 下創建了一個基於 Debian 的 chroot 環境,並用這樣的方式填充它:#!/bin/sh mount -t proc proc $CHROOT/proc mount -t devpts devpts $CHROOT/dev/pts chroot $CHROOT /bin/bash --login -c "/etc/init.d/ssh start"
問題是執行上述腳本後,我無法再在主機系統上打開新終端:
urxvt: can't initialize pseudo-tty, aborting.
關閉
chroot
(停止sshd
、解除安裝 proc 和 dev/pts)不會在主機上恢復新終端。我在這裡想念什麼?
當您執行時
mount -t devpts devpts $CHROOT/dev/pts
,這會在 chroot 中安裝 devpts 文件系統的單獨實例。使 devpts 在 chroot 中可用的另一種方法是使用綁定掛載,它使文件系統的相同實例在新位置可用。綁定掛載就像建立一個硬連結,只針對掛載點而不是文件。mount --bind /dev/pts "$CHROOT"/dev/pts
devpts 的不同實例共享相同的文件(如果您創建或刪除終端或更改其元數據,它會反映在所有實例中)。但是,引擎蓋下顯然存在一些差異,這使其無法正常工作。綁定掛載確保需要同步的所有內容都是同步的,因為它是同一個文件系統,而不僅僅是一個相同的文件系統。