2013-01-23 17:28:19 +00:00
|
|
|
#!/bin/sh
|
|
|
|
# anaconda-diskroot: find our root image on the given disk device
|
|
|
|
# usage: anaconda-diskroot DEVICE [PATH]
|
|
|
|
|
|
|
|
. /lib/anaconda-lib.sh
|
|
|
|
command -v getargbool >/dev/null || . /lib/dracut-lib.sh
|
|
|
|
|
|
|
|
# Run checkisomd5 on a device
|
|
|
|
run_checkisomd5() {
|
|
|
|
livedev=$1
|
|
|
|
if getargbool 0 rd.live.check -d check; then
|
|
|
|
[ -b $livedev ] && fs=$(blkid -s TYPE -o value $livedev)
|
|
|
|
if [ "$fs" = "iso9660" -o "$fs" = "udf" ]; then
|
|
|
|
[ -x /bin/plymouth ] && /bin/plymouth --hide-splash
|
|
|
|
if [ -n "$DRACUT_SYSTEMD" ]; then
|
|
|
|
p=$(str_replace "$livedev" "-" '\x2d')
|
|
|
|
systemctl start checkisomd5@${p}.service
|
2014-04-07 12:38:09 +00:00
|
|
|
status=$(systemctl -p ExecMainStatus show checkisomd5@${p}.service)
|
|
|
|
splitsep "=" "$status" ignore rc
|
2013-01-23 17:28:19 +00:00
|
|
|
else
|
|
|
|
checkisomd5 --verbose $livedev
|
2014-04-07 12:38:09 +00:00
|
|
|
rc=$?
|
2013-01-23 17:28:19 +00:00
|
|
|
fi
|
2014-04-07 12:38:09 +00:00
|
|
|
if [ "$rc" == "1" ]; then
|
2013-01-23 17:28:19 +00:00
|
|
|
die "CD check failed!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
[ -x /bin/plymouth ] && /bin/plymouth --show-splash
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
dev="$1"
|
|
|
|
path="$2" # optional, could be empty
|
|
|
|
|
|
|
|
[ -e "/dev/root" ] && exit 1 # we already have a root device!
|
|
|
|
|
2015-09-18 01:56:09 +00:00
|
|
|
modprobe -q loop
|
|
|
|
|
2013-01-23 17:28:19 +00:00
|
|
|
info "anaconda using disk root at $dev"
|
|
|
|
mount $dev $repodir || warn "Couldn't mount $dev"
|
|
|
|
anaconda_live_root_dir $repodir $path
|
|
|
|
run_checkisomd5 $dev
|