diff --git a/config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg b/config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg.in similarity index 97% rename from config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg rename to config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg.in index 7842c99..5d04e74 100644 --- a/config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg +++ b/config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg.in @@ -26,7 +26,7 @@ d-i pkgsel/install-language-support boolean false d-i pkgsel/update-policy select none d-i partman/default_filesystem string ext4 -d-i partman-auto/disk string /dev/sda +d-i partman-auto/disk string %TARGET_DISK% d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true @@ -77,7 +77,7 @@ d-i hw-detect/load_firmware boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true -d-i grub-installer/choose_bootdev string /dev/sda +d-i grub-installer/choose_bootdev string %TARGET_DISK% d-i finish-install/reboot_in_progress note #grub-pc ucf/changeprompt string install the package maintainer's version diff --git a/config/includes.chroot.oem/var/lib/pureos-oem/install-pureos-oem.py b/config/includes.chroot.oem/var/lib/pureos-oem/install-pureos-oem.py index 2465e01..76e0c34 100755 --- a/config/includes.chroot.oem/var/lib/pureos-oem/install-pureos-oem.py +++ b/config/includes.chroot.oem/var/lib/pureos-oem/install-pureos-oem.py @@ -113,6 +113,22 @@ class LibremDiskDevice(object): self.wipe_dev(self.path) +def configure_di_preseed(template_fname, dest_fname, target_disk): + """ + Replace variables in a debian-installer preseed file and safe the result + under a new name. + """ + + contents = None + with open(template_fname, 'r') as f: + contents = f.read() + + contents = contents.replace('%TARGET_DISK%', target_disk) + + with open(dest_fname, 'w') as f: + f.write(contents) + + def pureos_oem_setup(): OEM_DATA_PATH = '/var/lib/pureos-oem/' logger = getLogger(__name__) @@ -157,7 +173,11 @@ def pureos_oem_setup(): shutil.copy(os.path.join(OEM_DATA_PATH, 'pureos.iso'), target) shutil.copy(os.path.join(OEM_DATA_PATH, 'initrd.gz'), target) shutil.copy(os.path.join(OEM_DATA_PATH, 'vmlinuz'), target) - shutil.copy(os.path.join(OEM_DATA_PATH, 'di-preseed.cfg'), target) + + # configure & install preseed + configure_di_preseed(os.path.join(OEM_DATA_PATH, 'di-preseed.cfg.in'), + os.path.join(target, 'di-preseed.cfg'), + target_disk=disk_path) # set up GRUB logger.info('Creating GRUB configuration...')