Установка линукс нет grub

Ubuntu 22.04 — нет загрузчика grub

Дело было вечером, делать было нечего… И я решил установить новую версию Kubuntu 22.04. Но какое было мое удивления, когда после установки, я перезагрузил свой компьютер, и не увидел меню загрузчика grub, а ведь у меня установлена еще и ubuntu 21.10.

На самом деле это известная ошибка, и я не совсем понимаю как canonical допускает ее. Там делов на одну строчку кода.

os-prober по своей сути небезопасен, так как он монтирует все разделы на вашем диске с помощью grub-mount, чтобы проверить их на наличие других ОС, что не очень приятно делать в качестве root, так как вы можете получить ошибки в коде файловой системы.

Это функция безопасности. Так что вам решать, стоит ли снова включить OS Prober, чтобы разрешить двойную загрузку.

Вот быстрый способ включить OS Prober в Ubuntu grub.

Шаг 1: отредактируйте /etc/default/grub, чтобы добавить GRUB_DISABLE_OS_PROBER=false

Откройте терминал и введите следующую команду

Откроется текстовый редактор прямо в терминале, где после строки — GRUB_CMDLINE_LINUX=»», вы должны вставить еще одну строчку кода

GRUB_DISABLE_OS_PROBER=false

Шаг 2: обновите grub, чтобы применить новые настройки, а затем перезагрузите систему

И теперь у вас должен вернуться старый grub с Windows и другими ОС, если они у вас были.
Опять же, пожалуйста, помните, что это было обновление безопасности поэтому, пожалуйста, поймите последствия.

Источник

Установка линукс нет grub

Посмотрите в /etc/default/grub строку GRUB_TIMEOUT= Если там стоит 0, то вполне может быть, что система сразу начинает грузить то, что считает «по умолчанию». Попробуйте изменить 0 на, например, 10 и обновить grub. Тогда должно появиться окно в 10-секундным выбором что загружать.

Onz Сообщения: 94 Зарегистрирован: 23 авг 2017, 19:09 Решено: 1 Откуда: Гнезно, Польша Благодарил (а): 26 раз Поблагодарили: 4 раза Контактная информация:

Нет окна GRUB

Через загрузочный диск/флешку Windows восстановить её MBR https://remontka.pro/windows-10-bootloader-fix/
затем через загрузочный диск/флешку LM восстановить GRUB Восстановление GRUB

Когда создавл тему, то в имел ввиду этот способ, но думал, может есть какой-то способ «меньшей кровью» решить эту проблему. По сути мне-то Windows не нужен, даже жалко для него места на SSD, но во-первых шёл вместе с компом, а во-вторых дома ученики и студентыесть. Так что нужно будет повозиться и восстановить.

Читайте также:  Подключение ssh через терминал linux

Onz Сообщения: 94 Зарегистрирован: 23 авг 2017, 19:09 Решено: 1 Откуда: Гнезно, Польша Благодарил (а): 26 раз Поблагодарили: 4 раза Контактная информация:

Нет окна GRUB

А для выбора какую ОС загружать используй возможности своего UEFI. Какая там клавиша у тебя вызывает BBS Menu

# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD . ) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"

Источник

Загрузка ОС Linux без загрузчика

Здесь по возможности я постараюсь как можно проще и детальнее ответить на вопрос:
«Как можно загрузить Linux (на примере ubuntu) без использования загрузчика такого как GRUB 2, iELILO»
Здесь не будет разбираться как запустить/установить Ubuntu в режиме [UEFI only]. Для этого обратитесь сюда help.ubuntu.ru/wiki/установка_дистрибутива_на_компьютер_с_efi
и сюда help.ubuntu.ru/wiki/lubuntu-osinstallation
Все действия будут производиться на уже работающей системе.

Для того, чтобы воспользоваться данной возможностью необходимо соблюсти некоторые требования.

Требования

1. UEFI вместо BIOS (выставить режим [UEFI only]);
2. OS 64-bit;
3. Linux (Kernel >= 3.3);

Входные данные

Установленный дистрибутив lubuntu-13.04-desktop-amd64 с выставленным режимом [UEFI only]. Отключил Fast Boot (После завершения можно включить).

Полученная таблица разделов

user@pc:~$ sudo parted /dev/sda print Model: ATA mSata Smartbuy 3 (scsi) Disk /dev/sda: 32,0GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 99,6MB 98,6MB fat32 boot 2 99,6MB 27,8GB 27,7GB ext4 3 27,8GB 32,0GB 4182MB linux-swap(v1) 

Необходимо обратить внимание на 1 раздел, с него и будет осуществляться прямая загрузка ядра без участия отдельного загрузчика (например GRUB 2), предъявляемые к нему требования:

  1. Выставленный флаг boot;
  2. Рекомендуемый размер до 512 МБ (встречал разные рекомендации каким он должен быть размером, в основном это 200-300 МБ, от себя замечу, что на деле он будет занят на 5.3 МБ);
  3. Файловая система fat32/fat16/fat12 (UEFI имеет поддержку);
Читайте также:  Узнать модель процессора линукс

Подготовительные этапы выполнены, мы имеем работающую 64 битную операционную систему с выставленным режимом UEFI only и разделом для ядра (в данный момент там расположен GRUB, рядом мы положим ядро).

Получаем и настраиваем своё ядро

Загружаем ОС, открываем консоль.
Для того, чтобы ядро могло загрузиться без использования загрузчика, ему необходимо указать диск который будет монтироватся в качестве корневого, чтобы это сделать, нужно собрать своё ядро и указать ему опцию

CONFIG_CMDLINE="root=/dev/sda2 ro" 

