Browse Source
now you can write grub entries like set isofile="/Fedora-live.iso" loopback loop $isofile linux loop)/isolinux/vmlinuz iso-scan/filename=$isofile root=live:CDLABEL=Fedora-... initrd (loop)/isolinux/initrd0.imgmaster

3 changed files with 41 additions and 0 deletions
@ -0,0 +1,25 @@ |
|||||||
|
#!/bin/sh |
||||||
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
||||||
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
||||||
|
|
||||||
|
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh |
||||||
|
|
||||||
|
PATH=/usr/sbin:/usr/bin:/sbin:/bin |
||||||
|
|
||||||
|
isofile=$1 |
||||||
|
|
||||||
|
[ -z "$isofile" ] && exit 1 |
||||||
|
|
||||||
|
mkdir -p "/run/initramfs/isoscan" |
||||||
|
for dev in /dev/disk/by-uuid/*; do |
||||||
|
mount -t auto -o ro "$dev" "/run/initramfs/isoscan" || continue |
||||||
|
if [ -f "/run/initramfs/isoscan/$isofile" ]; then |
||||||
|
losetup -f "/run/initramfs/isoscan/$isofile" |
||||||
|
exit 0 |
||||||
|
else |
||||||
|
umount "/run/initramfs/isoscan" |
||||||
|
fi |
||||||
|
done |
||||||
|
|
||||||
|
rmdir "/run/initramfs/isoscan" |
||||||
|
exit 1 |
@ -0,0 +1,14 @@ |
|||||||
|
#!/bin/sh |
||||||
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
||||||
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
||||||
|
# live images are specified with |
||||||
|
# root=live:backingdev |
||||||
|
|
||||||
|
isofile=$(getarg iso-scan/filename) |
||||||
|
|
||||||
|
if [ -n "$isofile" ]; then |
||||||
|
{ |
||||||
|
printf 'KERNEL=="loop0", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/iso-scan %s"\n' \ |
||||||
|
"'${isofile}'" |
||||||
|
} >> /etc/udev/rules.d/99-isofile-mount.rules |
||||||
|
fi |
Loading…
Reference in new issue