Рейтинг:1

Обновление grub для Kubuntu 20.04 (UEFI) не находит систему другого диска (Fedora 34 KDE)

флаг br

У меня установлено несколько систем; сначала в хронологическом порядке Windows 10, затем Kubuntu 20.04, затем Fedora 34 KDE, а затем KaOS. Fedora находится на втором диске со своим отдельным EFI, но разделяет его с KaOS.

Конфигурация такая:

Размер начальных и конечных секторов устройства Тип
/dev/nvme0n1p1 2048 739327 737280 Система EFI 360M
/dev/nvme0n1p2 739328 1001471 262144 128M зарезервировано Microsoft
/dev/nvme0n1p3 1001472 457750527 456749056 217,8G Основные данные Microsoft
/dev/nvme0n1p4 457750528 459757567 2007040 980M Среда восстановления Windows
/dev/nvme0n1p5 459757568 500107263 40349696 19,2G Основные данные Microsoft
/dev/nvme0n1p6 500107264 644737022 144629759 Файловая система 69G Linux
/dev/nvme0n1p7 644737023 976773134 332036112 158,3G файловая система Linux



Размер начальных и конечных секторов устройства Тип
/dev/sda1 2048 1230847 1228800 Система EFI 600M
/dev/sda2 251660288 1258293247 1006632960 файловая система 480G Linux
/dev/sda3 1258293248 1875384319 617091072 294,3G Основные данные Microsoft
/dev/sda4 1230848 3327999 2097152 файловая система 1G Linux
/dev/sda5 3328000 251660287 248332288 118,4G файловая система Linux

введите описание изображения здесь

введите описание изображения здесь

/dev/nvme0n1p1 это раздел EFI для Windows (установлен на /dev/nvme0n1p2 к 5) и Ubuntu (устанавливается на nvme0n1p6), /dev/sda1 это EFI для Fedora (/dev/sda4 и 5) и КаОС (/dev/nvme0n1p7)

Этот странный выбор связан с тем фактом, что предыдущая установка другого Linux, помимо Kubuntu, с использованием того же EFI, что и Windows, привела к повреждению загрузки Windows; это было исправлено путем переустановки Kubuntu, которая добавила Windows в меню загрузки; Я хотел избежать такого вмешательства в Windows, и поэтому я установил Fedora на отдельный диск с собственным EFI, а затем, когда я установил KaOS на тот же диск, что и Windows, я выбрал использование EFI с другого диска, поделиться им с Fedora.

После установки KaOS его загрузочное меню (запускается системная загрузка, нет личинка) не показывал другие системы.

Меню загрузки Fedora и Ubuntu были скрыты в интерфейсе прошивки UEFI. В Fedora включены все системы. Загрузочное меню kUbuntu включало все, кроме Fedora..

Я использовал восстановление загрузки, пытаясь сделать загрузочное меню Fedora меню по умолчанию, потому что оно было наиболее полным (путем установки grub на sda1), но не было возможности «загрузить первой» Fedora: поэтому я выбрал Kubuntu. Это привело к Загрузочное меню Kubuntu становится стандартным, отсутствует только Fedora.

Учитывая, что Kubuntu grub теперь под контролем, я хотел бы использовать это и просто добавить к нему Fedora. Обновление grub не помогает.


РЕДАКТИРОВАТЬ-1, после комментариев @oldfred:

отчет о ремонте загрузки пастобин -также ЗДЕСЬ (спросил в комментариях)

РЕДАКТИРОВАТЬ-2, после ответа @oldfred:

Я просмотрел файлы Kubuntu grub.cfg и обнаружил, что список загрузки Kubuntu определяется файлом загрузка/жратва/жратва.cfg добавив туда пункт меню.

Глядя на собственный файл grub.cfg Fedora, который я смог найти: там записи Fedora отсутствуют, перечислены только остальные системы. Только они также видны в Grub Customizer в Fedora: записи Fedora в собственном списке загрузки, похоже, определяются отдельными файлами в /загрузчик/записи/ из его корневого раздела ext4 размером 1 ГБ (sda4). Копирование их в Kubuntu /boot/efi/loader/entries/ не дает никакого эффекта.

Отсутствие собственной модели Fedora для входа в Kubuntu загрузка/жратва/жратва.cfg, я скопировал и изменил найденные там строки для KaOS, добавив спецификации Fedora, а именно UUID. Я не уверен, что форматирование правильное, оно точно такое же для KaOS в том файле, только скорректировано название дистрибутива и UUID:

menuentry 'Fedora 34 KDE' --class Fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4834b108-13c9-406c-8a7b-a9c53440283c' {
    load_video
    установить gfxpayload = сохранить
    insmod gzio
    insmod part_gpt
    инсмод жир
    установить корень = 'hd0, gpt1'
    если [x$feature_platform_search_hint = xy]; тогда
      поиск --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 F4F4-1172
    еще
      поиск --no-floppy --fs-uuid --set=root F4F4-1172
    фи
    echo 'Загружается Linux Linux...'
    linux /vmlinuz-linux root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c rw тихий
    echo 'Загружается начальный виртуальный диск...'
    initrd /initramfs-linux.img
}

Таким образом имя Fedora, конечно, добавляется в список загрузки, но не работает:

с UUID бфрс раздел (sda5) получаю сообщение:

mount: новый/-root: неизвестный тип файловой системы «btrfs»

На всякий случай я попробовал использовать UUID «корневого» раздела Fedora (sda4), и я получаю сообщение:

Ошибка: корневое устройство успешно смонтировано, но sbin/init не существует

Я думаю, что правильный путь - добавить UUID sda5 перегородка; что это тот, который указан во всех трех файлах, упомянутых выше в Fedora. /загрузчик/записи/

Кажется, grub не распознает btrfs.

Я установил все связанные с btrfs файлы, которые смог найти с помощью Apper, около 30 пакетов, но происходит то же самое.


РЕДАКТИРОВАТЬ-3

Из дальнейших комментариев я понимаю, что не должен редактировать загрузка/жратва/жратва.cfg но редактируй файл и т.д./grub.d/40_custom и скопируйте туда части других файлов. Но я не понимаю, какие файлы я должен использовать.Я не смог найти на собственных разделах Fedora что-либо, связанное с ее собственной загрузкой и собственной записью в списке загрузки, кроме файлов в доб4 - /загрузчик/записи. Так это из одного из тех, что я должен скопировать?

Это что-то вроде этого скопировано из /media/root/651b659a-8fc5-46d6-b291-22b3b523ebaf/loader/entries/a037a4898b9540bfbc52f3f377b2ff4d-5.13.19-200.fc34.x86_64.conf (то есть из 1GB ex4 раздела sda4 Fedora):

название Fedora (5.13.19-200.fc34.x86_64) 34 (KDE Plasma)
версия 5.13.19-200.fc34.x86_64
линукс /vmlinuz-5.13.19-200.fc34.x86_64
initrd /initramfs-5.13.19-200.fc34.x86_64.img
options root=UUID=4834b108-13c9-406c-8a7b-a9c53440283c ro rootflags=subvol=root rhgb тихий 
grub_users $grub_users
grub_arg -- неограниченный
ядро grub_class

Или это что-то вроде записи для KaOS в файле Kubununtu загрузка/жратва/жратва.cfg размещено под EDIT-2 выше?

флаг us
Помогает ли `sudo update-grub`?
флаг br
@ArchismanPanigrahi — находит только Windows и KaOS (которые находятся на одном диске).
oldfred avatar
флаг cn
Давайте посмотрим подробности, используйте версию ppa с вашим живым установщиком (2-й вариант) или любую рабочую установку, а не Boot-Repair ISO: Скопируйте и вставьте ссылку pastebin на сводный отчет о загрузке (не публикуйте отчет), не запускайте автоматическое исправление до проверки. https://help.ubuntu.com/community/Boot-Repair Я думаю, что os-prober найдет ESP на sda.Но если Fedora использует LVM, вам необходимо установить драйвер lvm2 в Kubuntu и смонтировать LVM Fedora. Вы можете изменить порядок загрузки с помощью efibootmgr. Или в настройках UEFI (не в меню). http://askubuntu.com/questions/485261/change-boot-order-using-efibootmgr
флаг br
@oldfred - Какую процедуру я должен инициировать с восстановлением загрузки ppa? автоматический/по умолчанию или какой-то конкретный выбор? Я попробую это как можно скорее.
oldfred avatar
флаг cn
Просто отчет, чтобы мы могли увидеть вашу конфигурацию. Затем кто-то, просматривающий отчет, может внести более точные предложения по исправлениям. Я мог бы сначала добавить драйвер lvm2 в Kubuntu.
флаг br
@oldfred — Fedora использует btrfs для системного раздела, как показано на изображении.
oldfred avatar
флаг cn
Отчет покажет это и многие другие детали, поэтому мы знаем, что предложить.
флаг br
@oldfred - Пожалуйста, смотрите редактирование со ссылкой.
Рейтинг:0
флаг cn

