
Вчера я обновил свою версию ОС с Kubuntu 20.04 до 22.04. К сожалению, это привело к возникновению множества проблем (в основном с Grub 2.06)
Сегодня при загрузке Grub я столкнулся со следующей ошибкой:
minimal BASH like line editing is supported (...).
Вместо того, чтобы направить меня к обычному графическому интерфейсу, мне был представлен CLI, запрашивающий ввод. Я с успехом временно решил проблему с помощью совета, данного вэтот пост на geeksforgeeks.org.
выполнив следующие команды:
set root=(hd1,gpt2)
set prefix=(hd1,gpt2)/boot/grub
insmod normal
normal
и
sudo grub-install /dev/sdXY (in my case, /boot/efi is located on sdb3)
sudo update-grub
при загрузке моей ОС. Однако после перезагрузки проблема сохраняется, и я снова отправляюсь в CLI.
Вывод из
sudo update-grub
как следует:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-52-generic
Found initrd image: /boot/initrd.img-5.15.0-52-generic
Found linux image: /boot/vmlinuz-5.4.0-131-generic
Found initrd image: /boot/initrd.img-5.4.0-131-generic
Found linux image: /boot/vmlinuz-5.4.0-56-generic
Found initrd image: /boot/initrd.img-5.4.0-56-generic
Found linux image: /boot/vmlinuz-5.15.0-52-generic
Found initrd image: /boot/initrd.img-5.15.0-52-generic
Found linux image: /boot/vmlinuz-5.4.0-131-generic
Found initrd image: /boot/initrd.img-5.4.0-131-generic
Found linux image: /boot/vmlinuz-5.4.0-56-generic
Found initrd image: /boot/initrd.img-5.4.0-56-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows Boot Manager on /dev/sdb3@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
Found linux image: /boot/vmlinuz-5.15.0-52-generic
Found initrd image: /boot/initrd.img-5.15.0-52-generic
Found linux image: /boot/vmlinuz-5.4.0-131-generic
Found initrd image: /boot/initrd.img-5.4.0-131-generic
Found linux image: /boot/vmlinuz-5.4.0-56-generic
Found initrd image: /boot/initrd.img-5.4.0-56-generic
Found Windows Boot Manager on /dev/sdb3@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings
Вывод grub-install
:
Installing for x86_64-efi platform.
Installation finished. No error reported.
Выходdf
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 1629800 1972 1627828 1% /run
/dev/sdb2 205377444 77481204 117390824 40% /
tmpfs 8148984 512 8148472 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/sdb3 998480 37892 960588 4% /boot/efi
/dev/sda1 557135192 205411480 323349288 39% /media/User/Linux HDD
tmpfs 1629796 84 1629712 1% /run/user/1000
/dev/sdb4 277079036 24608052 252470984 9% /media/User/Windows_10
/dev/sdc1 976758780 504811472 471947308 52% /media/User/Seagate
Выходfdisk -l
Device Start End Sectors Size Type
/dev/sda1 2048 1134323711 1134321664 540,9G Linux filesystem
Disk /dev/sdb: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9592ABCA-3C53-4225-B388-FDF8B09DF156
Device Start End Sectors Size Type
/dev/sdb1 2048 34815 32768 16M Microsoft reserved
/dev/sdb2 1052672 420614143 419561472 200,1G Linux filesystem
/dev/sdb3 420614144 422615039 2000896 977M EFI System
/dev/sdb4 422615040 976773119 554158080 264,2G Microsoft basic data
Как мне это преодолеть?
решение1
Отследите разрыв соединения в grub, найдя его меню. cat файл /boot/efi/EFI/ubuntu/grub.cfg и сравните его UUID с UUID /dev/sdb2 (sudo blkid выведет их список). Они должны совпадать. Затем команда configfile использует UUID для импорта файла /boot/grub/grub.cfg для меню grub — существует ли он?
решение2
Если вы используете pop os (или, возможно, другие дистрибутивы), как и я, похоже, что разделы, настроенные в , /boot/efi/EFI/pop/grub.cfg
не соответствуют тому, что я видел, когда использовал echo $prefix
и echo $root
.
Оказывается, GRUB по умолчанию использует Bun /boot/efi/EFI/ubuntu/grub.cfg
, а если он по какой-то причине не существует (был удален или что-то в этом роде), он использует некоторые значения по умолчанию.
Короткий ответ — скопировать ваш дистрибутив grub.cfg
в «/boot/efi/EFI/ubuntu/grub.cfg».
ВидетьGrub только в режиме оболочки, установлен неправильный корень и префикс