[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Adding preseeding and firmware to wheezy iso netinst



Hello all,

In case it has some interest, I now can boot the image on USB via EFI!

Here is my complete doc (wiki format):
__Prerequisites__ :
  * Some vars :
<code>
DEBIAN_ISO_VERSION='wheezy-DI-b4-amd64'
DEBIAN_DIR_VERSION='wheezy_di_beta4'
SHORT_NAME='Debian_7b4_Local'
LONG_NAME='Debian wheezy Local b4'
mkdir ~/mk_debian_inst
cd ~/mk_debian_inst
</code>
  * Installer download :
<code>
rm -v debian-wheezy-*-netinst.iso
wget http://cdimage.debian.org/cdimage/$DEBIAN_DIR_VERSION/amd64/iso-cd/debian-$DEBIAN_ISO_VERSION-netinst.iso
</code>
  * preseed download :
<code>
rm -v preseed.cfg
wget http://autoserver/d-i/wheezy/preseed.cfg
</code>
  * install bsdtar, xorriso and syslinux-common:
<code>
sudo aptitude install bsdtar xorriso syslinux-common
</code>

__Procedure__ :
  * Extract ISO :
<code>
sudo mkdir cd
sudo bsdtar -C cd -xf debian-$DEBIAN_ISO_VERSION-netinst.iso
</code>
    * Copy preseed in initrd :
<code>
sudo mkdir irmod
cd irmod
gzip -d < ../cd/install.amd/initrd.gz | \
    sudo cpio --extract --make-directories --no-absolute-filenames
sudo cp ../preseed.cfg preseed.cfg
sudo chown root:root preseed.cfg
sudo chmod o+w ../cd/install.amd/initrd.gz
find . | cpio -H newc --create | \
        gzip -9 > ../cd/install.amd/initrd.gz
sudo chmod o-w ../cd/install.amd/initrd.gz
cd ../
sudo rm -fr irmod/
</code>
  * AUtomatic install (BIOS only) :
<code>
sudo sed -i 's/^timeout 0$/timeout 20/' cd/isolinux/isolinux.cfg
</code>
  * Mount partition 1 (boot1) :
<code>
$ sudo parted debian-$DEBIAN_ISO_VERSION-netinst.iso unit B print
Model:  (file)
Disk /home/aadsi255/mk_debian_inst/debian-wheezy-DI-b4-amd64-netinst.iso:
232194048B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start       End         Size        Type     File system  Flags
 1      32768B      231735295B  231702528B  primary               boot, hidden
 2      231735296B  232194047B  458752B     primary

mkdir boot1
sudo mount -o loop,offset=231735296 debian-$DEBIAN_ISO_VERSION-netinst.iso boot1
</code>
  * New iso :
<code>

xorriso -as mkisofs -r \
  -checksum_algorithm_iso md5,sha1,sha256,sha512 \
  -V "$SHORT_NAME" -o debian-$DEBIAN_ISO_VERSION-netinst-local.iso \
  -J -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
  -partition_offset 16 -J -joliet-long -cache-inodes -b
isolinux/isolinux.bin -c isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot
--efi-boot boot/grub/efi.img \
  -append_partition 2 0x01 cd/boot/grub/efi.img boot1 cd

sudo umount boot1
rmdir boot1
sudo rm -rf cd
</code>
  * Copy or burn the image
<code>
dd if=debian-$DEBIAN_ISO_VERSION-netinst-local.iso of=/dev/sdz bs=1M && sync
</code>

Tada !

Some remarks and questions:
- EFI: How can I create boot1 partition myself?
- EFI: The expert mode is missing in EFI (/boot/grub/grub.cfg, what is
the source package?)
- EFI, d-i/partman-auto: Why are the partitions size of efi recipes
different [*]?
- d-i: How can I mark all questions as unseen (when preseeding
failed). I will file a bug
- d-i/partman-auto: Why does partman try to install on the installer
disk !? (probably get_auto_disks() from lib/auto-shared.sh, #607536)
- d-i/partman-auto: I also hit #297201: "no way to leave free space on a disk"



Regards
--
Mathieu

[*]: d-i/partman-auto
--- recipes/multi    2013-01-16 13:42:22.096014823 +0100
+++ recipes-amd64-efi/multi    2013-01-16 13:42:22.092014727 +0100
/:
-300 800 350 $default_filesystem
+100 800 500 $default_filesystem

/usr:
-500 3000 9000 $default_filesystem
+700 7000 7000 $default_filesystem

/var:
-300 1500 3000 $default_filesystem
+60 1500 3000 $default_filesystem


Reply to: