diff options
author | Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> | 2012-03-09 00:04:28 -0300 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2012-06-10 12:57:14 +0200 |
commit | 231496c82ad07399de94062dbbb72a895da64c34 (patch) | |
tree | 878c5af2da8f0a48b1488eee777a6145dac6816f | |
parent | fda394f1a054e58f146e942b5971944e562583a0 (diff) |
mkarchroot: use bind mount instead of symlink for /dev/ptmx
We need /dev/ptmx -> /dev/pts/ptmx (for devpts -o newinstance)
Other way to do this thing is via bind mount (as said kernel doc[devpts.txt]).
This should be done in this way at least for /dev as devtmpfs in the chroot.
Since we can not touch /dev (devtmpfs), because devtmpfs is "singleton",
just use bind method and avoid interference.
Do it the same for both modes of /dev (tmpfs) and (devtmpfs) to keep it simple.
Currently devpts in chroot is not working without this when using /dev as devtmpfs,
this fixes this issue (opening /dev/ptmx, creates devices nodes on outside /dev/pts)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
-rw-r--r-- | mkarchroot.in | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mkarchroot.in b/mkarchroot.in index d45cfba..3eb7464 100644 --- a/mkarchroot.in +++ b/mkarchroot.in @@ -103,6 +103,7 @@ chroot_mount() { mknod -m 644 "${working_dir}/dev/random" c 1 8 mknod -m 644 "${working_dir}/dev/urandom" c 1 9 mknod -m 666 "${working_dir}/dev/tty" c 5 0 + mknod -m 666 "${working_dir}/dev/ptmx" c 5 2 mknod -m 666 "${working_dir}/dev/tty0" c 4 0 mknod -m 666 "${working_dir}/dev/full" c 1 7 ln -s /proc/kcore "${working_dir}/dev/core" @@ -117,7 +118,7 @@ chroot_mount() { [[ -e "${working_dir}/dev/pts" ]] || mkdir "${working_dir}/dev/pts" mount -t devpts devpts "${working_dir}/dev/pts" -o newinstance,ptmxmode=666 - ln -s pts/ptmx "${working_dir}/dev/ptmx" + mount -o bind "${working_dir}/dev/pts/ptmx" "${working_dir}/dev/ptmx" [[ -e $cache_dir ]] || mkdir -p "${cache_dir}" [[ -e "${working_dir}/${cache_dir}" ]] || mkdir -p "${working_dir}/${cache_dir}" @@ -148,6 +149,7 @@ copy_hostconf () { chroot_umount () { umount "${working_dir}/proc" umount "${working_dir}/sys" + umount "${working_dir}/dev/ptmx" umount "${working_dir}/dev/pts" umount "${working_dir}/dev/shm" umount "${working_dir}/dev" |