Инсталиране на grub uefi bootloader ubuntu 16.04. Как да поправя GRUB2, ако Ubuntu не се стартира

Оригинал: GRUB 2: Излекувайте своя буутлоудър
Автор: Mayank Sharma
Дата на публикуване: 10 септември 2015 г
Превод: А. Панин
Дата на прехвърляне: 16 декември 2015 г

Няма много неща, които могат да бъдат толкова досадни, колкото невъзможността на буутлоудъра да бъде досадна. Ето защо ще се научим да използваме максимално всички функции на буутлоудъра GRUB 2, като го поддържаме в работно състояние.

За какво е?

    GRUB 2 е най-популярният буутлоудър, използван в почти всяка дистрибуция на Linux.

    Буутлоудърът е важен софтуерен компонент, който обаче може да не работи правилно в някои случаи.

    GRUB 2 е разширяем и гъвкав bootloader, който поддържа много опции за конфигурация.


Зареждането на Linux, наречено GRUB 2, е качествен и гъвкав софтуерен компонент. Въпреки че този буутлоудър не е единственият поддържащ Linux буутлоудър, той е най-популярният и се използва от почти всички добре познати дистрибуции. Процесът на функциониране на буутлоудъра GRUB 2 може да бъде разделен на две фази. Първо, той извежда меню с имената на всички операционни системи, инсталирани на компютъра, и ви позволява да изберете една от тях. Второ, зарежда ядрото на Linux, ако изберете операционна система, базирана на съответното ядро, като използвате менюто за зареждане.

Очевидно, когато използвате операционна система, базирана на ядрото на Linux, просто не можете да правите без буутлоудър. В същото време буутлоудърът е може би най-мистериозният компонент на дистрибуцията на Linux. Като част от това ръководство ще ви запознаем с някои от функциите на този буутлоудър и ще ви научим как да решавате проблеми, свързани с неправилното му функциониране.

Най-важният компонент на буутлоудъра GRUB 2 е набор от текстови файлове, както и няколко шел скрипта. Първият компонент на този набор, с който си струва да се запознаете, се намира в директорията /etc/default/grub. Това е текстов файл, който можете да използвате, за да зададете конфигурационни променливи и други опции в менюто GRUB 2 (вижте "Опции на менюто за персонализирано стартиране").

Друга важна директория, свързана с GRUB 2, е директорията /etc/grub.d. Тази директория съдържа всички скриптове, които формират описанието на всеки от елементите на менюто. Тези имена на скриптове трябва да бъдат с префикс от две цифри. Тези префикси са предназначени да установят реда, в който ще се изпълняват скриптовете, както и реда, в който съответните елементи се появяват в менюто GRUB 2. Първо се чете файлът 00_header, последван от синтактичния анализ на /etc/default /grub конфигурационен файл. След това елементите от менюто за ядрата на Linux на текущата система се генерират с помощта на скрипта 10_linux. Този скрипт създава един нормален елемент от менюто за стартиране за ядрото на Linux и един елемент от менюто за възстановяване на системата за същото Linux ядро ​​от /boot дяла.

След това се изпълняват скриптове за търсене на други операционни системи, като 30_os-prober и 40_custom. Скриптът os-prober създава елементи от менюто за други ядра и други операционни системи, които се намират на други дялове на твърдия диск. Той е в състояние да разпознава инсталираните системи Linux, Windows, BSD и Mac OS X. Ако използвате конфигурация на дял на вашия твърд диск, която е твърде екзотична, за да може скрипт на os-prober да разпознае като инсталирана дистрибуция, можете да добавите описание на тази дистрибуция към скрипта 40_custom (вижте "Потребителски елементи от менюто за стартиране").

GRUB 2 не изисква ръчно редактиране на конфигурационни файлове за промяна на опциите за зареждане на системата: вместо това ви позволява да генерирате /boot/grub/grub.cfg конфигурационен файл с помощта на помощната програма grub2-mkconfig. Тази помощна програма ви позволява да анализирате скриптове от директорията /etc/grub.d, както и конфигурационния файл /etc/default/grub, за да генерирате автоматично описание на опциите за зареждане на системата.

Възстановяване на зареждащия инструмент в графичен режим

По-голямата част от проблемите, свързани с буутлоудъра GRUB 2, могат просто да бъдат решени чрез натискане на единичния бутон на приложението Boot Repair. Това елегантно, просто приложение има интуитивен потребителски интерфейс и ви позволява да сканирате и разпознавате различни типове дискове и схеми на дискови дялове, а също така може да разбере местоположението и правилно да идентифицира операционните системи, инсталирани в тези дялове. Помощната програма може да работи както на обикновени компютри с главни записи за зареждане (Master Boot Record, MBR), така и на нови компютри с UEFI и GUID таблици на дялове (GUID Partition Table, GPT).

Най-лесният начин да използвате помощната програма Boot Repair е да я инсталирате като част от сесия на живо в Ubuntu. Стартирайте дистрибуцията на Ubuntu на живо на машината с повреден буутлоудър и инсталирайте приложението Boot Repair, като първо добавите подходящ PPA с командата:

Sudo add-apt-repository ppa:yannubuntu/Boot Repair

След това актуализирайте списъка с хранилища с командата:

Sudo apt-получи актуализация

Накрая можете да инсталирате приложението с командата:

Sudo apt-get install -y Boot Repair

След като инсталационният процес приключи, ще можете да стартирате приложението. Той ще сканира вашия твърд диск, преди да покаже потребителски интерфейс, който се състои от няколко бутона. За да извършите действията, предложени от приложението, можете просто да щракнете върху бутона "Препоръчан ремонт", който ще отстрани повечето проблеми, свързани с буутлоудъра. След възстановяване на системата за зареждане, помощната програма ще покаже връзка, която трябва да запомните. Щракването върху тази връзка ще ви даде подробна информация за вашите устройства, включително техните дялове, както и съдържанието на важни конфигурационни файлове на GRUB 2, като тези в директорията /etc/default/grub и /boot/grub/grub.cfg . Ако приложението не успее да възстанови вашия системен буутлоудър, можете да публикувате тази връзка във форума на вашата дистрибуция, за да могат посетителите да се запознаят със схемата на дяловете на вашия твърд диск и да дадат полезни съвети.

