Sync filesystems before returning from MBR installation
[grml2usb.git] / grml2usb
index ce0bfd5..e324954 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -107,14 +107,14 @@ parser.add_option("--skip-addons", dest="skipaddons", action="store_true",
                   help="do not install /boot/addons/ files")
 parser.add_option("--skip-bootflag", dest="skipbootflag", action="store_true",
                   help="do not try to check whether the destination has the bootflag set")
-parser.add_option("--skip-usb-check", dest="skipusbcheck", action="store_true",
-                  help="skip check to verify whether given device is removable")
 parser.add_option("--skip-grub-config", dest="skipgrubconfig", action="store_true",
                   help="skip generation of grub configuration files")
 parser.add_option("--skip-mbr", dest="skipmbr", action="store_true",
                   help="do not install a master boot record (MBR) on the device")
 parser.add_option("--skip-syslinux-config", dest="skipsyslinuxconfig", action="store_true",
                   help="skip generation of syslinux configuration files")
+parser.add_option("--skip-usb-check", dest="skipusbcheck", action="store_true",
+                  help="skip check to verify whether given device is removable")
 parser.add_option("--syslinux", dest="syslinux", action="callback", default=True,
                   callback=syslinux_warning,
                   help="install syslinux bootloader (deprecated as it's the default)")
@@ -645,6 +645,10 @@ def install_mbr(mbrtemplate, device, partition, ismirbsdmbr=True):
         raise Exception("error executing dd (third run)")
     del tmpf
 
+    # make sure we sync filesystems before returning
+    proc = subprocess.Popen(["sync"])
+    proc.wait()
+
 
 def is_writeable(device):
     """Check if the device is writeable for the current user