commit 61187cbe4f014b4d07e484c5153a2b49fd619505
Author: Dave Riches <dcr226(a)fedorapeople.org>
Date: Thu Jan 13 16:34:47 2011 +0000
converted to grub2, untested
multiboot-media-creator.py | 38 +++++++++++++++++++++-----------------
1 files changed, 21 insertions(+), 17 deletions(-)
---
diff --git a/multiboot-media-creator.py b/multiboot-media-creator.py
index 8535c31..2a92c8d 100755
--- a/multiboot-media-creator.py
+++ b/multiboot-media-creator.py
@@ -14,7 +14,7 @@
### Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
### multiboot-media-creator Copyright 2010-2011 Robert 'Bob' Jensen
<bob(a)fedoraunity.org>, Dave Riches <dcr226(a)fedorapeople.org>, Dennis Johnson
<drjohnson1(a)gmail.com>, Ben Williams <vaioof(a)yahoo.com>
-import sys, os, glob, tempfile, shutil, parted
+import sys, os, glob, tempfile, shutil, parted, commands
__version__ = "$Revision: 4 $"
# $Source$
@@ -52,8 +52,8 @@ else:
mytemp=tempfile.mkdtemp(suffix=".mmc")
dev=options.device
-if dev==None:
- sys.exit("Program requires a destination device")
+#if dev==None:
+# sys.exit("Program requires a destination device")
print path
print dev
@@ -73,9 +73,14 @@ def umount_device(dev):
def grub_install():
try:
- os.system("grub-install --root-directory=%s %s" % (mytemp,dev))
+ os.system("grub2-install --root-directory=%s %s --force" %
(mytemp,dev))
except:
sys.exit("Unable to grub-install, check device")
+ try:
+ os.system("e2label %s Multi-Boot" % dev)
+ except:
+ sys.exit("Unable to relabel device partition, boot will fail")
+
def getisos(isopath,isotype):
"""getisos returns a list of isos inside a specific path
based on a given type"""
@@ -123,7 +128,7 @@ def removetemps():
def make_iso():
shutil.copy2('/usr/share/grub/i386-redhat/stage2_eltorito',
os.path.join(mytemp, "boot/grub/"))
- mkisocmd='mkisofs -R -v -V "Multi-Boot" -b boot/grub/stage2_eltorito
-no-emul-boot -boot-load-size 4 -boot-info-table -allow-limited-size -o Multi-Boot.iso
%s' % mytemp
+ mkisocmd='mkisofs -R -J -v -V "MultiBoot" -b boot/grub/stage2_eltorito
-no-emul-boot -boot-load-size 4 -boot-info-table -allow-limited-size -o Multi-Boot.iso
%s' % mytemp
os.system(mkisocmd)
def build_filesystem():
@@ -163,22 +168,21 @@ def build_filesystem():
print "Done!"
def create_grub(gtimeout=10):
- grub=open(os.path.join(mytemp, "boot/grub/grub.conf"), "w")
+ grub=open(os.path.join(mytemp, "boot/grub2/grub.cfg"), "w")
grub.write("splashimage=/boot/grub/splash.xpm.gz\ntimeout=%s\ndefault=0\n\n" %
gtimeout)
for lives in getisos(path,"live"):
- BN=lives.strip(".iso")
- grub.write("title %s\n" % BN)
- grub.write(" kernel /%s/images/isolinux/vmlinuz0
root=live:LABEL=Multi-Boot live_dir=/%s/images/LiveOS/ rootfstype=auto ro liveimg quiet
rhgb\n" % (BN,BN))
- grub.write(" initrd /%s/images/isolinux/initrd0.img\n\n" % BN)
+ BN=os.path.basename(lives.strip(".iso"))
+ grub.write("menuentry %s {\n" % BN)
+ grub.write(" linux /%s/images/isolinux/vmlinuz0
root=live:LABEL=Multi-Boot live_dir=/%s/images/LiveOS/ rootfstype=auto ro liveimg quiet
rhgb\n" % (BN,BN))
+ grub.write(" initrd /%s/images/isolinux/initrd0.img\n}\n" % BN)
for dvds in getisos(path,"dvd"):
- BN=dvds.strip(".iso")
- grub.write("title %s\n" % BN)
- grub.write(" kernel /%s/boot/vmlinuz
repo=hd:LABEL=Multi-Boot:/%s/\n" % (BN,BN))
- grub.write(" initrd /%s/boot/initrd.img\n\n" % BN)
- grub.write("title %s rescue\n" % BN)
+ BN=os.path.basename(dvds.strip(".iso"))
+ grub.write("menuentry %s {\n" % BN)
+ grub.write(" linux /%s/boot/vmlinuz repo=hd:LABEL=Multi-Boot:/%s/\n"
% (BN,BN))
+ grub.write(" initrd /%s/boot/initrd.img\n}\n" % BN)
+ grub.write("title %s rescue {\n" % BN)
grub.write(" kernel /%s/boot/vmlinuz repo=hd:LABEL=Multi-Boot:/%s/
rescue\n" % (BN,BN))
- grub.write(" initrd /%s/boot/initrd.img\n\n" % BN)
-
+ grub.write(" initrd /%s/boot/initrd.img\n}\n" % BN)
grub.close()
#if __name__=="__main__":