Однажды я установил Fedora, но до этого использовал btrfs. Но моя запись grub в Ubuntu загружена по цепочке или конфигурационный файл в загрузочную запись UEFI. Я добавил их в 40_custom в grub Ubuntu. UUID уникальны, и вам нужно изменить UUID вашей установки. Для загрузки прямо в grub

пункт меню "Fedora UEFI" {
  поиск --file --no-floppy --set=root F496-1330
  цепной загрузчик (${root})/efi/fedora/grub.cfg
}

Часто вы можете просто скопировать раздел загрузки для grub из одной установки в другую. Это то, что делает os-prober. Вам могут понадобиться дополнительные драйверы (btrfs) или файлы .mod grub2 (например, btrfs.mod), чтобы он распознавал различные форматы или конфигурации. Если вы используете rEFInd, вы должны перевести раздел grub в refind.conf. Файл конфигурации — это ссылка на другой файл, который является grub или имеет загрузочные строфы типа grub.

пункт меню "Fedora UEFI" {
search.fs_uuid a9bd9a65-bc8c-41b1-95b1-2dceb66b2652 корень hd1, gpt2 
установить префикс=($root)'/boot/grub'
конфигурационный файл $prefix/grub.cfg
}

Использование 40_custom и пользовательского меню

https://help.ubuntu.com/community/Grub2/CustomMenus

Конфигурационный файл:

https://www.gnu.org/software/grub/manual/grub/grub.html#Multi_002dboot-manual-config

https://ubuntuforums.org/showthread.php?t=2076205&page=54&p=13788092#post13788092

флаг br
Кажется, grub не распознает btrfs. См. в теле вопроса EDIT-2.
oldfred avatar
флаг cn
В разделе загрузки 40_custom добавьте `insmod btrfs.mod` перед разделом загрузки для Fedora. http://www.gnu.org/software/grub/manual/grub/html_node/insmod.html#insmod В файле grub.cfg могут быть аналогичные записи для NTFS, gpt и т.п. В Grub встроено много драйверов, но есть insmod, чтобы добавить больше.
флаг br
Мне было проще скопировать часть меню KaOS для Fedora в `boot/grub/grub.cfg`, так как я не понимаю, что именно вставлять в `40_custom`, а то, что я ставил, не работало. Итак, теперь я добавил `insmod btrfs` вместе с аналогичными записями в меню Fedora в `grub.cfg`: теперь я получаю сообщение `/boot/grub/x86_64-efi/btrfs.mod not found`. Но этот файл есть.
oldfred avatar
флаг cn
Вы не редактируете grub.cfg, так как он переписывается с каждым grub, ядром или sudo update-grub. Вы добавляете загрузочный раздел в 40_custom. И это должна быть просто копия, как у вас. Опубликуйте загрузочную строфу, которую вы копируете. В отчете Boot-Repair его нет. Вы используете раздел Fedora из Fedora или KaOS? Я мог бы скопировать оба в 40_custom
флаг br
Записи Fedora в собственном списке загрузки (к которым я могу получить доступ в интерфейсе прошивки) определяются отдельными файлами в `/loader/entries/` (из его корневого раздела ext4 размером 1 ГБ sda4), как я сказал в EDIT-2. Я опубликую их в новом редактировании и, пожалуйста, скажите, могу ли я добавить этот контент в `40_custom` - или что именно я должен туда добавить. Принимает ли `40_custom` элементы меню в форме grub.conf? (например, тот, который я уже опубликовал? он скопирован из grub.conf Kubuntu, относящегося к KaOS).
флаг br
Пожалуйста, смотрите EDIT-3 в вопросе.
oldfred avatar
флаг cn
Ваше редактирование 2 - это строфа загрузки grub. Но если Ubuntu находится на hd0, это загрузочный диск, и тогда вам нужно изменить все hd0 на hd1, так как это второй диск. Он действительно должен найти ESP на sda по UUID, но мне часто приходилось вручную редактировать запись hdX при загрузке с правкой grub. Строфа edit3 типична для syslinux, systemD или rEFInd, но я плохо их знаю. Вы можете переводить с одного на другой, так как оба содержат одинаковую информацию, только в другом формате. Я думал, что os-prober может выполнить перевод, если найдет этот файл стиля .conf, но очевидно, что он не работает для вас.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.