Восстановление grub

Содержание:

Система Ubuntu не загружается

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

  1. Первое самое очевидное — у вас сломался жесткий диск, на который установлена система. Тут все ясно и починить вряд ли что-то получится. Надо менять диск и переустанавливать на новый диск систему. Далее не буду рассматривать этот случай.
  2. Возникли проблемы с загрузчиком grub, который запускается перед загрузкой основной системы. Вы в него попадаете, но дальше видите какие-то ошибки, чаще всего связанные с тем, что не найден корневой раздел системы, поэтому загрузка невозможно. С этими же проблемами вы можете оказаться в режиме recovery mode, где можно выполнить какие-то действия.
  3. У вас поврежден загрузчик, с которого начинается загрузка системы после старта компьютера. Это небольшая область в начальных секторах жесткого диска. Если с загрузчиком проблемы, то загрузка даже не начинается и вы сразу получаете ошибку на тему того, что с данного жесткого диска невозможно загрузиться.

Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.

Восстановление Grub с помощью утилиты Boot repair

С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

  • Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
  • Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.

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

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair

В утилите будет доступно два варианта на выбор:

Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

Настройка Grub через /boot/grub/grub.cfg

Файл /etc/boot/grub/grub.cfg управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Поэтому, изменяя этот файл, мы можем настроить Grub как угодно. Сначала попытаемся разобраться с синтаксисом файла. Он очень напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают.

Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash. Рассмотрим основные из этих команд:

  • load_env — загрузить переменные окружения из файла;
  • set — установить значение переменной окружения. Используется как set имя_переменной=значение;
  • insmod — загрузить модуль из папки с модулями Grub;
  • linux — загружает ядро Linux;
  • initrd — подготавливает образ initrd для загрузки ядра;
  • boot — пытается загрузить систему;
  • chainloader — запускает загрузчик из другого раздела;
  • search — установить значение переменной выполнив поиск по заданным параметрам, например, может найти диск по его UUID или метке;
  • menuentry — позволяет создать пункт меню;

Это все команды, которые вам понадобятся. Но две последние нужно рассмотреть подробнее, так как они будут использоваться чаще всего.

Команда search используется для поиска дисков и имеет такой синтаксис:

$ search опции_поиска —set=имя_переменной —hint приметы_устройства основной_параметр

  • Опции поиска задают по какому критерию нужно искать, например, —fs-uuid — искать по UUID, —label — по метке, —no-floppy — не искать в схемных носителях.
  • Приметы устройства дают программе дополнительные подсказки для более быстрого поиска;
  • Основной параметр — значение, по которому будем выполнять поиск.

Например, команда может выглядеть вот так:

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

menuentry имя_пункта {команды установки переменных окружениязагрузка модулейlinux файл_ядра параметры_ядраinitrd файл_initrd}

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

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

# Время показа меню 5 секунд

set timeout=5

# Установим разрешение экрана и укажем что это же разрешение нужно сохранять для ядра:

set gfxmode=»1280×800″
set gfxpayload=keep

# Загрузим необходимые модули для работы видео режима, нужно для использования фоновой картинки

insmod vbe
insmod gfxterm
terminal_output gfxterm

# Установка шрифта с поддержкой Unicode:

font «/boot/grub2/fonts/unicode.pf2»
loadfont unicode

# Загрузим модуль работы с jpeg и зададим фоновый рисунок:

insmod jpeg
background_image «/boot/fon.jpg»

# Установим переменные окружения для настройки цвета меню:

set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black

menuentry «Ubuntu» {
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
}

menuentry «OpenSUSE» {
insmod gzio
insmod part_msdos
insmod ext2
set root=’hd0,msdos5′
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default
}

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

Программа настройки Grub — это хорошо, но также важно понимать как все работает на низком уровне

Rescue mode

Процесс восстановления в режиме grub rescue происходит в несколько этапов.

Загрузите все модули, чтобы доступ к функциям системы открылся.

Rrescue mode имеет четыре команды

Сначала включаем первую:

После этого на экране появится подобное:

Иногда система Grub неверно определяет файловые системы на дисках. Попытайтесь угадать диски, которые видите. Это не составит труда зная их структуру.

В примере видно, что загрузчик показывает их как msdos, где два доступных диска. На первом три раздела, а на втором два.

Обычно загрузчик нумерует разделы в обратном порядке. Чтобы было понятнее используйте вид hd0,1. Если в Grub отсчет разделов идет с 1, а дисков с 0, то сразу будет понятно в какой раздел установлена операционная система. Применяем следующую команду:

Так система будет использовать конкретный диск для выполнения всех предыдущих операций. Для проверки наличия загрузчика на данном диске выполняем следующие действия:

О том, что все сделано правильно подскажет появление списков и папок.

Для загрузки всех необходимых модулей выполните команды:

После этого система будет работать в полноценном режиме.

Для закрепления результата зайдите в терминал Linux и с root-правами выполните следующую команду:

sdX — диск, на который должен быть установлен Grub.

При расположении ОС в разделе btrfs выполните другое действие:

Затем подгрузите модули

И запустите Grub:

Данная утилита позволяет запускать систему быстро и без проблем.

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

Иногда загрузчик Grub повреждён не настолько сильно, что не может загрузиться вся система. Например, загрузочный раздел остаётся целым, но сама утилита не имеет к нему доступа. В таком случае открывается программная оболочка, чем-то похожая на командную строку, и выводится сообщение следующего содержания: Minimal BASH like line editing is supported. Вот с помощью этой командной строки можно попробовать выполнить загрузку 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 в обычном режиме откройте терминал и закончите процедуру восстановления загрузчика следующими командами:
  1. Перезагрузитесь и радуйтесь нормальной работе.

Interview

  • Q: Tell us about Rescatux. Where, how and why?
  • A: Before Grub2 was the norm there was Grub which was able to edit minimally your system (install grub on the mbr). I develop a GUI around it named Super Grub Disk, later on I improved it by modifying its source code. But then Grub2 started to be used by default in many distributions. Super Grub2 Disk was born, a GUI around Grub2 but, guess what, it couldn’t install grub on the mbr. So a live cd was needed and I started to tinker with Rescatux around 2010.
  • Q: For those people that still do not know Rescatux, can you please explain what Rescatux is?
  • A: It’s a Debian GNU/Linux based live cd aimed at rescue tasks. It features Rescapp a graphical wizard for helping to recover your system.
  • Q: Why did you choose the Rescatux name?
  • A: In Spanish it might mean Rescate Linux. And in English Rescue a Tux computer. I also wanted one single name (contrary to the three words from Super Grub2 Disk).
  • Q: Who’s in charge of the development?
  • A: Most of the development is done by me, adrian15. Many people have helped all along these almost ten years.
  • Q: What’s the Rescatux target audience?
  • A: GNU/Linux newbies such as Ubuntu users in 2015 and MX Linux users in 2020. It’s also targeted to repair technicians and, of course, distro hoppers.
  • Q: What are the main difficulties on developing Rescatux?

    • A1: Lack of time.
    • A2: When I’m able to build on Debian 9, then Debian 10 appears and I have to rethink all of it.
    • A3: live-build, one of the Debian tools for making live cds was not as good as I needed it to be and I needed to improve it, then push back the changes to upstream.
    • A4: Getting useful feedback from people who uses Rescatux (even having an integrated chat) is difficult.
    • A5: Nobody has steped in to add CI/CD and check if Rescatux always fixes the same problems. We would need something similar to what ReactOS and Tails do on their projects.
    • A6: Lack of contributors. This is not a tool where, as a developer, you can learn useful skills for your everyday work unless you are GNU/Linux repair technician.
    • A7: I prefer QT but Gparted, Firefox and other projects are based on GTK and make Rescatux iso slightly bigger.
    • A8: UEFI, Secure Boot and what not. We live in a time where old BIOS systems and new UEFI systems are available. Both need to be supported and also Secure Boot. And trying to test Secure Boot in a virtual machine is not easy. You cannot use Virtualbox but you need to setup and user KVM/Qemu in special ways. And many UEFI firmwares are not very well programmed.
  • Q: What are the main collaborations or help you received on Rescatux ?
  • A: The most recent contributor is cjg67 which helped a lot on improving written English in Rescapp. It’s also nice that many Linux magazines write articles about it and even record DVDs with Rescatux in them.
  • Q: Can you tell us anything about the Rescatux future?
  • A: Rescapp, the main Rescatux program is stable. It might need some options reorganisation (feedback is welcomed) or some documentation rewriting. But it is stable. My mid term goal on Rescatux is bringing back my work on live-boot, live-build, liveid, chntpw (which I will fork), and rescapp back to Debian. If one such goal is achieved one could be able to install rescapp on a Debian live cd thanks to the apt-get command.

