diff options
-rw-r--r-- | archiso/hooks/archiso | 5 | ||||
-rwxr-xr-x | archiso/mkarchiso | 20 | ||||
-rw-r--r-- | configs/install-iso/Makefile | 12 | ||||
-rw-r--r-- | configs/install-iso/boot-files/grub/menu.lst | 6 |
4 files changed, 26 insertions, 17 deletions
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index 7168aff..1eb0832 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -32,9 +32,8 @@ run_hook () # external drives may need to settle msg ":: Waiting for usb devices to settle..." - /sbin/udevtrigger --subsystem-match=usb - /sbin/udevsettle - sleep 5 + /sbin/udevadm trigger --subsystem-match=usb + /sbin/udevadm settle msg ":: Scanning for boot device..." diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 8d98f51..2e92fb2 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -182,29 +182,31 @@ command_image () { if [ "$PKGLIST" = "grub" -o "$PKGLIST" = "grub-gfx" ]; then #test for either (eww, gross) tst=0 - pacman -Qi grub 2>&1 >/dev/null + pacman -Qi grub >/dev/null 2>&1 tst=$(($tst + $?)) - pacman -Qi grub-gfx 2>&1 >/dev/null + pacman -Qi grub-gfx >/dev/null 2>&1 tst=$(($tst + $?)) if [ $tst -ge 2 ]; then echo "grub or grub-gfx not found on host system. Cannot install!" exit 1 fi - mkdir -p "${work_dir}/boot/grub/" - cp -r /usr/lib/grub/i386-pc/* "${work_dir}/boot/grub" - #TODO remove other grub cruft? + if [ ! -e "${work_dir}/boot/grub/stage2_eltorito" ]; then + echo "error: grub stage files not found in '${work_dir}/boot/grub" + exit 1 + fi bootflags="-b boot/grub/stage2_eltorito" elif [ "$PKGLIST" = "isolinux" ]; then - if ! pacman -Qi $PKGLIST 2>&1 >/dev/null; then + if ! pacman -Qi $PKGLIST >/dev/null 2>&1; then echo "$PKGLIST not found on host system. Cannot install!" exit 1 fi - mkdir -p "${work_dir}/boot/isolinux" - cp /usr/lib/isolinux/* "${work_dir}/boot/isolinux" - #TODO remove other isolinux cruft? + if [ ! -e "${work_dir}/boot/isolinux/isolinux.bin" ]; then + echo "error: isolinux bin file not found in '${work_dir}/boot/isolinux" + exit 1 + fi bootflags="-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat" else diff --git a/configs/install-iso/Makefile b/configs/install-iso/Makefile index a04b43f..30247a7 100644 --- a/configs/install-iso/Makefile +++ b/configs/install-iso/Makefile @@ -26,15 +26,19 @@ ftp-iso: root-image boot-files .PHONY: boot-files boot-files: - mkdir -p image-dir/boot/ + mkdir -p image-dir/boot/grub/ + #ick! this section needs reworking + cp -r work/usr/lib/grub/i386-pc/* image-dir/boot/grub + cp -r work/boot/* image-dir/boot/ cp -r boot-files/* image-dir/boot/ + #end ick mkinitcpio -c initcpio-ide -b work/ -k $(kver) -g image-dir/boot/archiso-ide.img mkinitcpio -c initcpio-pata -b work/ -k $(kver) -g image-dir/boot/archiso-pata.img root-image: - chmod 0440 overlay/etc/sudoers mkarchiso -v -p "`cat packages.list-$(ARCH)`" install work cp -r overlay/* work + chmod 0440 work/etc/sudoers mkdir image-dir/ mkarchiso -v squash work image-dir/root-image.sqfs @@ -42,8 +46,8 @@ root-image: .PHONY: core-pkgs core-pkgs: wget --mirror -P core-pkgs -nH --cut-dirs=3 ftp://ftp.archlinux.org/core/os/$(ARCH) - mkdir image/ + mkdir image-dir/ mkarchiso -v squash core-pkgs image-dir/core-pkgs.sqfs clean: - rm -rf work image + rm -rf work image-dir $(FTPname).img $(FTPname).iso $(COREname).img $(COREname).iso diff --git a/configs/install-iso/boot-files/grub/menu.lst b/configs/install-iso/boot-files/grub/menu.lst index 6755d09..e081aa8 100644 --- a/configs/install-iso/boot-files/grub/menu.lst +++ b/configs/install-iso/boot-files/grub/menu.lst @@ -5,7 +5,11 @@ splashimage=/boot/splash.xpm.gz title Boot ArchLinux LiveCD kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 ramdisk_size=75% -initrd /boot/archiso.img +initrd /boot/archiso-ide.img + +title Boot ArchLinux LiveCD [Legacy PATA] +kernel /boot/vmlinuz26 lang=en locale=en_US.UTF-8 ramdisk_size=75% +initrd /boot/archiso-pata.img title Tools... configfile /boot/grub/tools.lst |