Mount and unmount /dev/pts for chrooting (issue #39)
authorSebastian Pipping <sebastian@pipping.org>
Wed, 11 Mar 2015 14:49:26 +0000 (15:49 +0100)
committerMichael Prokop <mika@grml.org>
Fri, 8 May 2015 11:48:52 +0000 (13:48 +0200)
Addressing:

| E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)

grml-debootstrap

index c926544..2a91c2b 100755 (executable)
@@ -225,7 +225,7 @@ cleanup() {
 
       # ugly, but make sure we really don't leave anything (/proc /proc and
       # /dev /dev are intended, trying to work around timing issues, see #657023)
-      for ARG in /sys /proc /proc /dev /dev ; do
+      for ARG in /sys /proc /proc /dev/pts /dev/pts /dev /dev ; do
         [ -x "$MNTPOINT"/bin/umount ] && chroot "$MNTPOINT" umount $ARG >/dev/null 2>&1
         umount "$MNTPOINT"/$ARG >/dev/null 2>&1
       done
@@ -1096,6 +1096,7 @@ finalize_vm() {
   mount -t proc none "${MNTPOINT}"/proc
   mount -t sysfs none "${MNTPOINT}"/sys
   mount --bind /dev "${MNTPOINT}"/dev
+  mount --bind /dev/pts "${MNTPOINT}"/dev/pts
 
   mkdir -p "${MNTPOINT}/boot/grub"
   if ! [ -d "${MNTPOINT}"/usr/lib/grub/i386-pc/ ] ; then
@@ -1130,6 +1131,7 @@ finalize_vm() {
 
   umount "${MNTPOINT}"/proc
   umount "${MNTPOINT}"/sys
+  umount "${MNTPOINT}"/dev/pts
   umount "${MNTPOINT}"/dev
   umount "${MNTPOINT}"
   kpartx -d "${ORIG_TARGET}" >/dev/null
@@ -1394,11 +1396,13 @@ chrootscript() {
   else
     einfo "Executing chroot-script now"
     mount --bind /dev "$MNTPOINT"/dev
+    mount --bind /dev/pts "$MNTPOINT"/dev/pts
     if [ "$DEBUG" = "true" ] ; then
       chroot "$MNTPOINT" /bin/sh -x /bin/chroot-script ; RC=$?
     else
       chroot "$MNTPOINT" /bin/chroot-script ; RC=$?
     fi
+    try_umount 3 "$MNTPOINT"/dev/pts
     try_umount 3 "$MNTPOINT"/dev
     eend $RC
   fi