Способ первый: утилита Boot Repair

Во-первых, вам нужно добавить репозиторий. Введите:

После установки найдите приложение в меню «Приложения» и кликните, чтобы запустить.

После запуска утилиты выберите тип восстановления. Для большинства случаев это будет рекомендуемое восстановление.

Когда утилита завершит работу, вы сможете загрузить свою систему и выбрать либо Windows, либо Linux из меню GRUB. Запуск утилиты также позволит вам изменить или изучить некоторые другие опции, если вам требуется более сложное восстановление загрузки. Кликнув «Restore MBR», вы сможете использовать вкладку MBR.

Если вы застряли, у Ubuntu есть руководство на их сайте.

See also

  • In Chainloading the use of GRUB2 to boot other boot loaders is described. This is important to read when dual-booting systems, or when GRUB2 needs to be configured to boot ISO files.
  • In Advanced storage the necessary steps are documented on how to install and use GRUB on more advanced storage situations, such as software RAID, logical volumes or encrypted file systems.
  • In Configuration variables an exhaustive list of GRUB configuration variables, as used by /etc/default/grub, is documented.
  • In Troubleshooting a list of common GRUB errors (with their solutions) is presented.
  • In Hybrid partition table the use of a mixed MBR/GPT setup is documented, as well as how to use such hybrid partition layout with GRUB.

Инструкция по настройке загрузчика GRUB

/Для загрузки Linux-систем (как впрочем и любой другой UNIX-подобной системы) существует универсальный загрузчик GRUB – GRand Unified Boot loader. Он обладает довольно широким функционалом. Позволяющим не только осуществлять корректную загрузку операционных систем (ОС), но и управлять непосредственно конфигурацией и самим процессом загрузки в интерактивном режиме. В деятельности, связанной с системным администрированием знание возможностей GRUB и умение их применять очень часто экономит в различных и нестандартных ситуациях огромное количество времени системным администраторам.

Features

Rescatux 0.73 supports booting from UEFI Secure Boot and traditional BIOS. Both amd64 and 686 systems are supported.

Rescatux
includes Rescapp, a graphical rescue tool that will assist users to
regain access to a computer that has become non-bootable among many
other features.

GNU/Linux options

  • Change Gnu/Linux Password : Change a user’s password
  • File System Check (Forced Fix) : File System Check (Forced Fix)
  • Easy GNU/Linux Boot Fix : Fsck partition, update grub menues, restore GRUB into the MBR and order UEFI entries
  • Restore Grub : Restore GRUB into the MBR
  • Regenerate sudoers file : Define a new sudoers file
  • Update Grub Menus : Update GRUB Configuration File

UEFI Boot specific options

  • UEFI Partition Status : Check UEFI partition status
  • Check UEFI Boot : Check if Rescatux has boot in UEFI mode
  • Create UEFI Boot Entry : Create a new UEFI Boot entry out of your EFI files
  • Change UEFI Boot Order : Change UEFI Boot order
  • Reinstall Microsoft Windows UEFI : Reinstall Microsoft Windows UEFI boot entries
  • Fake Microsoft Windows UEFI : Fake Microsoft Windows UEFI boot entry
  • Hide Microsoft Windows UEFI : Hide Microsoft Windows UEFI boot entry and define default fallback one.

