diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-01-03 06:00:55 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-01-03 06:00:55 +0000 |
commit | 310f5c3faa37debd52785d94216bfddbf6e78873 (patch) | |
tree | 213e665aeed090355a5f991197fa6e0fbc4c5c17 | |
parent | e55e6c50f645a947bf09049c224121b3f8e9666b (diff) | |
download | anaconda-310f5c3faa37debd52785d94216bfddbf6e78873.tar.gz anaconda-310f5c3faa37debd52785d94216bfddbf6e78873.tar.xz anaconda-310f5c3faa37debd52785d94216bfddbf6e78873.zip |
add some verification to ensure that the floppy disk we wrote out has
an initrd and kernel of the same size as when we started. if not, yell
-rw-r--r-- | floppy.py | 53 |
1 files changed, 50 insertions, 3 deletions
@@ -110,10 +110,9 @@ def makeBootdisk (intf, dir, floppyDevice, hdList, instPath, bootloader): # this is faster then waiting on mkbootdisk to fail device = floppyDevice - file = "/tmp/floppy" - isys.makeDevInode(device, file) + isys.makeDevInode(device, "/tmp/floppy") try: - fd = os.open(file, os.O_RDONLY) + fd = os.open("/tmp/floppy", os.O_RDONLY) except: intf.messageWindow( _("Error"), _("An error occurred while making the boot disk. " @@ -145,4 +144,52 @@ def makeBootdisk (intf, dir, floppyDevice, hdList, instPath, bootloader): "Please make sure that there is a floppy " "in the first floppy drive.")) return DISPATCH_BACK + + + # more sanity checking -- see if the initrd size and kernel size + # match what we thought they would be + device = floppyDevice + file = "/tmp/floppy" + isys.makeDevInode(device, file) + try: + isys.mount("/tmp/floppy", "/mnt/floppy", "vfat") + except: + intf.messageWindow(_("Error"), + _("An error occurred while attempting to verify " + "the boot disk. Please make sure that you " + "have a good floppy in the first floppy drive.")) + return DISPATCH_BACK + + problem = 0 + if os.access("/mnt/floppy/vmlinuz", os.R_OK): + if kernelsize != 0: + size = os.stat("/mnt/floppy/vmlinuz")[stat.ST_SIZE] + if size != kernelsize: + problem = 1 + else: + log("unable to verify kernel size. hope it fit!") + else: + problem = 1 + + if initrdsize != 0: + if os.access("/mnt/floppy/initrd.img", os.R_OK): + size = os.stat("/mnt/floppy/initrd.img")[stat.ST_SIZE] + if size != initrdsize: + problem = 1 + else: + problem = 1 + + try: + isys.umount("/mnt/floppy") + except: + pass + + if problem == 1: + intf.messageWindow(_("Error"), + _("Your boot floppy appears to be invalid. This " + "is likely due to a bad floppy. Please make " + "sure that you have a good floppy in the " + "first floppy drive.")) + return DISPATCH_BACK + return DISPATCH_FORWARD |