mirror of
https://github.com/dracutdevs/dracut.git
synced 2024-10-27 09:25:21 +03:00
f17c5fa573
In the kernel comments PARTUUID is shown using uppercase A-F: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c?id=HEAD#n183 However, dracut tries to use the value of PARTUUID directly in /dev/disks/by-partuuid/ which expects the hex to be lowercase. This will cause root to never be found, oops! Fix dracut so it can, like the Kernel, accept either casing. Untested but I added a hack on my local system that was similar.
33 lines
1.0 KiB
Bash
Executable File
33 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
|
|
case "$root" in
|
|
block:LABEL=*|LABEL=*)
|
|
root="${root#block:}"
|
|
root="$(echo $root | sed 's,/,\\x2f,g')"
|
|
root="block:/dev/disk/by-label/${root#LABEL=}"
|
|
rootok=1 ;;
|
|
block:UUID=*|UUID=*)
|
|
root="${root#block:}"
|
|
root="${root#UUID=}"
|
|
root="$(echo $root | tr "[:upper:]" "[:lower:]")"
|
|
root="block:/dev/disk/by-uuid/${root#UUID=}"
|
|
rootok=1 ;;
|
|
block:PARTUUID=*|PARTUUID=*)
|
|
root="${root#block:}"
|
|
root="${root#PARTUUID=}"
|
|
root="$(echo $root | tr "[:upper:]" "[:lower:]")"
|
|
root="block:/dev/disk/by-partuuid/${root}"
|
|
rootok=1 ;;
|
|
block:PARTLABEL=*|PARTLABEL=*)
|
|
root="${root#block:}"
|
|
root="block:/dev/disk/by-partlabel/${root#PARTLABEL=}"
|
|
rootok=1 ;;
|
|
/dev/*)
|
|
root="block:${root}"
|
|
rootok=1 ;;
|
|
esac
|
|
|
|
[ "${root%%:*}" = "block" ] && wait_for_dev "${root#block:}"
|