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.
44 lines
1.2 KiB
44 lines
1.2 KiB
#!/bin/sh |
|
|
|
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh |
|
|
|
for root in $(getargs rootfallback=); do |
|
case "$root" in |
|
block:LABEL=*|LABEL=*) |
|
root="${root#block:}" |
|
root="$(echo $root | sed 's,/,\\x2f,g')" |
|
root="/dev/disk/by-label/${root#LABEL=}" |
|
;; |
|
block:UUID=*|UUID=*) |
|
root="${root#block:}" |
|
root="${root#UUID=}" |
|
root="$(echo $root | tr "[:upper:]" "[:lower:]")" |
|
root="/dev/disk/by-uuid/${root#UUID=}" |
|
;; |
|
block:PARTUUID=*|PARTUUID=*) |
|
root="${root#block:}" |
|
root="${root#PARTUUID=}" |
|
root="$(echo $root | tr "[:upper:]" "[:lower:]")" |
|
root="/dev/disk/by-partuuid/${root}" |
|
;; |
|
block:PARTLABEL=*|PARTLABEL=*) |
|
root="${root#block:}" |
|
root="/dev/disk/by-partlabel/${root#PARTLABEL=}" |
|
;; |
|
esac |
|
|
|
if ! [ -b "$root" ]; then |
|
warn "Could not find rootfallback $root" |
|
continue |
|
fi |
|
|
|
if mount "$root" /sysroot; then |
|
info "Mounted rootfallback $root" |
|
exit 0 |
|
else |
|
warn "Failed to mount rootfallback $root" |
|
exit 1 |
|
fi |
|
done |
|
|
|
[ -e "$job" ] && rm -f "$job"
|
|
|