Update for Linux-VServer 2.3 and Fedora 7's mkinitrd.
authorDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Thu, 29 Nov 2007 19:29:27 +0000 (19:29 +0000)
committerDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Thu, 29 Nov 2007 19:29:27 +0000 (19:29 +0000)
source/steps/InstallWriteConfig.py
source/steps/MakeInitrd.py

index 2d19d47..4cc6193 100644 (file)
@@ -93,7 +93,7 @@ def Run( vars, log ):
                  PARTITIONS["mapper-swap"] )
     fstab.write( "%s           /           ext3      defaults  0 0\n" % \
                  PARTITIONS["mapper-root"] )
-    fstab.write( "%s           /vservers   ext3      tagxid,defaults  0 0\n" % \
+    fstab.write( "%s           /vservers   ext3      tag,defaults  0 0\n" % \
                  PARTITIONS["mapper-vservers"] )
     fstab.write( "none         /proc       proc      defaults  0 0\n" )
     fstab.write( "none         /dev/shm    tmpfs     defaults  0 0\n" )
index 918af03..f742859 100644 (file)
@@ -36,18 +36,10 @@ def Run( vars, log ):
     except ValueError, var:
         raise BootManagerException, "Variable in vars, shouldn't be: %s\n" % var
 
-    # mkinitrd attempts to determine if the root fs is on a logical
-    # volume by checking if the root device contains /dev/mapper in
-    # its path. The device node must exist for the check to succeed,
-    # but since it's usually managed by devfs or udev, so is probably
-    # not present, we just create a dummy file.
-    
-    fake_root_lvm= False
-    if not os.path.exists( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]) ):
-        fake_root_lvm= True
-        utils.makedirs( "%s/dev/mapper" % SYSIMG_PATH )
-        rootdev= file( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]), "w" )
-        rootdev.close()
+    # mkinitrd needs /dev and /proc to do the right thing.
+    # /proc is already mounted, so bind-mount /dev here
+    utils.sysexec("mount -o bind /dev %s/dev" % SYSIMG_PATH)
+    utils.sysexec("mount -t sysfs none %s/sys" % SYSIMG_PATH)
 
     initrd, kernel_version= systeminfo.getKernelVersion(vars,log)
     utils.removefile( "%s/boot/%s" % (SYSIMG_PATH, initrd) )
@@ -59,8 +51,8 @@ def Run( vars, log ):
         os.chmod("%s/tmp/mkinitrd.sh" % SYSIMG_PATH, 755)
         utils.sysexec( "chroot %s /tmp/mkinitrd.sh %s" % (SYSIMG_PATH, kernel_version))
 
-    if fake_root_lvm == True:
-        utils.removefile( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]) )
+    utils.sysexec_noerr("umount %s/sys" % SYSIMG_PATH)
+    utils.sysexec_noerr("umount %s/dev" % SYSIMG_PATH)
 
 def checkKern():
     #  Older bootcds only support LinuxThreads.  This hack is to get mkinitrd