- /dev: make a symlink to /proc/self/fd so that bash process
[sliceimage.git] / vserver-reference.init
index 5a0f246..42263df 100755 (executable)
@@ -9,7 +9,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2004 The Trustees of Princeton University
 #
-# $Id: vserver-reference.init,v 1.2 2004/10/14 18:37:40 mlhuang Exp $
+# $Id: vserver-reference.init,v 1.7 2004/11/29 20:19:13 mlhuang Exp $
 #
 
 case "$1" in
@@ -41,7 +41,7 @@ exec &>/var/log/vserver-reference.log
 # Make /vservers
 mkdir -p $VROOTDIR
 chmod 000 $VROOTDIR
-chattr +t $VROOTDIR
+$PKGLIBDIR/setattr --barrier $VROOTDIR
 
 # Build image in /vservers/.vtmp
 mkdir -p $VROOTDIR/.vtmp
@@ -49,13 +49,12 @@ VROOT=$(mktemp -d $VROOTDIR/.vtmp/vserver-reference.XXXXXX)
 
 # Make /vservers/.vtmp/vserver-reference.XXXXXX
 mkdir -p $VROOT
-chattr -t $VROOT
 chmod 755 $VROOT
 
 echo -n $"Building VServer reference: " >&3 2>&4
 
 # Clean up before exiting if anything goes wrong
-trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; chattr -R -i $VROOT ; rm -rf $VROOT ; failure >&3 2>&4 ; echo >&3 2>&4 ; exit 255" ERR
+trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; rm -rf $VROOT ; failure >&3 2>&4 ; echo >&3 2>&4 ; exit 255" ERR
 
 MAKEDEV ()
 {
@@ -68,6 +67,7 @@ MAKEDEV ()
     mknod -m 644 $VROOT/dev/urandom c 1 9
     mknod -m 666 $VROOT/dev/tty c 5 0
     mknod -m 666 $VROOT/dev/ptmx c 5 2
+    ln -nsf ../proc/self/fd /dev/fd
     touch $VROOT/dev/hdv1
 }
 
@@ -88,6 +88,7 @@ cat > $VROOT/etc/fstab <<EOF
 # This fake fstab exists only to please df and linuxconf.
 /dev/hdv1      /       ext2    defaults        1 1
 EOF
+cp $VROOT/etc/fstab $VROOT/etc/mtab
 
 # Prevent all locales from being installed in reference image
 mkdir -p $VROOT/etc/rpm