merge master into lxc_devel
[bootmanager.git] / source / steps / InstallPartitionDisks.py
index 5ca7507..9ecdc86 100644 (file)
@@ -158,17 +158,23 @@ def Run( vars, log ):
     # filesystems partitions names and their corresponding
     # reserved-blocks-percentages
     filesystems = {"root":5,"vservers":0}
-
-    # make the file systems
-    for fs in filesystems.keys():
-        # get the reserved blocks percentage
-        rbp = filesystems[fs]
-        devname = PARTITIONS[fs]
-        log.write("formatting %s partition (%s)%s.\n" % (fs,devname,txt))
-        utils.sysexec( "mkfs.ext2 -q %s -m %d -j %s" % (option,rbp,devname), log )
+    
+    # ROOT filesystem with ext2
+    fs = 'root'
+    rbp = filesystems[fs]
+    devname = PARTITIONS[fs]
+    log.write("formatting %s partition (%s)%s.\n" % (fs,devname,txt))
+    utils.sysexec( "mkfs.ext2 -q %s -m %d -j %s" % (option,rbp,devname), log )
+
+    # VSERVER filesystem with btrfs to support snapshoting and stuff
+    fs = 'vservers'
+    rbp = filesystems[fs]
+    devname = PARTITIONS[fs]
+    log.write("formatting %s partition (%s)%s.\n" % (fs,devname,txt))
+    utils.sysexec( "mkfs.btrfs %s" % (devname), log )
 
     # disable time/count based filesystems checks
-    for filesystem in ("root","vservers"):
+    for filesystem in ["root"]:
         utils.sysexec_noerr( "tune2fs -c -1 -i 0 %s" % PARTITIONS[filesystem], log)
 
     # save the list of block devices in the log
@@ -259,7 +265,11 @@ def single_partition_device_2_x ( device, vars, log):
         # get the device
         dev= parted.Device(device)
         # create a new partition table
-        disk= parted.freshDisk(dev,'msdos')
+        try:
+            disk= parted.freshDisk(dev,'msdos')
+        # use gpt as a fallback for disks larger than 2TB
+        except:
+            disk= parted.freshDisk(dev,'gpt')
         # create one big partition on each block device
         constraint= parted.constraint.Constraint (device=dev)
         geometry = parted.geometry.Geometry (device=dev, start=0, end=1)