Възстановяване на буутлоудъра

Проблеми, свързани с буутлоудъра GRUB 2, могат да доведат системата в различни състояния. Текстът, показан на екрана вместо в менюто за стартиране, показва текущото състояние на системата. Ако системата не успее да се стартира с подкана grub>, може да се заключи, че модулите GRUB 2 са заредени, но конфигурационният файл grub.cfg не може да бъде зареден. Тази подкана се показва в напълно функционална обвивка за зареждане, с която можете да извършвате доста действия, насочени към зареждане на системата. Ако видите подканата grub rescue>, лесно е да заключите, че зареждащият инструмент не може да намери своите модули, както и файлове, описващи опциите за зареждане на системата. Въпреки това, ако на екрана на вашия компютър се изведе само думата "GRUB", можете да направите разочароващо заключение, че зареждащият инструмент дори не може да намери основната информация, която обикновено се съхранява в основния запис за зареждане.

Можете да коригирате тези проблеми с GRUB 2, като използвате или Live CD на която и да е дистрибуция, или обвивката GRUB 2. Ако имате късмет и вашият буутлоудър покаже поздрава grub>, можете да използвате пълната мощност на вградената обвивка на GRUB 2, за да коригирате всякакви грешки.

Следните команди ще работят както за подкана grub>, така и за подкана grub rescue>. Командата set pager=1 ви позволява да използвате механизма за превъртане на текст, за да предотвратите автоматичното му превъртане. Можете също да използвате командата ls, която ви позволява да изброите всички видими дялове на твърдия диск GRUB 2 по подобен начин:

Grub> ls (hd0) (hd0,msdos5) (hd0,msdos6) (hd1,msdos1)

Както можете да видите, тази команда ви позволява да покажете информация за оформлението на таблицата на дяловете на твърдия диск, заедно с информация за самите дялове.

Като алтернатива можете да използвате командата ls на всеки дял на твърдия диск, за да намерите дяла с вашата основна файлова система:

Grub> ls (hd0,5)/ lost+found/ var/ etc/ media/ bin/ initrd.gz boot/ dev/ home/ selinux/ srv/ tmp/ vmlinuz

Можете да отхвърлите идентификатора на типа на дял msdos, когато пишете името на дяла. Освен това, ако пропуснете наклонената черта в края на името на дяла и изпълните команда като ls (hd0,5) например, ще получите информация за дяла, включително информация за типа на файловата система, нейния общ размер и време на последното му изменение. Ако имате няколко основни дяла на вашия твърд диск, можете да прочетете съдържанието на файла /etc/issue с ​​командата cat, за да идентифицирате дистрибуцията по същия начин: cat (hd0,5)/etc/issue .

Ако приемем, че сте намерили правилната основна файлова система на дяла (hd0,5), трябва да се уверите, че тази файлова система съдържа директорията /boot/grub и изображение на ядрото на Linux, наречено vmlinuz-3.13.0-24- generic, което желаете за изтегляне. Сега, за да стартирате системата, просто трябва да въведете следните команди:

grub> set root=(hd0,5) grub> linux /boot/vmlinuz-3.13.0-24-generic root=/dev/sda5 grub> initrd /boot/initrd.img-3.13.0-24-generic

Първата команда съобщава на зареждащия GRUB 2 информация за дяла на твърдия диск, на който се намират разпределителните файлове за зареждане. Втората команда му предава информация за местоположението на файла с изображение на ядрото в посочения дял на твърдия диск, както и информация за местоположението на основната файлова система. Последният ред ви позволява да посочите местоположението на първоначалния файл с изображение на диска, чието съдържание се съхранява в паметта и се използва по време на процеса на зареждане на ядрото. Можете да използвате функцията за автоматично довършване, която ще ви спести много време и усилия при въвеждане на имената на файловете на ядрото и първоначалното изображение на диска.

Въвеждането на тези редове трябва да завърши с команда за зареждане след следващия поздрав grub>, което кара GRUB 2 да зареди посочената операционна система.

Стъпките ви трябва да са малко по-различни, ако срещнете поздрава grub rescue>. Тъй като зареждането на системата не успя да открие и зареди нито един от необходимите модули, ще трябва да ги заредите ръчно:

grub rescue> set root=(hd0,5) grub rescue> insmod (hd0,5)/boot/grub/normal.mod grub rescue> normal grub> insmod linux

Очевидно, както преди, след успешно използване на командата ls за намиране на основния дял на Linux, ще трябва да маркирате този дял с командата set. След това трябва да заредите нормалния модул, след което той ще се върне в стандартен режим с поздравителен grub> . Следната команда ви позволява да заредите модула на Linux, в случай че не е зареден автоматично. След като заредите този модул, можете да продължите да кажете на зареждащата програма местоположението на файловете с изображение на ядрото и първоначалното изображение на диска и да започнете зареждане на дистрибуцията с помощта на командата за зареждане.

След успешно изтегляне на дистрибуцията, не забравяйте за необходимостта от повторно генериране на конфигурационния файл GRUB 2 с помощта на командата:

Grub-mkconfig -o /boot/grub/grub.cfg

Вие също ще трябва да инсталирате копие на зареждащата програма в MBR с командата:

GRUB 2 и UEFI

Машините с UEFI фърмуер (т.е. почти всички машини, продадени през последните няколко години) добавиха ново ниво на сложност към процеса на диагностициране на проблеми с буутлоудъра GRUB 2. с UEFI фърмуера не се различава значително от процедурата за възстановяване на същия bootloader на машина без UEFI фърмуер, новите версии на фърмуера въвеждат различни промени, които причиняват различни резултати от процеса на възстановяване на буутлоудъра.

При базирани на UEFI системи няма да се налага да инсталирате нищо в MBR. Вместо това ще трябва да инсталирате стартиращ зареждащ модул на EFI на системния дял на EFI (ESP) и да изберете този буутлоудър като стандартен, като използвате инструмент като efibootmgr за Linux или bcdedit за Windows.

В момента буутлоудърът GRUB 2 трябва да се инсталира правилно по време на инсталационния процес на която и да е от популярните дистрибуции на Linux, което позволява на последната да съществува успешно с Windows 8. Въпреки това, в случай, че получите неработещ буутлоудър като резултат, вие може да възстанови работоспособността на системата с помощта на живо изображение на Linux дистрибуция. Когато зареждате изображение за разпространение на живо, трябва да се уверите, че зареждате в режим UEFI. Менюто за зареждане на компютъра трябва да съдържа два елемента за всеки от сменяемите носители - за зареждане в нормален режим и в режим UEFI. Използвайте последния режим за достъп до EFI променливи чрез файлове в директорията /sys/firmware/efi/.

От средата на живо монтирайте основната файлова система на неуспешната дистрибуция, както е описано в това ръководство. Ще трябва също да монтирате системния дял на EFI (ESP). Ако приемем, че даденият дял съответства на файла на устройството /dev/sda1 , тогава можете да монтирате този дял със следната команда:

sudo монтиране /dev/sda1 /mnt/boot/efi

След това модулът на ядрото на efivars трябва да се зареди с помощта на командата modprobe efivars, преди да се създаде chroot среда с основната файлова система на неуспешната дистрибуция по начина, описан в това ръководство.

Сега, ако използвате дистрибуция на Fedora, можете да преинсталирате буутлоудъра със следната команда:

Ммм преинсталирайте подложката grub2-efi

След това трябва да изпълните командата, за да генерирате нов конфигурационен файл за зареждане:

Grub2-mkconfig -o /boot/grub2/grub.cfg

Потребителите на дистрибуция на Ubuntu могат да извършат същата операция с командата:

apt-get install --reinstall grub-efi-amd64

След като възстановите буутлоудъра, трябва да излезете от средата на chroot, да демонтирате всички монтирани дялове на твърдия диск и да рестартирате компютъра, като отидете в менюто GRUB 2.

За да деактивирате скрипт от директорията /etc/grub.d, просто трябва да премахнете бита за изпълнение, като използвате команда, подобна на командата chmod -x /etc/grub.d/20_memtest86+, която ви позволява да премахнете "Memory Тест" ред от менюто за зареждане

Приятел, къде ми е GRUB?

Положителна характеристика на буутлоудъра GRUB 2 е възможността да го преинсталирате, когато е необходимо. По този начин, в случай че загубите буутлоудъра GRUB 2, например, след като Windows го замени със свой собствен буутлоудър, можете да възстановите GRUB 2, като извършите няколко операции в жива среда. Ако приемем, че сте инсталирали дистрибуцията на дял на твърдия диск, представен от файла на устройството /dev/sda5, можете да инсталирате отново буутлоудъра GRUB 2, като първо създадете директория за монтиране на основната файлова система на дистрибуцията с командата:

sudo mkdir -p /mnt/distro

След това трябва да монтирате файловата система от този дял, като използвате командата:

Монтиране /dev/sda5 /mnt/distro

След това можете да преинсталирате буутлоудъра GRUB 2 с командата:

Grub2-install --root-directory=/mnt/distro /dev/sda

Тази команда ще презапише информацията в областта на главния запис за стартиране на устройството /dev/sda, която съдържа файловата система на инсталираната дистрибуция на Linux, както и файлове за зареждане на GRUB 2 като grubenv и device.map.

Има и друг проблем, който често възниква при работа с компютри с инсталирани множество дистрибуции. Когато инсталирате нова дистрибуция на Linux, нейният буутлоудър трябва да извлече информация за вече инсталирани дистрибуции. В случай, че не извлече такава информация, можете просто да изтеглите най-новата инсталирана дистрибуция и да изпълните командата:

Grub2-mkconfig

Преди да изпълните тази команда, трябва да се уверите, че дяловете с коренните файлови системи на инсталираните дистрибуции, които не са представени в менюто за зареждане, са монтирани. Ако дистрибуцията, която искате да добавите към менюто за зареждане, работи с файловите системи /root и /home, разположени на отделни дялове на твърдия диск, трябва да се монтира само файловата система /root, преди да се изпълни командата grub2-mkconfig.

Докато буутлоудърът GRUB 2 може да открие повечето дистрибуции, опитът за добавяне на запис за дистрибуцията на Fedora към менюто за зареждане на дистрибуция на Ubuntu изисква една допълнителна стъпка. Ако сте използвали настройките по подразбиране при инсталиране на дистрибуция на Fedora, инсталаторът на Fedora ще създаде LVM дяловете. В този случай, преди да извикате скрипта os-prober, предоставен с GRUB 2 bootloader, за да добавите дистрибуцията на Fedora към менюто за зареждане, първо трябва да инсталирате драйвера lvm2, като използвате системата за управление на софтуерния пакет на дистрибуцията, като използвате подобна команда:

sudo apt-get install lvm2

Бърза поправка

Ако изпълнението на командата grub2-install не доведе до никакви положителни промени и не можете да стартирате дистрибуцията на Linux, ще трябва напълно да преинсталирате и конфигурирате зареждащата програма. За да изпълните тази задача, можете да използвате полезната помощна програма chroot, която ви позволява временно да промените главната директория на живата среда в основната директория на инсталацията на Linux, която искате да възстановите. Можете да използвате Live CD на всяка дистрибуция на Linux, която има помощната програма chroot за тази цел. Въпреки това, трябва да се уверите, че използвате Live CD за същата архитектура на процесора като дистрибуцията, инсталирана на твърдия диск. По този начин, ако искате да използвате помощната програма chroot за възстановяване на 64-битова инсталирана система, ще ви трябва Live CD за 64-битови системи.

След като стартирате средата на живо, първото нещо, което трябва да проверите, са дяловете на твърдия диск на машината. Използвайте командата fdisk -l, за да изброите всички дялове на твърдия диск и да разберете номера на дяла, на който е инсталиран буутлоудърът GRUB 2 и който искате да възстановите.

Да предположим, че трябва да възстановите зареждащия инструмент на дистрибуция, инсталирана на дял на твърдия диск, представен от файла на устройството /dev/sda5 . Отворете емулатор на терминал и монтирайте този дял:

sudo монтиране /dev/sda5 /mnt

Сега ще трябва да монтирате директориите, които трябва да са достъпни за GRUB 2 bootloader, за да откриете правилно други операционни системи, инсталирани на компютъра:

$ sudo монтиране --bind /dev /mnt/dev $ sudo монтиране --bind /dev/pts /mnt/dev/pts $ sudo монтиране --bind /proc /mnt/proc $ sudo монтиране --bind /sys /mnt /sys

Сега можете да напуснете средата на живо и да преминете към средата на дистрибуцията, инсталирана на дяла, представен от файла на устройството /dev/sda5, като използвате помощната програма chroot:

$ sudo chroot /mnt /bin/bash

Всичко е готово за инсталиране, проверка и актуализиране на буутлоудъра GRUB 2. Както и преди, за да го инсталирате отново, използвайте командата:

sudo grub2-install /dev/sda

Тъй като командата grub2-install не засяга конфигурационния файл grub.cfg, ще трябва да го създадете ръчно със следната команда:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Тази последователност от команди би трябвало да помогне за отстраняване на проблеми с буутлоудъра. Вашата машина вече ще има ново копие на GRUB 2 bootloader със списък на всички операционни системи и дистрибуции, инсталирани на него. Преди да рестартирате компютъра, трябва да напуснете chroot средата и да демонтирате всички използвани файлови системи в следния ред:

$ exit $ sudo umount /mnt/sys $ sudo umount /mnt/proc $ sudo umount /mnt/dev/pts $ sudo umount /mnt/dev $ sudo umount /mnt

След това можете спокойно да рестартирате машината, която отново трябва да бъде под контрола на GRUB 2 bootloader, който е под ваш пълен контрол!

Персонализирани опции на менюто за зареждане

Буутлоудърът GRUB 2 използва голям брой конфигурационни променливи. Този раздел описва някои от тези променливи, които вероятно ще искате да промените, докато преглеждате съдържанието на конфигурационния файл /etc/default/grub. Променливата GRUB_DEFAULT ви позволява да посочите елемента от менюто за зареждане, който ще бъде избран по подразбиране. неговите стойности могат да бъдат числа, като числото 0, съответстващо на първия елемент от менюто, както и низът "saved", който автоматично избира елемента от менюто, който е бил използван при последното зареждане на компютъра. Променливата GRUB_TIMEOUT ви позволява да зададете продължителността на времето за изчакване преди стартиране, като използвате елемента от менюто по подразбиране, а променливата GRUB_CMDLINE_LINUX ви позволява да зададете списък с опции, които ще бъдат предадени на всяко от ядрата на Linux, когато използвате съответните елементи от менюто за зареждане .

Ако променливата GRUB_DISABLE_RECOVERY е настроена на true , елементите от менюто за зареждане за възстановяване на системата няма да бъдат генерирани. Тези елементи ви позволяват да зареждате дистрибуции в режим на един потребител, в който можете да използвате всички налични инструменти за интерфейс на командния ред, за да възстановите вашата система. Друга полезна променлива е променливата GRUB_GFXMODE, която ви позволява да зададете разделителната способност на екрана, която ще бъде зададена, когато се покаже менюто за зареждане. Тази променлива може да бъде зададена на всяко описание на разделителната способност, поддържана от вашата графична карта.

Персонализирани елементи от менюто за зареждане

Ако искате да добавите елемент към менюто на зареждащото устройство, трябва да добавите съответната строфа към скрипта с име 40_custom. Можете да използвате този елемент от менюто за зареждане, например, за да стартирате дистрибуция на Linux, инсталирана на сменяемо USB устройство. Ако приемем, че дялът за разпространение на вашето преносимо USB устройство е /dev/sdb1 и файлът с изображение на ядрото vmlinuz и файлът initrd са в поддиректория на основната директория (/), ще трябва да добавите следната строфа към файла 40_custom:

Меню "Linux на USB" (задайте root=(hd1,1) linux /vmlinuz root=/dev/sdb1 ro тихо в splashitrd /initrd.img )

За по-добра съвместимост можете да използвате UUID на дяла на твърдия диск вместо идентификаторите на устройството и дяла, както следва:

Задайте root=UUID=54f22dd7-eabe

Използвайте командата sudo blkid, за да получите всички UUID на твърди дискове и дялове, свързани към системата. По същия начин можете да добавяте записи към менюто за зареждане, съответстващи на всеки идентифициран скрипт на os-prober, но дистрибуции, инсталирани на твърдия диск, разбира се, ако знаете на кой диск е инсталирана всяка от дистрибуциите и по какъв път нейните файлове с изображение на ядрото са разположени и изображение на първоначалната файлова система.

Буутлоудърът се използва за инициализиране на ядрото и стартиране на операционната система Linux. Това е програма, която се изпълнява след приключване на хардуерната проверка на BIOS, подготвя хардуера за работа, задава необходимите параметри на ядрото и ви позволява да изберете операционната система. Основната задача на буутлоудъра е да позволи на потребителя да избере операционната система за зареждане.

Преди това за зареждане на Linux бяха използвани няколко буутлоудъра, това са isolinux, lilo, grub. Но сега най-често се използва Grub или пълното му име GRand Unified Bootloader. Тази статия ще обхване инсталирането на Grub bootloader през терминала. Ще говорим и за това как да инсталирате grub на компютър с UEFI, също ръчно.

Както казах, основната задача на буутлоудъра е да осигури възможност за избор на операционна система преди зареждане. Не си мислете, че Windows не използва буутлоудъра, той също е там и работи, подобно на това как работи Grub.

Буутлоудърът може да бъде инсталиран в различни таблици на дискови дялове. Сега най-използваните са GPT и MBR. Инсталирането на Grub bootloader е малко по-различно за всяка от тези таблици, като се имат предвид техните специфики. Можете да прочетете повече за разликите в отделна статия. Веднага ще кажа, че GPT е по-нова и по-функционална таблица на дялове, MBR вече е остарял, но все още често се използва.

Има няколко опции в MBR, Grub се записва в MBR зоната на диска. Размерът на MBR сектора заема първите 512 байта и това е напълно достатъчно, за да инсталирате буутлоудъра там.

GPT предоставя повече опции. Първо, за съвместимост, GPT емулира MBR сектора и можем да инсталираме GRUB там, но тази опция е много ненадеждна и не се препоръчва. Второ, сега е възможно да инсталирате Grub на дисков дял. Просто създаваме дял на диска с размер 1 MB и записваме там това, което е било написано по-рано в MBR, това прави инсталацията на зареждащия механизъм по-надеждна и безопасна от повреди.

UEFI предоставя напълно различен начин за инсталиране на буутлоудъра. Тук не е необходимо да се пише никъде, буутлоудърът е обикновено EFI приложение, което е поставено на EFI дяла и вече работи успешно там заедно с други приложения.

Във всички случаи командата grub-install ще се използва за инсталиране на Grub. Нека да разгледаме набързо неговия синтаксис и опции. Синтаксис:

$ устройство с опции за инсталиране на grub

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

  • --компресирайте- компресиране на файлове за зареждане;
  • --install-modules=модули- инсталирайте само тези модули;
  • --модули- запишете тези модули в MBR;
  • -- директория за зареждане- използвайте различна директория за Grub файлове;
  • --идентификатор на зареждащия- име на bootloader в менюто на EFI;
  • --core-compress- компресирайте изображението, заредено в MBR;
  • --efi-директория- използвайте системния дял на EFI;
  • -- сила- инсталиране въпреки грешки;
  • -- проверете отново- изтриване на съществуваща карта на устройството, помага при възникване на грешки;
  • -- подвижен- инсталиране на grub на флаш устройство (само EFI);

Базата е демонтирана. Сега да преминем към инсталацията. Освен това ще приема, че всички действия се извършват от системата, за която трябва да инсталирате буутлоудъра или от chroot средата на тази система.

Инсталиране на Grub bootloader в MBR за BIOS

Нека започнем с най-простото и познато. Тази инструкция как да инсталирате Grub bootloader е подходяща за всяка дистрибуция, тъй като командите са почти еднакви навсякъде. Не е необходимо да инсталирате допълнителни пакети или да създавате дялове. Инсталирането на Grub на твърдия диск се извършва с командата:

sudo grub-install /dev/sda

sudo grub2-install /dev/sda

Помощните програми grub в различни дистрибуции могат или не могат да включват двойка. Тук /dev/sda е вашият твърд диск. Сега генерираме конфигурационен файл, така че инсталираните операционни системи да се откриват автоматично:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Готов. По отношение на двойката ето същата забележка. Ако искате да инсталирате Grub на флаш устройство в MBR, тогава също няма проблем, просто монтирайте флаш устройството и изпълнете следната команда:

sudo grub-install --root-directory=/mnt/USB/ /dev/sdb

Тук /mnt/USB е папката, в която е монтирана вашата флаш памет, а /seb/sdb е самото флаш устройство. Само тук има един проблем, конфигурационният файл ще трябва да се направи ръчно.

Задаване на зареждащата програма Grub на GPT за BIOS

Първо, не можем да направим нищо и да инсталираме Grub, както е описано в предишния метод. Но тогава той ще бъде инсталиран в областта на съвместимост с MBR и това не е надеждно. Затова се препоръчва да инсталирате grub, както е описано по-долу, на отделен дял.

Необходимият ни дял може да бъде създаден в инсталатора на всяка дистрибуция, ако инсталирате в графичен интерфейс или използвате gparted. Нуждаем се от 1 MB дял без файлова система и с етикет grub_bios:

Готов. Ако нямате достъп до удобен графичен интерфейс, можете да създадете такъв дял през терминала. Помощната програма fdisk не поддържа gpt, така че ще използваме gfdisk. Първо стартирайте помощната програма:

sudo gdisk /dev/sda

За да създадете нов дял, натиснете n и изберете номера на дяла:

Съгласни сме с първоначалния сектор, ще се използва първият безплатен:

Изберете крайния сектор на дяла. По подразбиране ще бъде макс. Нуждаем се от 1MB дял. Размерът на един GPT сектор е 512 байта, така че се нуждаем от раздел с размер на сектора 2048. Така че крайният сектор ще бъде 24000 нещо.

HEX код - това е кодът, който ще каже на системата, че този дял трябва да се използва за Grub, трябва да инсталирате ef02:

Готово, остава да натиснете w, за да запишете промените на диска:

sudo grub-install /dev/sda

Остава да създадете конфигурационния файл grub:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Сега нека да преминем към най-трудната част, как да инсталирате grub efi.

Инсталиране на GRUB UEFI GPT

Инсталирането на Grub UEFI донякъде прилича на инсталирането в GPT, тук също ще имаме отделен дял, само че този път не за буутлоудъра, а за EFI дяла. Ако вече имате инсталиран Windows, най-вероятно той вече съществува. Този дял обикновено е 100 MB, има файлова система fat32 и ESP флаг. Ето как ще изглежда:

Ако няма такъв дял, можем да го създадем с gparted. За да направите това, създайте раздел със следните параметри:

Размер 100 MB, име на дял ESP, файлова система мазнини 32. След това приложете промените и задайте флага за секцията ESP:

Можете да направите същото в Gdisk, само че този път трябва да зададете HEX кода на дяла ef00. След като дялът е създаден, ние го свързваме към нашата файлова система:

sudo mkdir /boot/efi
$ sudo монтиране /dev/sda2 /boot/efi

sudo apt инсталирате grub-efi efibootmgr

grub-инсталиране /dev/sda

Инсталирането на Grub efi на MBR изглежда абсолютно същото, само че има няколко ограничения. ESP дялът трябва да се създава само в началото на диска. В режим EFI можете също да инсталирате GRUB на флаш устройство и това не е много трудно. За това се използва командата.

Въпреки факта, че операционната система Linux заема малък пазарен дял, различните й компилации набират популярност със своята официална безплатна, доста стабилна работа, както и значителна гъвкавост в настройките. Да, някои неща работят по различен начин от Windows или Mac OS и повечето софтуери са създадени предимно за тези два продукта. Но това не спира всички.

Linux трябва да възстанови буутлоудъра на Grub, ако се срине.

Въпреки че почти всяка компилация на Linux работи гладко, понякога може да възникне грешка при зареждане, което прави невъзможно стартирането на операционната система. Поради какви причини това може да се случи? Как да поправя Grub bootloader в Linux? Какви методи на работа съществуват? Ще говорим за всичко това и дори малко повече в днешната статия.

След като инсталирате Linux на твърдия диск на вашия компютър, всички файлове се копират в отделни папки. Някои директории съхраняват файлове за общ софтуер, които могат безопасно да бъдат премахнати. В други се записват файлове, без които операционната система няма да работи. Това включва ядрото на Linux, графичната обвивка и зареждащата програма Grub. Именно последният се използва за стартиране на инсталираната операционна система. Как се случва това?

В специален дял за зареждане системата създава главен запис за зареждане. Английската му абревиатура изглежда като MBR и означава Master Boot Record. Когато компютърът стартира, BIOS получава достъп до този запис, след което Grub поема и когато всичко е наред, Linux стартира. И ако буутлоудърът е повреден, при стартиране ще възникне грешка и системата няма да стартира.

Поради какви причини това може да се случи? По-голямата част от случаите се дължат на факта, че след като инсталирате Linux като първа система, инсталирате Windows като вторична. Microsoft традиционно не харесва Linux, така че инсталаторът на Windows премахва Grub Linux. Същият проблем може да възникне, когато самият Linux е инсталиран неправилно, при преминаване към друга дистрибуция или поради преразпределяне на диска.

Най-важното нещо, което трябва да имате предвид, е, че не е нужно веднага да мислите за преинсталиране на цялата система. Достатъчно е само да възстановите Grub и всичко ще работи както преди. Нека да преминем към разглеждането на най-ефективните методи, достъпни дори за неопитни потребители.

Чрез терминал от стартиращ носител

За да направите това, ще ви трябва стартиращо USB флаш устройство или диск със записана Linux дистрибуция. В идеалния случай тя трябва да е подобна на системата, инсталирана на твърдия диск. Но ако дистрибутивният комплект не е най-важната точка, тогава битовата дълбочина трябва да съвпада във всеки случай. В противен случай това е изпълнено с още по-големи последици, в резултат на което определено ще трябва да преинсталирате всичко.

  1. Поставете USB флаш устройство или диск в конектора на компютъра и след това приоритетно за стартиране. Необходимата настройка се намира в секцията Приоритет на устройството за зареждане или Първо устройство за зареждане. За да стартирате BIOS, когато го включите, натиснете желания бутон или комбинация от тях на клавиатурата. Най-популярните опции са F2, Del, Shift + F2, F10. За да не се занимавате с BIOS, можете просто да натиснете F11 или F12 и да изберете носителя от предоставения списък.
  2. След това трябва да разберете на кой дял на твърдия диск е инсталирана системата и кой е посочен като зареждащ. За да направите това, трябва да стартирате терминала (аналог на командния ред на Windows), като го намерите в менюто на приложението или като натиснете клавишната комбинация Ctrl + Alt + T или Alt + F2. В прозореца, който се отваря, ще трябва да въведете командата sudo fdisk -l. Веднага помощната програма ще сканира всички дискови дялове и ще покаже информация за всеки от тях. Ще се покаже дори информация за други операционни системи, инсталирани на компютъра. Можете да разберете името на дяла, неговото местоположение, размер и типа на неговата файлова система. При условие, че когато инсталирате Ubuntu, сте направили маркирането ръчно, лесно ще разберете кой от дяловете може да се стартира и кой е root. За автоматично разделяне се ръководете от името на Linux. Той е този, който ще бъде коренът на вашата система. Името на дяла обикновено се състои от съкращението sdc или sda и число със сериен номер.
  3. След това трябва да монтирате главната файлова система в папката /mnt. За това ще ви помогне командата sudo mount /dev/sda1 /mnt, където трябва да напишете името на вашия дял вместо sda.

Започвайки от този етап, има два метода за възстановяване на Grub в Linux.

Метод 1

  1. Въведете командата за ремонт на буутлоудъра: sudo Grub-install -root-directory=/mnt /dev/sda.
  2. Рестартирайте компютъра с командата sudo reboot. В резултат на това трябва да се появи менюто за избор на ОС.
  3. Ако това меню показва остаряла информация, актуализирайте MBR за зареждане. За да направите това, стартирайте Linux нормално, отворете терминал и използвайте командата sudo update-grub. Ако това не помогне, стартирайте sudo update-Grub --output=/mnt/boot/Grub/Grub.cfg и след това повторете предишното.
  4. Рестартирайте компютъра си отново.

Метод 2.

  1. След като монтирате корена на файловата система към /mnt дяла, трябва допълнително да монтирате папката с файлове за зареждане, както и други компоненти за взаимодействие с ядрото. За да направите това, изпълнете следните команди една по една:

sudo монтиране /dev/sdc2 /mnt/boot

sudo монтиране --bind /dev /mnt/dev

sudo монтиране --bind /sys /mnt/sys

sudo монтиране --bind /proc /mnt/proc

  1. След това ще трябва да стартирате chroot обвивка. За да направите това, добавете chroot /mnt /bin/bash в терминала. Първият параметър обръща внимание на главната директория, а вторият - на специалната обвивка за конвертиране на потребителски команди.
  2. След това трябва да приложите команди, за да влезете в Ubuntu и да използвате почти всички негови приложения, с изключение на услугите и графичния интерфейс:

източник /etc/profile.

  1. Сега можете да продължите директно към възстановяването на Grub. За да направите това, трябва да използвате няколко команди:
    • За да инсталирате отново буутлоудъра на твърдия диск: sudo Grub2-install /dev/sdc (последният параметър е името на вашия дял).
    • За да създадете нов конфигурационен файл: sudo Grub2-mkconfig -o /boot/Grub/Grub.cfg.
    • За да актуализирате менюто за зареждане: sudo Grub-update.
  2. За да завършите процедурата, излезте от chroot обвивката с помощта на командата exit и също така демонтирайте монтираните по-рано дялове на файловата система:

sudo umount /mnt/dev

sudo umount /mnt/proc

sudo umount /mnt/sys

sudo umount /mnt

sudo umount /mnt/boot.

  1. Рестартирайте чрез рестартиране.

Чрез помощната програма за ремонт на буутлоудъра

Тъй като предишният метод може да не е възможен за всеки, ще използваме функцията на Ubuntu, че може да работи напълно, когато се стартира от USB флаш устройство. За да направите това, ще използваме специалната помощна програма за възстановяване на зареждане. Какво трябва да се направи?

  1. Стартирайте Ubuntu от флаш устройство и се уверете, че имате активна интернет връзка.
  2. Намерете терминал и изпълнете следните команди в него една по една:

sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-получи актуализация

sudo apt-get install boot-repair.

  1. В менюто на приложението намерете "Recovery bootloader" и активирайте помощната програма.
  2. Кликнете върху бутона „Препоръчан метод за възстановяване“ и изчакайте процедурата да завърши.
  3. В повечето ситуации тези действия са напълно достатъчни за нормалната работа на Grub Linux bootloader.

Чрез командния ред с частичен достъп до файловата система

Понякога буутлоудърът на Grub не е толкова силно повреден, че цялата система да не може да се зареди. Например дялът за зареждане остава непокътнат, но самата помощна програма няма достъп до него. В този случай се отваря програмна обвивка, донякъде подобна на командния ред, и се показва следното съобщение: Поддържа се минимално редактиране на ред като BASH. Тук, като използвате този команден ред, можете да опитате да стартирате Ubuntu.

Очаква се да сте сигурни и да знаете точно на кой от твърдите дискове са поставени системата и ядрото. Има само четири налични команди, те трябва да се прилагат последователно:

  1. За да може системата да сканира дискове и дялове, изпълнете командата ls. Като отговор ще получите списък с твърди дискове (например hd1, hd2), както и вида на файловата система на тях (например msdos1, msdos2). Например, нека приемем, че дялът за зареждане се намира в /dev/sda1.
  2. След това трябва да изберете секцията, с която искате да работите. В нашия случай командата ще бъде написана по следния начин: set root=(hd1,1).
  3. Заредете нормалната обвивка на Grub: insmod ext2, insmod normal, normal.
  4. Стартирайте ядрото на Linux: linux /boot/vmlinuz.
  5. Стартирайте системата: boot.
  6. След като стартирате Ubuntu в нормален режим, отворете терминал и завършете процедурата за възстановяване на буутлоудъра със следните команди:

sudo Grub2-инсталиране /dev/sda

sudo Grub2-mkconfig -o /boot/Grub/Grub.cfg.

  1. Рестартирайте и се насладете на нормална работа.

Заключение

Въпреки че на пръв поглед възстановяването на Grub bootloader в Ubuntu може да изглежда като нещо много сложно и много от потребителите на Linux веднага ще започнат да преинсталират операционната система с подобен проблем, с правилните инструкции, всичко е много просто и без никакви усложнения. Надяваме се, че можем да ви помогнем да избегнете загубата на важна информация. Маркирайте тази страница и споделете тази информация с вашите приятели и познати. Оставете вашите въпроси в коментарите.

Задача: Имам компютър с две системи: Windows 7 и Ubuntu 14.04
Трябва да актуализирате версията на Windows до 10 и Ubuntu до 16.04
Като начало трябваше да инсталирам лицензиран Windows вместо това, което беше и да го актуализирам до последната версия - десетки.
Изображението на седемте е изтеглено от уебсайта на Microsoft, качено на USB флаш устройство с помощта на безплатна и безплатна програма Руфъс, Windows беше успешно инсталиран от това флаш устройство и след това актуализиран до 10.
Сега задачата е да възстановим GRUB, тъй като Windows, разбира се, изтри буутлоудъра, като инсталира свой собствен, който не иска да знае за никакъв Linux :) Задачата се усложнява от факта, че съвременните дънни платки не съдържат BIOS, а UEFI - по-усъвършенствана локална операционна система. И точно както преди, не можете глупаво да инсталирате GRUB на челото.

