diff options
Diffstat (limited to 'sys-boot')
-rw-r--r-- | sys-boot/os-prober/files/os-prober-1.79-efi-chroot-blkid-fallback.patch | 24 | ||||
-rw-r--r-- | sys-boot/os-prober/os-prober-9999.ebuild | 3 |
2 files changed, 25 insertions, 2 deletions
diff --git a/sys-boot/os-prober/files/os-prober-1.79-efi-chroot-blkid-fallback.patch b/sys-boot/os-prober/files/os-prober-1.79-efi-chroot-blkid-fallback.patch new file mode 100644 index 000000000000..b5b90b2214da --- /dev/null +++ b/sys-boot/os-prober/files/os-prober-1.79-efi-chroot-blkid-fallback.patch @@ -0,0 +1,24 @@ +Fixes missing entries when os-prober is run in a chroot environment by falling back +to blkid if udev isn't available or if /run/udev isn't bind mounted. Modified from +https://build.opensuse.org/package/view_file/Base:System/os-prober/os-prober-05efi-blkid.patch?rev=103 + +Bug: https://bugs.gentoo.org/761475 + https://bugzilla.opensuse.org/1076779 + +--- a/os-probes/mounted/x86/05efi ++++ b/os-probes/mounted/x86/05efi +@@ -46,6 +46,14 @@ if type udevinfo > /dev/null 2>&1; then + fi + + eval "$(udevinfo -q property -n "$partition" | grep -E '^ID_PART_ENTRY_(TYPE|SCHEME)=')" ++ ++ # udev may not work in chroot as its db may not be there, bailout that by blkid (bsc#1076779) ++ if [ -z "$ID_PART_ENTRY_TYPE" -a -z "$ID_PART_ENTRY_SCHEME" ] && ++ type blkid > /dev/null 2>&1; then ++ debug "fallback to blkid" ++ eval "$(blkid -p -o udev "$partition" | grep -E '^(ID_PART_ENTRY_(TYPE|SCHEME))=')" ++ fi ++ + debug "$partition partition scheme is $ID_PART_ENTRY_SCHEME" + debug "$partition partition type is $ID_PART_ENTRY_TYPE" + diff --git a/sys-boot/os-prober/os-prober-9999.ebuild b/sys-boot/os-prober/os-prober-9999.ebuild index 4c80110b8060..c854d403e4f0 100644 --- a/sys-boot/os-prober/os-prober-9999.ebuild +++ b/sys-boot/os-prober/os-prober-9999.ebuild @@ -31,14 +31,13 @@ PATCHES=( "${FILESDIR}"/${PN}-1.79-use-fstab-name.patch "${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch "${FILESDIR}"/${PN}-1.79-fix-busy-umount-message.patch + "${FILESDIR}"/${PN}-1.79-efi-chroot-blkid-fallback.patch ) DOC_CONTENTS=" If you intend for os-prober to detect versions of Windows installed on NTFS-formatted partitions, your system must be capable of reading the NTFS filesystem. One way to do this is by installing sys-fs/ntfs3g. - Also, in a chroot environment, it is necessary to bind mount /run/udev - (see https://wiki.gentoo.org/wiki/GRUB2#os-prober_and_UEFI_in_chroot). NOTE: Since sys-boot/grub-2.06-rc1, grub-mkconfig disables os-prober by default. To enable it, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub. |