diff --git a/mkinitrd b/mkinitrd index 1940f39..c23d9b1 100755 --- a/mkinitrd +++ b/mkinitrd @@ -483,6 +483,7 @@ finddevnoinsys() { echo "$majmin" | cmp -s $device && echo $device ; done) if [ -n "$dev" ]; then dev=${dev%%/dev} + dev=${dev%%/} echo "$dev" return 0 fi @@ -763,6 +764,7 @@ find_base_dm_mods() } handlelvordev() { + [ -n "$1" ] || return 0 local vg=$(lvshow $1) if [ -n "$vg" ]; then vg=`echo $vg` # strip whitespace @@ -1130,9 +1132,11 @@ if [ "x$PROBE" == "xyes" ]; then physdev="" if [ "$rootfs" == "nfs" -a "x$net_list" == "x" ]; then handlenfs $rootdev - # check if it's root by label - elif [ "$rootdev" != "${rootdev##LABEL=}" -o \ - "$rootdev" != "${rootdev##UUID=}" ]; then + else + # check if it's root by label + if [[ "$rootdev" =~ ^(UUID=|LABEL=) ]]; then + rootdev=$(resolve_device_name "$rootdev") + fi rootopts=$(echo $rootopts | sed -e 's/^r[ow],//' -e 's/,_netdev//' -e 's/_netdev//' -e 's/,r[ow],$//' -e 's/,r[ow],/,/' -e 's/^r[ow]$/defaults/' -e 's/$/,ro/') physdev=$(findblockdevinsys "$rootdev") physdev=${physdev##*/dev/} @@ -1141,8 +1145,6 @@ if [ "x$PROBE" == "xyes" ]; then else physdev="$rootdev" fi - else - rootopts=$(echo $rootopts | sed -e 's/^r[ow],//' -e 's/,_netdev//' -e 's/_netdev//' -e 's/,r[ow],$//' -e 's/,r[ow],/,/' -e 's/^r[ow]$/defaults/' -e 's/$/,ro/') fi if [ "$rootfs" != "nfs" ]; then if [ -n "$physdev" -a "$physdev" != "$rootdev" ]; then @@ -1153,17 +1155,19 @@ if [ "x$PROBE" == "xyes" ]; then # find the first swap dev which would get used for swsusp swsuspdev=$(awk '/^[ \t]*[^#]/ { if ($3 == "swap") { print $1; exit }}' $fstab) - if [ "$swsuspdev" != "${swsuspdev##LABEL=}" -o \ - "$swsuspdev" != "${swsuspdev##UUID=}" ]; then - suspdev=$(findblockdevinsys "$swsuspdev") - suspdev=${suspdev##*/dev/} - if [ -n "$suspdev" ]; then - swsuspdev="$suspdev" - fi - unset suspdev + if [[ "$swsuspdev" =~ ^(UUID=|LABEL=) ]]; then + swsuspdev=$(resolve_device_name "$swsuspdev") fi - handlelvordev "$swsuspdev" + suspdev=$(findblockdevinsys "$swsuspdev") + suspdev=${suspdev##*/dev/} + if [ -n "$suspdev" ]; then + swsuspdev="$suspdev" + fi + unset suspdev + if [ -n "$swsuspdev" ]; then + handlelvordev "$swsuspdev" + fi fi if [ -n "$forcescsi" -o -z "$noscsi" -a "x$PROBE" == "xyes" ]; then