Takes the advantage of already symlinks created on /dev/disk/by-label/ by 60-persistent-storage.rules add by udev hook. Tested on: * Real machine as CD-ROM and USB key drive. * KVM as CD-ROM and DISK (for both modes, in combination with IDE and SCSI) * VirtualBox as IDE CD-ROM. IMPORTANT note: Since isohybrid is a hack, if more partitions are added to USB key drive, filesystem on these partitions MUST have LABEL, otherwise USB key will fail to boot. Anyway there is an option archisodevice=, to force and specific device where live-media reside. (Maybe isohybrid will change the hack method used in a future) More info at: http://mailman.archlinux.org/pipermail/arch-releng/2010-March/000890.html http://mailman.archlinux.org/pipermail/arch-releng/2010-March/000913.html Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- archiso/Makefile | 4 ---- archiso/hooks/archiso | 2 +- archiso/hooks/archiso_early | 8 -------- archiso/install/archiso | 6 ++++++ archiso/install/archiso_early | 9 --------- configs/syslinux-iso/mkinitcpio.conf | 2 +- 6 files changed, 8 insertions(+), 23 deletions(-) delete mode 100644 archiso/hooks/archiso_early delete mode 100644 archiso/install/archiso_early diff --git a/archiso/Makefile b/archiso/Makefile index eab4f66..a109547 100644 --- a/archiso/Makefile +++ b/archiso/Makefile @@ -7,9 +7,7 @@ install: all install -D -m 755 testiso $(DESTDIR)/usr/bin/testiso # hooks/install are needed by mkinitcpio install -D -m 644 hooks/archiso $(DESTDIR)/lib/initcpio/hooks/archiso - install -D -m 644 hooks/archiso_early $(DESTDIR)/lib/initcpio/hooks/archiso_early install -D -m 644 install/archiso $(DESTDIR)/lib/initcpio/install/archiso - install -D -m 644 install/archiso_early $(DESTDIR)/lib/initcpio/install/archiso_early # install docs and examples install -d -m 644 $(DESTDIR)/usr/share/archiso/ cp -r ../configs $(DESTDIR)/usr/share/archiso/configs @@ -19,8 +17,6 @@ uninstall: rm -f $(DESTDIR)/usr/sbin/mkarchiso rm -f $(DESTDIR)/usr/bin/testiso rm -f $(DESTDIR)/lib/initcpio/hooks/archiso - rm -f $(DESTDIR)/lib/initcpio/hooks/archiso_early rm -f $(DESTDIR)/lib/initcpio/install/archiso - rm -f $(DESTDIR)/lib/initcpio/install/archiso_early rm -rf $(DESTDIR)/usr/share/archiso/ rm -rf $(DESTDIR)/usr/share/doc/archiso/ diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index 592003b..e1ad81a 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -61,7 +61,7 @@ run_hook () { fi if [ "x${archisodevice}" = "x" ]; then - archisodevice="/dev/archiso" + archisodevice="/dev/disk/by-label/${archisolabel}" fi # set mount handler for archiso diff --git a/archiso/hooks/archiso_early b/archiso/hooks/archiso_early deleted file mode 100644 index 465e105..0000000 --- a/archiso/hooks/archiso_early +++ /dev/null @@ -1,8 +0,0 @@ -# vim: set ft=sh: -run_hook () -{ - if [ -n "${archisolabel}" ]; then - echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", IMPORT{program}=\"/sbin/blkid -o udev -p \$tempnode\"" > /lib/udev/rules.d/00-archiso-device.rules - echo "ENV{ID_FS_LABEL_ENC}==\"${archisolabel}\", SYMLINK+=\"archiso\"" >> /lib/udev/rules.d/00-archiso-device.rules - fi -} diff --git a/archiso/install/archiso b/archiso/install/archiso index d01ab25..ee51da7 100644 --- a/archiso/install/archiso +++ b/archiso/install/archiso @@ -12,7 +12,13 @@ install () add_dir /tmpfs add_dir /tmpfs.sqfs add_dir /bootmnt + add_device /dev/loop0 b 7 0 + + add_binary /lib/udev/cdrom_id + + add_file /lib/udev/rules.d/60-cdrom_id.rules + SCRIPT="archiso" } diff --git a/archiso/install/archiso_early b/archiso/install/archiso_early deleted file mode 100644 index 818fc7b..0000000 --- a/archiso/install/archiso_early +++ /dev/null @@ -1,9 +0,0 @@ -install () -{ - MODULES="" - BINARIES="" - FILES="" - SCRIPT="archiso_early" -} - -# vim:ft=sh:ts=4:sw=4:et: diff --git a/configs/syslinux-iso/mkinitcpio.conf b/configs/syslinux-iso/mkinitcpio.conf index 6445456..581385d 100644 --- a/configs/syslinux-iso/mkinitcpio.conf +++ b/configs/syslinux-iso/mkinitcpio.conf @@ -2,5 +2,5 @@ MODULES="" BINARIES="" FILES="" -HOOKS="base archiso_early udev archiso pata scsi sata usb fw pcmcia filesystems usbinput" +HOOKS="base udev archiso pata scsi sata usb fw pcmcia filesystems usbinput" COMPRESSION="lzma" -- 1.7.0.2