You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
881 B
41 lines
881 B
#!/bin/bash |
|
# livenetroot - fetch a live image from the network and run it |
|
# |
|
# TODO: |
|
# * HTTPS: arg to use --no-check-certificate with https (boo) |
|
# args for --certificate, --ca-certificate |
|
# * NFS support? |
|
|
|
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh |
|
[ -f /tmp/root.info ] && . /tmp/root.info |
|
|
|
PATH=/usr/sbin:/usr/bin:/sbin:/bin |
|
|
|
# args get passed from 40network/netroot |
|
netroot=$2 |
|
|
|
liveurl=${netroot#livenet:} |
|
|
|
if [ ${liveurl##*.} == "iso" ]; then |
|
imgfile="/run/live.iso" |
|
else |
|
imgfile="/run/rootfs.img" |
|
fi |
|
|
|
|
|
case "$liveurl" in |
|
http://*|https://*|ftp://*) |
|
wget -O $imgfile "$liveurl" |
|
;; |
|
*) die "don't know how to handle URL: $liveurl" ;; |
|
esac |
|
[ $? == 0 ] || die "failed to download live image" |
|
|
|
|
|
if [ ${imgfile##*.} == "iso" ]; then |
|
root=$(losetup -f) |
|
losetup $root $imgfile |
|
else |
|
root=$imgfile |
|
fi |
|
exec /sbin/dmsquash-live-root $root
|
|
|