Windows password and role related options

  • Easy Windows Admin : Promote to Admin, Reset Windows (NT,200x,XP,Vista,Seven) password and unlock user
  • Reset Windows password : Reset Windows (NT,200x,XP,Vista,Seven,10) password
  • Promote Windows user to Admin : Promote Windows (NT,200x,XP,Vista,Seven,10) user to Administrator
  • Unlock Windows user : Unlock Windows (NT,200x,XP,Vista,Seven,10) user

Other options

  • Boot Info Script : Boot Information Script
  • Check bios_grub partition on GPT : Check if there is a bios_grub partition on a GPT disk
  • Gptsync : Create an hybrid MBR inside a GPT partition (Gptsync)
  • Recompute Hybrid GPT/MBR CHS : Recompute CHS values on an hybrid GPT/MBR partitiont table
  • Restore Windows MBR : Restore generic MBR code so that Windows boots again
  • System Info Script (Inxi) : System Info Script (Inxi)

Support features

  • Chat : Get online human help (chat)
  • Help : Help on using Rescapp
  • Share log : Share Rescatux logs. It generates a pastebin in paste.debian.net and shows it to you so that you can copy and paste the url in the chat.
  • Share log on forum : Share Rescatux logs on a forum. It generates a temporary file ready to copy and paste on your favourite forum (ubuntuforums.org and others).
  • Show log : Show Rescatux logs so that you can ask help and supporters can know what happens when you run Rescatux options
  • Web : Access online Rescatux website

External tools

  • Gparted : GParted is a free partition editor for graphically managing your disk partitions.
  • Testdisk : Testdisk is a text wizard drive program for rescuing disks, partitions, and files.
  • Photorec : Photorec is a text wizard drive program for rescuing files. Despite its name it recovers much more files than photo files.

Восстановление Grub после установки Windows 10

Если вы используете на своем компьютере две операционные системы, Windows и Linux, и обновили свою Windows из 7, 8 или 8.1 до самой новой Windows 10, могут возникнуть проблемы с загрузчиком Grub при использовании защищенной загрузки UEFI. Во время обновления Windows 10 просто затрет загрузчик Grub и запишет туда свой.

Вы, как обычно, перезагружаете систему и ожидаете увидеть меню выбора операционной системы Grub, но вместо этого загружается новая Windows 10. Вам может показаться, что нет никакого способа получить доступ к Ubuntu или что не может работать Ubuntu рядом с Windows 10. Но это не так.

Восстановление Grub2 без LiveCD

В некоторых случаях повреждения Grub не вызывает полную невозможность загрузки. Например, когда загрузочный код в MBR цел, но программа не может получить доступ к файлам на диске. Тогда загрузчик открывает вместо меню некое подобие терминала с сообщением: Minimal BASH like line editing is supported. С помощью этого терминала мы можем попытаться загрузить систему. Восстановление grub2 без LiveCD не такая уж и сложная задача, хотя, это сложнее, чем первый способ.

Чтобы посмотреть список подключенных к компьютеру дисков просто выполните:

(hd2,msdos1, hd2,msdos2, hd2,msdos3, hd2,msdos4)

Важно отметить, что в grub диски и разделы именуются немного по другому. Здесь каждый жесткий диск имеет название hd и номер диска, например, hd0 или hd1

Разделы именуются начиная с единицы.

Вы можете работать только с одним разделом в определенный момент. Чтобы установить раздел, с которым нужно работать, нужно указать его в переменной root. Для установки переменных окружения используется команда set. Например, у если у меня файлы загрузчика grub находятся на /dev/sdc2, то получится hd2,2:

Загрузим нормальную оболочку grub:

insmod ext2 insmod normal normal

После этого можно найти и запустить ядро. Для этого используйте команду linux. Обычно ядро находится папке /boot:

И наконец загружаемся:

Теперь, когда система загрузится, вам останется только открыть терминал, и выполнить следующие команды, чтобы завершить восстановление загрузчика linux mint:

sudo grub2-install /dev/sd*

Настройка параметров ядра

Системное ядро во время его загрузки можно (и нужно) заставить вести себя определённым образом, например опрашивать определённые устройства, искать демон init по нестандартным путям, указывать корневое устройство и т. д. Всё это легко позволяет настроить загрузчик. Для этого он использует некоторые параметры, самые основные из которых приведены в следующей таблице:

Важно заметить, что конфигурация, задаваемая при помощи интерфейса командной строки GRUB не сохраняется. Для задания постоянной конфигурации загрузки необходимо отредактировать файл grub.conf (grub.cfg для GRUB2) или menu.lst

Автоматическое восстановление загрузчика Windows

Процедура автоматического восстановления загрузчика, зашитая в среду восстановления Windows (WinRe), как правило, в таких случаях бессильна. Но попробовать все-же стоит:

  1. Загрузитесь с диска загрузочного диска, диска восстановления или установочной флешки с Windows 10;
  2. На экране установки нажмите кнопку Восстановление системы;
  3. Затем выберите пункт Поиск и устранение неисправностей ->Восстановление при загрузке и выберите ОС, загрузчик которой нужно попытаться восстановить;
  4. Но скорее всего результат будет отрицательный: Восстановление при загрузке не удалось восстановить компьютер

Перезагрузка компьютера

Выходим из окружения chroot, для этого выполняем команду:

Отмонтируем все разделы, которые мы примонтировали:

Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:

Если вы монтировали EFI-раздел, отмонтируем:

Отмонтируем корневой раздел:

Перезагружаем компьютер. Для этого выполняем команду:

Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:

Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:

Мне это помололо на компьютере, который использует UEFI.

Entering rescue mode

Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.

Machine UUID...
Booting from Hard Disk...
error: no such partition.
Entering rescue mode...
grub rescue>

Это может символизировать как простую ошибку, которую легко исправить, так и серьезные проблемы. Рассказываю, что нужно делать в таком случае и как починить загрузку системы.

Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.

> ls
(hd0) (hd0,gpt3)

В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:

> ls (hd0,gpt3)/

По содержимому раздела видно, что это корневой. Самого раздела /boot, с которого должна начинаться загрузка  ubuntu тут не видно. Если его никто специально не удалял и не затирал, то он пропал в результате какого-то сбоя или ошибки. Можно попробовать это исправить. Сделаем это отдельно ниже, а пока рассмотрим случай, когда boot раздел тут все же присутствует и имеет имя, к примеру, (hd0,gpt2). Тогда там же в консоли grub продолжаем.

> set prefix=(hd0,gpt2)/grub 
> set root=(hd0,gpt2)

Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:

> insmod ext2
> insmod lvm
> insmod part_msdos

Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.

> insmod normal
> normal

После этого у вас должно открыться стандартное меню загрузки Ubuntu. Если это так, то вам повезло. Дальше загрузится система. Вам нужно будет в нее зайти и далее перейти в раздел по восстановлению grub в этой статье. Получилось так, что у вас сам загрузочный раздел жив, но сбились его настройки, поэтому он сам не смог загрузить основную систему. Это не трудно исправить и ниже я показываю как.

Восстановление GRUB

В данной статье рассматривается процесс восстановления загрузчика GRUB 2.

Причины, по которым может понадобится восстановить GRUB, могут быть разными.

Очень часто требуется восстанавливать GRUB после установки Windows. Если у вас был установлен Linux и вы установили в соседний раздел или на соседний диск Windows, то после перезагрузки компьютера загрузится Windows, как будто Linux вообще пропал. Загрузчик GRUB даже не появился. Иногда подобное происходит при обновлении существующего Windows.

Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.

Во всех случаях нужно выполнить восстановление загрузчика GRUB. Существуют разные способы восстановления. В данном руководстве рассматривается процесс использованием загрузочного Live-образа Linux. Загрузившись в Live-систему вам нужно будет ввести несколько команд, чтобы выполнить восстановление. Рассматривается способ восстановления без использования сторонних программ.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *