[arch-releng] [PATCH] Update archiso hooks to work with next mkinitcpio 0.6

Thomas Bächler thomas at archlinux.org
Thu Feb 4 18:28:55 EST 2010


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 at 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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/arch-releng/attachments/20100205/d4691092/attachment.bin>


More information about the arch-releng mailing list