/
usr
/
libexec
/
linux-boot-probes
/
mounted
/
/usr/libexec/linux-boot-probes/mounted
mkdir
upload
Name
Size
Mode
Actions
40grub
2147
0755
edit
dl
rm
40grub2
2916
0755
edit
dl
rm
50lilo
2331
0755
edit
dl
rm
90fallback
2617
0755
edit
dl
rm
Edit:
/usr/libexec/linux-boot-probes/mounted/90fallback
(2617B)
#!/bin/sh # Fallback in case nothing else works. Look for vmlinu[xz] file in root and # /boot, see if there is a matching initrd, and wing it. . /usr/share/os-prober/common.sh set -e partition="$1" bootpart="$2" mpoint="$3" type="$4" mappedpartition=$(mapdevfs "$partition" 2>/dev/null) || mappedpartition="$partition" kernparams="root=$mappedpartition" # In case there is $mpoint/etc/default/grub, source it and take into account # relevant command line variables. This function must be run inside a subshell # otherwise grub default variable may be overriden get_cmdline_linux_params() { local mpoint_sysconfdir="$mpoint/etc" if test -f ${mpoint_sysconfdir}/default/grub ; then unset GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT . ${mpoint_sysconfdir}/default/grub echo "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" fi } kernparams="$(echo $kernparams $(get_cmdline_linux_params) | sed 's/[[:space:]]\+$//')" exitcode=1 for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \ "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*" "/kernel-*" "/boot/kernel-*"; do if echo "$kernpat" | grep -q boot/; then kernbootpart="$bootpart" else kernbootpart="$partition" fi for kernfile in $(eval ls "$mpoint$kernpat" 2>/dev/null); do kernbasefile=$(echo "$kernfile" | sed "s!^$mpoint!!") if [ -f "$kernfile" ] && [ ! -L "$kernfile" ]; then initrdname=$(echo "$kernfile" | sed "s/vmlinu[zx]/initrd\*/") # Yellow Dog Linux appends .img to it. initrdname1="${initrdname}.img" # Arch Linux names its initrds weirdly. We take # some care here to avoid false positives on other # systems, since kernel.img could conceivably be a # kernel itself. initrdname2=$(echo "$kernfile" | sed -n 's/vmlinu[zx]\([0-9][0-9]*\)/kernel\1/p' | sed 's/$/.img/') # Dracut initramfses are named differently again. initrdname3=$(echo "$kernfile" | sed "s/vmlinu[zx]/initramfs\*/" | sed 's/$/.img/') # And Gentoo's also initrdname4=$(echo "$kernfile" | sed "s/kernel\|vmlinu[zx]/initramfs\*/") foundinitrd=0 for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do if [ "$initrd" != "$kernfile" ] && [ -f "$initrd" ] && [ ! -L "$initrd" ]; then initrd=$(echo "$initrd" | sed "s!^$mpoint!!") result "$partition:$kernbootpart::$kernbasefile:$initrd:$kernparams" exitcode=0 foundinitrd=1 fi done if [ "$foundinitrd" = 0 ]; then result "$partition:$kernbootpart::$kernbasefile::root=$mappedpartition" exitcode=0 fi fi done done exit "$exitcode"
Save
cmd:
run