FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Infrastructure

 
 
LinkBack Thread Tools
 
Old 03-20-2012, 07:10 PM
Will Woods
 
Default fix nfsiso:...:/path/to/filename.iso (#804515)

If we're given the path to an iso, we need to split it up so we mount
the directory the iso is *in*, and then mount the iso.

Also, fix a harmless typo bug in find_runtime and clean up/clarify
anaconda_live_root_dir a bit.
---
dracut/anaconda-lib.sh | 22 +++++++++++++++-------
dracut/anaconda-netroot.sh | 11 +++++++++--
2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/dracut/anaconda-lib.sh b/dracut/anaconda-lib.sh
index 171071e..7f1a264 100755
--- a/dracut/anaconda-lib.sh
+++ b/dracut/anaconda-lib.sh
@@ -32,8 +32,9 @@ find_iso() {
}

find_runtime() {
- local ti_img="" dir="$1$2"
- [ -e $dir/.treeinfo ] && img=$(config_get stage2 mainimage < $dir/.treeinfo)
+ local ti_img="" dir="$1"
+ [ -e $dir/.treeinfo ] &&
+ ti_img=$(config_get stage2 mainimage < $dir/.treeinfo)
for f in $ti_img images/install.img LiveOS/squashfs.img; do
[ -e "$dir/$f" ] && echo "$dir/$f" && return
done
@@ -43,17 +44,24 @@ repodir="/run/install/source"
isodir="/run/install/isodir"
rulesfile="/etc/udev/rules.d/90-anaconda.rules"

+# try to find a usable runtime image from the repo mounted at $mnt.
+# if successful, move the mount(s) to $repodir/$isodir.
anaconda_live_root_dir() {
- local img="" iso="" dir="$1" path="$2"; shift 2
- img=$(find_runtime $repodir$path)
+ local img="" iso="" mnt="$1" path="$2"; shift 2
+ img=$(find_runtime $mnt/$path)
if [ -n "$img" ]; then
info "anaconda: found $img"
+ [ "$dir" = "$repodir" ] || mount --move $mnt $repodir
else
- iso=$(find_iso $repodir$path)
+ if [ "${path%.iso}" != "$path" ]; then
+ iso=$path
+ else
+ iso=$(find_iso $mnt/$path)
+ fi
[ -n "$iso" ] || { warn "no suitable images"; return 1; }
info "anaconda: found $iso"
- mount --move $repodir $isodir
- iso=${isodir}${iso#$repodir}
+ mount --move $mnt $isodir
+ iso=${isodir}/${iso#$mnt}
mount -o loop,ro $iso $repodir
img=$(find_runtime $repodir) || { warn "$iso has no suitable runtime"; }
fi
diff --git a/dracut/anaconda-netroot.sh b/dracut/anaconda-netroot.sh
index 7c474dd..6be34a7 100755
--- a/dracut/anaconda-netroot.sh
+++ b/dracut/anaconda-netroot.sh
@@ -25,8 +25,15 @@ case $repo in
. /lib/nfs-lib.sh
info "anaconda mounting NFS repo at $repo"
str_starts "$repo" "nfsiso:" && repo=nfs:${repo#nfsiso:}
- mount_nfs "$repo" "$repodir" "$netif" || warn "Couldn't mount $repo"
- anaconda_live_root_dir $repodir
+ if [ "${repo%.iso}" == "$repo" ]; then
+ mount_nfs "$repo" "$repodir" "$netif" || warn "Couldn't mount $repo"
+ anaconda_live_root_dir $repodir
+ else
+ iso="${repo##*/}"
+ mount_nfs "${repo%$iso}" "$repodir" "$netif" ||
+ warn "Couldn't mount $repo"
+ anaconda_live_root_dir $repodir $iso
+ fi
;;
http*|ftp*)
. /lib/url-lib.sh
--
1.7.7.6

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 07:36 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org