Am 04.02.2010 23:00, schrieb Gerardo Exequiel Pozzi:
Some basic changes to make archiso hooks work with the next mkinitcpio 0.6 Tested under KVM, a ""2010.02"" and works fine with it.
NOTE: current mkinitcpio-0.5.99.2-2 does not include "losetup", maybe will be included in next version, see #[1]. For now must be added manually.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- archiso/hooks/archiso | 22 ++++++++++++---------- archiso/hooks/archiso-early | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index bed8f7a..5b102d7 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -9,7 +9,7 @@ _mnt_bind() # args: /path/to/image_file _mnt_squashfs() { - /bin/modprobe -q loop >/dev/null 2>&1 + /sbin/modprobe -q loop >/dev/null 2>&1
img="${1}" base_img="${img##*/}"; @@ -27,7 +27,7 @@ _mnt_squashfs() while [ ! -e "/dev/loop${LOOP_NUM}" ]; do sleep 1 done - if ! /bin/losetup "/dev/loop${LOOP_NUM}" ${img}; then + if ! /sbin/losetup "/dev/loop${LOOP_NUM}" ${img}; then echo "ERROR: Cannot mount loop device /dev/loop${LOOP_NUM}" break fi
My local config already has losetup, it's just not commited yet.
@@ -70,7 +70,7 @@ run_hook () PS1="ramfs$ " /bin/sh -i done
- eval $(fstype < /dev/archiso 2>/dev/null) + FSTYPE=$(blkid -o value -s TYPE /dev/archiso 2>/dev/null) if [ -n "${FSTYPE}" ]; then if [ "${FSTYPE}" = "unknown" ]; then # First try mounting then with vfat, maybe someone put the image on
We can revert Gerhard's last commit now, blkid will detect vfat just fine, while klibc/fstype didn't.
diff --git a/archiso/hooks/archiso-early b/archiso/hooks/archiso-early index d57b73b..edd554b 100644 --- a/archiso/hooks/archiso-early +++ b/archiso/hooks/archiso-early @@ -2,7 +2,7 @@ run_hook () { if [ -n "${archisolabel}" ]; then - echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", IMPORT{program}=\"vol_id --export \$tempnode\"" > /lib/udev/rules.d/00-archiso-device.rules + echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", IMPORT{program}=\"/sbin/blkid -o udev \$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 }
I was thinking about dropping the special udev rule and using blkid to find the right device, it has an option for that. I also thought about a failsafe mechanism in case the label is incorrect. For now, we can apply this patch as it is, but we should base it on archiso with commit fd93e7c9bd614a026f1d661f359012a4c1e080d7 reverted, as per the comment above.