у меня ОС установлена на диске sda2.
Обычно эту строку передаёт загрузчик GRUB вместе со многими другими параметрами

Проверьте, чтобы были установлены опции ядра
CONFIG_EFI=y
CONFIG_RELOCATABLE=y
CONFIG_EFI_STUB=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_VARS=m #or y works too.
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y

Замечание
На сайте разработчика Ubuntu написано, что если вы используется не оригинальное ядро, а собрали его сами, то им будет трудно вам оказать поддержку и отчёты об ошибках не присылайте. (https://help.ubuntu.com/community/Kernel/Compile)

Получим необходимые инструменты (может занять продолжительное время)

sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge sudo apt-get install libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev 

Теперь создадим директорию в которой будем совершать все действия, я назову папку v2, что будет символизировать модификацию последнего ядра системы.

user@pc:~$ mkdir v2 user@pc:~$ cd v2 
user@pc:~/v2$ apt-get source linux-image-$(uname -r) user@pc:~/v2$ sudo apt-get build-dep linux-image-$(uname -r) 
chmod a+x debian/scripts/* chmod a+x debian/scripts/misc/* fakeroot debian/rules clean fakeroot debian/rules editconfigs 
Do you want to edit config: amd64/config.flavour.generic? [Y/n] 

Здесь как раз указано, что редактируем конфигурацию для 64 битного ядра, вводим Y, жмём ввод и получим окно

теперь открываем поиск (клавиша ‘/’), вводим cmdline и жмём ввод и видим то, что на скриншоте

затем жмём цифру 2 и переходим к правке параметра ‘Built-in kernel command line’, жмём ‘y’ и в данном поле выставляется звёздочка, символизирующая, что данный режим включен, теперь переходим на поле которое ниже, жмём ввод и вводим в него заветное

Эта и есть та самая опция, ради которой всё затевалось (Вместо sda2 подставьте свой диск).
Мы получили данный конфиг:

На этом этапе я остановился, собрал ядро, порадовался, что всё так просто и при загрузке свежесобранного ядра получил ошибку, что ядро не может найти корневой раздел (собственно это, ради чего весь процесс сборки ядра и затевался). Я долго недоумевал что же к чему и даже попробовал указать диск в формате UUID, но стабильно получал ошибку:

VFS: Cannot open root device "sda2" or unknown-block(0,0) error -6 Please append a correct "root bash">lspci -n 

и полученный вывод вставляем в окно ввода на сайте
Debian GNU/Linux device driver check page
жмём check, получаем:

Читайте также:  Linux qemu system x86

из этого списка нам нужно включить драйвер дискового контроллера, в моём случае это ahci (Строка ‘Sata Controller’, Столбец ‘Driver’).
Снова жмём ‘/’ для поиска и вводим ‘ahci’. Для верности отмечаем все три найденных варианта для встраивания SATA_AHCI_PLATFORM, SATA_ACARD_AHCI и SATA_AHCI.

Теперь выбираем везде ‘exit’, в конце соглашаемся, сохраняем настройки выбором Yes. После чего в консоле отказываемся от редактирования конфигураций для других платформ, ибо они нам не нужны.

Сборка ядра

user@pc:~/v2/linux-3.8.0$ fakeroot debian/rules clean user@pc:~/v2/linux-3.8.0$ fakeroot debian/rules binary-headers binary-generic 

Теперь остаётся только подождать пока ядро будет собрано. В зависимости от мощности вашего компьютера зависит время сборки ядра, на моей машине процесс сборки занял чуть менее часа.

После сборки копируем полученное ядро на загрузочный раздел в папку ‘EFI/boot’, т.к раздел примонтирован к папке /boot/efi, в результате имеем путь /boot/efi/EFI/boot/

sudo mkdir -p /boot/efi/EFI/boot/ 
user@pc:~/v2/linux-3.8.0$ sudo cp ./debian/build/build-generic/arch/x86_64/boot/bzImage /boot/efi/EFI/boot/bootx64.efi 

Стоит отметить, что загрузка с использованием загрузчика GRUB всё равно будет доступна, стоит только переключить в UEFI (нажать del или F12 при загрузке). Это может пригодиться, если ядро по каким либо причинам не загрузилось.

Теперь необходимо сообщить UEFI о том, что мы хотим сделать загрузочным наше ядро, для этого нужно установить программу которая умеет редактировать настройки UEFI.

sudo apt-get install efibootmgr 

Если отработало без ошибок, делаем последний штрих. Добавим наше ядро в UEFI с приоритетом на загрузку №1, название в кавычках после —label можете ввести своё. Регистр в пути к загрузчику не имеет значения, т.к он не регистро-зависимый.

sudo efibootmgr --create --part 1 --label "Linux" --loader '\efi\boot\bootx64.efi' 

Теперь в меню загрузки UEFI добавлена новая строчка с названием ‘Linux’, которая осуществляет прямую загрузку ядра. На этом всё. Можно перезагрузить компьютер и убедиться, что ядро загружается минуя загрузчик.

Цель достигнута! Спасибо за внимание!

UPD:
Спасибо пользователю ValdikSS за ценное замечание. Достичь поставленную цель можно гораздо проще. Пересобирать ядро в данном случае нет необходимости. Его можно скопировать на FAT раздел вместе с initrd (из дириктории /boot) и указать загрузчику правильные параметры:

sudo efibootmgr --create --disk /dev/sda --part 1 --label "Lubuntu" -u --loader '\efi\boot\vmlinuz.efi' root=/dev/sda2 initrd=/efi/boot/initrd.img rw quiet 

Источник

Оцените статью
Adblock
detector