fix 10_archlinux to reduce issues with entries
This commit is contained in:
parent
d8bcb73692
commit
beab1213c5
49
10_archlinux
49
10_archlinux
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
##
|
##
|
||||||
## grub-mkconfig helper script specific to Arch Linux
|
## grub-mkconfig helper script specific to Arch Linux
|
||||||
## Contributed by "Keshav Padram Amburay" <the ddoott ridikulus ddoott rat aatt geemmayil ddoott ccoomm>
|
## Contributed by "Keshav Amburay" <the ddoott ridikulus ddoott rat aatt geemmayil ddoott ccoomm>
|
||||||
|
## Updated on 08 February 2014
|
||||||
##
|
##
|
||||||
## Script based on do_grub_config() function in Arch Linux Archboot ISO Installer/Setup script
|
## Script based on do_grub_config() function in Arch Linux Archboot ISO Installer/Setup script
|
||||||
## Some parts taken from /etc/grub.d/10_linux script shipped by GRUB(2) upstream
|
## Some parts taken from /etc/grub.d/10_linux script shipped by GRUB(2) upstream
|
||||||
@ -64,20 +65,29 @@ CLASS="--class arch-linux --class arch --class gnu-linux --class gnu --class os"
|
|||||||
[[ "${grub_file}" != "" ]] && _FUNC_GRUB_FILE_PRESENT
|
[[ "${grub_file}" != "" ]] && _FUNC_GRUB_FILE_PRESENT
|
||||||
|
|
||||||
BOOT_PART_FS_UUID="$(${grub_probe} --target="fs_uuid" "/boot" 2>/dev/null)"
|
BOOT_PART_FS_UUID="$(${grub_probe} --target="fs_uuid" "/boot" 2>/dev/null)"
|
||||||
BOOT_PART_HINTS_STRING="$(${grub_probe} --target="hints_string" "/boot" 2>/dev/null)"
|
BOOT_PART_HINTS_STRING="$(${grub_probe} --target="hints_string" "/boot" 2>/dev/null || true)"
|
||||||
BOOT_PART_FS="$(${grub_probe} --target="fs" "/boot" 2>/dev/null)"
|
BOOT_PART_FS="$(${grub_probe} --target="fs" "/boot" 2>/dev/null)"
|
||||||
|
|
||||||
ROOT_PART_FS_UUID="$(${grub_probe} --target="fs_uuid" "/" 2>/dev/null)"
|
ROOT_PART_GRUB_DEVICE="$(${grub_probe} --target=device / || true)"
|
||||||
ROOT_PART_HINTS_STRING="$(${grub_probe} --target="hints_string" "/" 2>/dev/null)"
|
ROOT_PART_FS="$(${grub_probe} --device ${ROOT_PART_GRUB_DEVICE} --target=fs 2> /dev/null || echo "unknown")"
|
||||||
ROOT_PART_FS="$(${grub_probe} --target="fs" "/" 2>/dev/null)"
|
|
||||||
|
|
||||||
if [[ "${ROOT_PART_FS_UUID}" == "${BOOT_PART_FS_UUID}" ]]; then
|
|
||||||
SUBDIR="/boot"
|
|
||||||
else
|
|
||||||
SUBDIR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${GRUB_LINUX_ROOT_DEVICE}" == "" ]]; then
|
if [[ "${GRUB_LINUX_ROOT_DEVICE}" == "" ]]; then
|
||||||
|
|
||||||
|
case "${ROOT_PART_FS}" in
|
||||||
|
btrfs)
|
||||||
|
rootsubvol="$(make_system_path_relative_to_its_root /)"
|
||||||
|
rootsubvol="${rootsubvol#/}"
|
||||||
|
if [[ "${rootsubvol}" != "" ]]; then
|
||||||
|
GRUB_LINUX_ROOT_DEVICE="subvol=${rootsubvol}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
zfs)
|
||||||
|
rpool="$(${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true)"
|
||||||
|
bootfs="$(make_system_path_relative_to_its_root / | sed -e "s,@$,,")"
|
||||||
|
GRUB_LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [[ "${GRUB_DEVICE_UUID}" == "" ]] || \
|
if [[ "${GRUB_DEVICE_UUID}" == "" ]] || \
|
||||||
[[ "${GRUB_DISABLE_LINUX_UUID}" == "true" ]] || \
|
[[ "${GRUB_DISABLE_LINUX_UUID}" == "true" ]] || \
|
||||||
[[ ! -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ]] || \
|
[[ ! -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ]] || \
|
||||||
@ -94,6 +104,10 @@ for _KERNEL_ in ${list} ; do
|
|||||||
|
|
||||||
echo "Found linux image: ${_KERNEL_}" >&2
|
echo "Found linux image: ${_KERNEL_}" >&2
|
||||||
|
|
||||||
|
basename="$(basename "${_KERNEL_}")"
|
||||||
|
dirname="$(dirname "${_KERNEL_}")"
|
||||||
|
REAL_DIR="$(make_system_path_relative_to_its_root "${dirname}")"
|
||||||
|
|
||||||
_KERNEL_FILE_="$(echo ${_KERNEL_} | sed 's,/boot/,,g')"
|
_KERNEL_FILE_="$(echo ${_KERNEL_} | sed 's,/boot/,,g')"
|
||||||
_KERNEL_PKG_="pkg-$(echo ${_KERNEL_FILE_} | sed 's,vmlinuz-,,g')"
|
_KERNEL_PKG_="pkg-$(echo ${_KERNEL_FILE_} | sed 's,vmlinuz-,,g')"
|
||||||
|
|
||||||
@ -106,6 +120,7 @@ for _KERNEL_ in ${list} ; do
|
|||||||
cat << EOF
|
cat << EOF
|
||||||
|
|
||||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel" ${CLASS} {
|
menuentry "Arch Linux ${_KERNEL_PKG_} kernel" ${CLASS} {
|
||||||
|
$(save_default_entry)
|
||||||
if [ x\$feature_all_video_module = xy ]; then
|
if [ x\$feature_all_video_module = xy ]; then
|
||||||
insmod all_video
|
insmod all_video
|
||||||
fi
|
fi
|
||||||
@ -117,9 +132,9 @@ menuentry "Arch Linux ${_KERNEL_PKG_} kernel" ${CLASS} {
|
|||||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||||
fi
|
fi
|
||||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||||
linux ${SUBDIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel initramfs ...'
|
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel initramfs ...'
|
||||||
initrd ${SUBDIR}/${_INITRAMFS_}
|
initrd ${REAL_DIR}/${_INITRAMFS_}
|
||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@ -134,6 +149,7 @@ EOF
|
|||||||
cat << EOF
|
cat << EOF
|
||||||
|
|
||||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (fallback initramfs)" ${CLASS} {
|
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (fallback initramfs)" ${CLASS} {
|
||||||
|
$(save_default_entry)
|
||||||
if [ x\$feature_all_video_module = xy ]; then
|
if [ x\$feature_all_video_module = xy ]; then
|
||||||
insmod all_video
|
insmod all_video
|
||||||
fi
|
fi
|
||||||
@ -145,9 +161,9 @@ menuentry "Arch Linux ${_KERNEL_PKG_} kernel (fallback initramfs)" ${CLASS} {
|
|||||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||||
fi
|
fi
|
||||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||||
linux ${SUBDIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel fallback initramfs ...'
|
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel fallback initramfs ...'
|
||||||
initrd ${SUBDIR}/${_INITRAMFS_FALLBACK_}
|
initrd ${REAL_DIR}/${_INITRAMFS_FALLBACK_}
|
||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
@ -157,6 +173,7 @@ EOF
|
|||||||
cat << EOF
|
cat << EOF
|
||||||
|
|
||||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (no initramfs)" ${CLASS} {
|
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (no initramfs)" ${CLASS} {
|
||||||
|
$(save_default_entry)
|
||||||
if [ x\$feature_all_video_module = xy ]; then
|
if [ x\$feature_all_video_module = xy ]; then
|
||||||
insmod all_video
|
insmod all_video
|
||||||
fi
|
fi
|
||||||
@ -168,7 +185,7 @@ menuentry "Arch Linux ${_KERNEL_PKG_} kernel (no initramfs)" ${CLASS} {
|
|||||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||||
fi
|
fi
|
||||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||||
linux ${SUBDIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||||
}
|
}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
11
PKGBUILD
11
PKGBUILD
@ -13,7 +13,7 @@ _UNIFONT_VER="6.3.20131217"
|
|||||||
pkgname="grub"
|
pkgname="grub"
|
||||||
pkgdesc="GNU GRand Unified Bootloader (2)"
|
pkgdesc="GNU GRand Unified Bootloader (2)"
|
||||||
pkgver=2.02.beta2
|
pkgver=2.02.beta2
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
epoch="1"
|
epoch="1"
|
||||||
url="https://www.gnu.org/software/grub/"
|
url="https://www.gnu.org/software/grub/"
|
||||||
arch=('x86_64' 'i686')
|
arch=('x86_64' 'i686')
|
||||||
@ -272,3 +272,12 @@ package() {
|
|||||||
_package_grub-common_and_bios
|
_package_grub-common_and_bios
|
||||||
|
|
||||||
}
|
}
|
||||||
|
md5sums=('SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'728b7439ac733a7c0d56049adec364c7'
|
||||||
|
'SKIP'
|
||||||
|
'e506ae4a9f9f7d1b765febfa84e10d48'
|
||||||
|
'dcf3e0b47119b0bb06ce987c8f030ffa'
|
||||||
|
'be55eabc102f2c60b38ed35c203686d6'
|
||||||
|
'a03ffd56324520393bf574cefccb893d'
|
||||||
|
'c8b9511586d57d6f2524ae7898397a46')
|
||||||
|
Loading…
Reference in New Issue
Block a user