След като погуглих малко този въпрос, намерих решението под формата на програмата Boot-Repair.
Сканира дискове за операционни системи и инсталира GRUB, с формиране на желаното меню и всички необходими настройки.
Има два начина за работа с тази програма:
Първият начин е да стартирате от Ubuntu USB флаш устройство или LiveCD, да инсталирате и стартирате тази програма:
Отворете терминала (Ctrl+Alt+T), копирайте и изпълнете следните команди:
sudo add-apt-repository ppa:yannubuntu/boot-repair
След това актуализирайте източниците:
sudo apt-получи актуализация
Следната команда ще инсталира Boot-Repair:
sudo apt-get install -y boot-repair
След това програмата може да се стартира по обичайния начин за Ubuntu, чрез системното меню.
Втори начин - изтегляне образ на диска с тази програма, качете го на USB флаш устройство или компактдиск, стартирайте от него и възстановете буутлоудъра. Избрах втория вариант като по-практичен. Никога не знаеш къде другаде може да ти потрябва. Изтегли и го качи на флашка със същото Руфъс-ом.
Не знам как е с LiveCD, но ако стартирате от флаш устройство на дънни платки с UEFI, трябва да стартирате в режим UEFI, в противен случай програмата ще откаже да възстанови GRUB. И точно тук ви очаква възможен капан. Вместо обичайния избор на език и опции за зареждане, на екрана виждаме менюто GRUB на черен фон с ред на единствената опция за стартиране.
Ако стартирате от USB флаш устройство с Ubuntu, имаме меню с две опции:
- Стартиране на Ubuntu без инсталация
- Инсталиране на Ubuntu.
Във всички тези случаи, когато избирах някакъв елемент, имах черен екран със замръзване. Тоест системата не можа да вземе видео режима и изпадна в ступор.
Този проблем се решава по следния начин: Трябва да изберете желания елемент от менюто в GRUB, натиснете клавиша "e", за да влезем в редактора на реда за стартиране, след това в края на реда, който е най-дългият, преди "-- " трябва да добавите параметъра nomodeset. След това натиснете F10. Системата ще стартира в опростен графичен режим с английски като език по подразбиране.
Програмата предлага препоръчителни работни параметри. В повечето случаи това е достатъчно. Напредналите потребители могат да избират приоритета на зареждане на операционната система и времето за изчакване на избор в разширените опции.
в процеса трябва да направите всичко, което програмата изисква. Процесът е прост и визуален. Когато възстановяването приключи, ще видите съобщение, че буутлоудърът е възстановен и можете да рестартирате компютъра си.

Оригинал: Как да поправите Grub Boot Loader на Ubuntu Linux 16.04 / 15.10 / 15.04
Автор: Аун
Дата на публикуване: 21 юни 2016 г
Превод: А. Кривошей
Дата на прехвърляне: октомври 2016 г

Grub (GRand Unified Bootloader) е зареждащата програма по подразбиране за повечето Linux/Unix системи. Тя ви позволява да стартирате различни операционни системи (можете да инсталирате няколко системи на вашия компютър) или да стартирате различни версии на ядрото, ако сте на Linux. Ако тази програма е повредена по някакъв начин, ще получите съобщения за грешка по време на процеса на зареждане и в резултат на това най-вероятно няма да можете да стартирате операционната си система. По правило единственият начин за възстановяване на нормалната работа в такъв случай е възстановяването или преинсталирането на зареждащия инструмент Grub. Когато се извърши правилно, тази процедура избягва загуба на данни. Днес ще научим как да поправим/преинсталираме зареждащата програма Grub на Ubuntu система. Стъпките по-долу са извършени на Ubuntu 16.04, но трябва да работят и върху всяка сравнително скорошна версия на Ubuntu. За да изпълним нашата задача, ще използваме добре познатата помощна програма "Boot Repair".

Инсталиране на Boot Repair в Ubuntu

Boot Repair най-често се използва за коригиране на грешки, свързани с Grub bootloader. Първо трябва да стартирате компютъра си от Live CD/DVD/USB за Ubuntu (ако търсите начин да възстановите Grub, най-вероятно вече не можете да стартирате инсталираната си операционна система).

$ sudo add-apt-repository ppa:yannubuntu/boot-repair

След като добавите PPA, актуализирайте списъка с пакети:

$ sudo apt-получи актуализация

Сега можете да инсталирате Boot Repair:

$ sudo apt-get install -y boot-repair

След като инсталацията приключи успешно, стартирайте Boot Repair от Applications > Boot Repair:

Използване на поправка при зареждане за коригиране на грешки в Grub

След стартиране на Boot Repair, ще видите стартовия прозорец на програмата:

Първата опция (Препоръчан ремонт) може да коригира грешките на Grub, щракнете върху нея и тя ще започне процеса на ремонт/преинсталиране, показан на екранната снимка по-долу.

Съгласно инструкциите, дадени на екранната снимка, отворете терминал и изпълнете следните три команди:

След като изпълните тези команди, щракнете върху „Напред“, за да преминете към следващата стъпка в процеса на възстановяване. Ето какво ще видите в следващата стъпка:

Изпълнете трите команди по-долу в правилния ред според инструкциите. По време на тази стъпка ще се появи прозорец с молба да потвърдите премахването на Grub 2, изберете "Да".

$ sudo dpkg --configure -a $ sudo apt-get install -fy $ sudo apt-get install -y --force-yes grub-pc linux-generic

Щракнете върху „Напред“, след като завършите процеса, по-долу е екранна снимка на следващата стъпка.

Изпълнете следната команда в терминала според инструкциите и, когато бъдете подканени, посочете твърдия диск, където ще бъде инсталиран grub.

$ sudo apt-get install -y --force-yes grub-pc linux-generic

Сега трябва да изчакате няколко минути, за да завършат необходимите операции и трябва да видите следното съобщение:

Рестартирайте системата си и трябва да видите менюто за зареждане.

Заключение

Grub не работи може да бъде причинено от различни причини, особено ако имате инсталирани няколко операционни системи, могат да възникнат различни грешки при актуализирането или инсталирането им. Ето защо е полезно да имате под ръка такава отлична и безплатна програма за решаване на проблеми с буутлоудъра.

Дял