Debian chroot はホストから PTTY をブロックします。

Debian chroot はホストから PTTY をブロックします。

Arch LinuxでDebianベースのchroot環境を作成し、debootstrap次のように入力しました。

#!/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.

シャットダウンchrootsshdprocおよびdev / ptsを停止、マウント解除)しても、ホストに新しい端末が復元されません。

私がここで何を見逃しているのでしょうか?

ベストアンサー1

これを実行すると、mount -t devpts devpts $CHROOT/dev/ptschrootにdevptsファイルシステムの別のインスタンスがマウントされます。 chrootでdevptを有効にするもう1つの方法は、バインドマウントを使用することです。これにより、ファイルシステムの同じインスタンスが新しい場所で使用可能になります。バインドマウントは、ファイルの代わりにマウントポイントに対してのみハードリンクを生成するのと同じです。

mount --bind /dev/pts "$CHROOT"/dev/pts

別のdevptsインスタンスは同じファイルを共有します(ターミナルを作成または削除したり、そのメタデータを変更したりすると、すべてのインスタンスに反映されます)。しかし、動作を妨げる背面には明らかにいくつかの違いがあります。バインドマウントを使用すると、同期する必要があるすべての項目が同じファイルシステムではなく同じファイルシステムであるため、同期されます。

おすすめ記事