8

I've created a Debian-based chroot environment using debootstrap under Arch Linux, and fill it with life like this:

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

The problem is that after executing the script above, I'm not able to open new terminals on the host system anymore:

urxvt: can't initialize pseudo-tty, aborting.

Shutting down the chroot (stopping sshd, unmounting proc and dev/pts) does not bring back new terminals on the host.

What am I missing here?

2
  • 1
    Please post the output of ls -l /dev/pts before and after. Stab in the dark: is mount --bind /dev/pts $CHROOT/dev/pts any better? You'll probably save a lot of effort by using schroot instead of building your own. Sep 11, 2013 at 23:33
  • mount --bind did the trick, thanks! ;) Outputs of ls -l /dev/pts did not differ.
    – lynix
    Sep 13, 2013 at 12:48

1 Answer 1

5

When you run mount -t devpts devpts $CHROOT/dev/pts, this mounts a separate instance of the devpts filesystem in the chroot. An alternative way of making devpts available in the chroot is to use a bind mount, which makes the same instance of the filesystem available at a new location. Bind mounts are like making a hard link, only for mount points instead of files.

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

Separate instances of devpts shares the same files (if you create or remove a terminal or change its metadata, it's reflected in all instances). However there is evidently some difference under the hood which makes it not work. A bind mount ensures that everything that needs to be synchronized is synchronized since it's the same filesystem and not merely an identical one.

2
  • 1
    I just had the opposite problem with a Debian chroot running on QNAP's QTS Linux-based OS. I'd used a bind mount which caused screen to fail and switching to a devpts mount instead fixed it.
    – markshep
    Apr 21, 2016 at 21:24
  • I tried the bind mount and then mounting -t devpts - both go wrong in some cases. May 26, 2022 at 23:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .