def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") self.log.debug("Copying preseed file") mkdir_p(join(self.iso_contents, "preseed")) outname = join(self.iso_contents, "preseed", "customiso.seed") if self.preseed_file == generate_full_auto_path("debian-" + self.tdl.update + "-jeos.preseed"): def _preseed_sub(line): """ Method that is called back from oz.ozutil.copy_modify_file() to modify preseed files as appropriate for Debian. """ if re.match('d-i passwd/root-password password', line): return 'd-i passwd/root-password password ' + self.rootpw + '\n' elif re.match('d-i passwd/root-password-again password', line): return 'd-i passwd/root-password-again password ' + self.rootpw + '\n' else: return line copy_modify_file(self.preseed_file, outname, _preseed_sub) else: shutil.copy(self.preseed_file, outname) if self.tdl.arch == "x86_64": installdir = "/install.amd" else: # arch == i386 installdir = "/install.386" self.log.debug("Modifying isolinux.cfg") isolinuxcfg = join(self.iso_contents, "isolinux", "isolinux.cfg") with open(isolinuxcfg, 'w') as f: f.write("""\ default customiso timeout 1 prompt 0 label customiso menu label ^Customiso menu default kernel %s/vmlinuz\ append file=/cdrom/preseed/customiso.seed %sdebian-installer/locale=en_US console-setup/layoutcode=us netcfg/choose_interface=auto priority=critical initrd=%s/initrd.gz -- """ % (installdir, extra, installdir))
def _modify_iso(self): """ Method to make the boot ISO auto-boot with appropriate parameters. """ self.log.debug("Modifying ISO") self.log.debug("Copying preseed file") outname = join(self.iso_contents, "preseed", "customiso.seed") outdir = dirname(outname) mkdir_p(outdir) self._copy_preseed(outname) self.log.debug("Modifying isolinux.cfg") isolinuxcfg = join(self.iso_contents, "isolinux", "isolinux.cfg") isolinuxdir = dirname(isolinuxcfg) if not isdir(isolinuxdir): mkdir_p(isolinuxdir) shutil.copyfile(join(self.iso_contents, "isolinux.bin"), join(isolinuxdir, "isolinux.bin")) shutil.copyfile(join(self.iso_contents, "boot.cat"), join(isolinuxdir, "boot.cat")) f = open(isolinuxcfg, 'w') if self.tdl.update in ["5.04", "5.10"]: f.write("DEFAULT /install/vmlinuz\n") f.write("APPEND initrd=/install/initrd.gz ramdisk_size=16384 root=/dev/rd/0 rw preseed/file=/cdrom/preseed/customiso.seed debian-installer/locale=en_US kbd-chooser/method=us netcfg/choose_interface=auto keyboard-configuration/layoutcode=us debconf/priority=critical --\n") f.write("TIMEOUT 1\n") f.write("PROMPT 0\n") else: f.write("default customiso\n") f.write("timeout 1\n") f.write("prompt 0\n") f.write("label customiso\n") f.write(" menu label ^Customiso\n") f.write(" menu default\n") if isdir(join(self.iso_contents, "casper")): f.write(" kernel /casper/vmlinuz\n") f.write(" append file=/cdrom/preseed/customiso.seed boot=casper automatic-ubiquity noprompt keyboard-configuration/layoutcode=us initrd=/casper/" + self.casper_initrd + "\n") else: keyboard = "console-setup/layoutcode=us" if self.tdl.update == "6.06": keyboard = "kbd-chooser/method=us" f.write(" kernel /install/vmlinuz\n") f.write(" append preseed/file=/cdrom/preseed/customiso.seed debian-installer/locale=en_US " + keyboard + " netcfg/choose_interface=auto keyboard-configuration/layoutcode=us priority=critical initrd=/install/initrd.gz --\n") f.close()