assemble_image.sh 1.57 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
#!/bin/bash

set -x

image_size="3G"
iso_file="ubuntu-18.04.1-desktop-amd64.iso"

# mtools, ddrescure, fdisk, grub, 7z

rm -rf part_files
mkdir -p part_files
git -C part_files clone https://git.fsmpi.rwth-aachen.de/osak/lipstick.git .
#rsync -av /usr/lib/grub/x86_64-efi part_files/grub
#mkdir -p part_files/efi/ubuntu
#rsync -av /usr/lib/grub/x86_64-efi part_files/efi/ubuntu
rsync -av /usr/lib/grub/i386-efi part_files/grub
rsync -av /usr/lib/grub/i386-pc part_files/grub
rsync -av /usr/share/grub/themes part_files/grub
mkdir -p part_files/grub/fonts/
rsync -av /usr/share/grub/unicode.pf2 part_files/grub/fonts/

7z x "$iso_file" -opart_files EFI/
7z x "$iso_file" -opart_files boot/grub/x86_64-efi

mv part_files/grub/* part_files/boot/grub/
rm -rf part_files/grub

#wget -O part_files/gparted-live-i686.iso https://sourceforge.net/projects/gparted/files/gparted-live-stable/0.28.1-1/gparted-live-i686.iso
wget -O part_files/gparted-live-i686.iso https://sourceforge.net/projects/gparted/files/gparted-live-stable/0.28.1-1/gparted-live-x86_64.iso
ln "$iso_file" part_files/

rm part.img
truncate -s "$image_size" part.img
mkfs.vfat -n "LIPSTICK" "part.img"
MTOOLS_SKIP_CHECK=1 mcopy -i part.img -b -s -v part_files/* ::
grub-mkimage --prefix "(hd0,msdos1)/boot/grub" --output "grub.i386-pc.img" --format "i386-pc" part_msdos fat ext2 biosdisk
dd if=/usr/lib/grub/i386-pc/boot.img of="output.img" bs=446 count=1
dd if="grub.i386-pc.img" of="output.img" bs=512 seek=1
ddrescue --output-position=2048s --sparse "part.img" "output.img"
printf "label: dos\nunit: sectors\n2048,+,b,*\n" | sfdisk "output.img"