Восстановление GRUB Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:восстановление_grub [2011/11/26 22:22]
[Восстановление используя chroot]
wiki:восстановление_grub [2021/03/28 22:59] (текущий)
[Первый способ]
Строка 1: Строка 1:
 ====== Восстановление GRUB ====== ====== Восстановление GRUB ======
  
-[[GRUB]] - это основной загрузчик [[об_ubuntu|Ubuntu]] начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии [[grub_legacy|GRUB]],​ известной теперь как ​[[grub_legacy|GRUB Legacy]]. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать [[восстановление_grub_legacy|соответствующую статью]].+[[GRUB]] - это основной загрузчик [[ubuntu|Ubuntu]] начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии [[grub_legacy|GRUB]],​ известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать [[восстановление_grub_legacy|соответствующую статью]].
  
 <​note>​Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.</​note>​ <​note>​Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.</​note>​
  
-На любом винчестере есть так называемая [[http://​ru.wikipedia.org/​wiki/​Главная_загрузочная_запись|Главная загрузочная запись]] //​(англ. master boot record, MBR)//, к которой обращается [[wp>​BIOS]] при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах,​ которые хранятся уже на разделах винчестера.+На любом загрузочном винчестере есть так называемая [[http://​ru.wikipedia.org/​wiki/​Главная_загрузочная_запись|Главная загрузочная запись]] //​(англ. master boot record, MBR)//, к которой обращается [[wp>​BIOS]] при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах,​ которые хранятся уже на разделах винчестера.
  
 <note important>​Каждый раз при установке или восстановлении систем от Microsoft загрузчики Linux заменяются и их необходимо заново устанавливать.</​note>​ <note important>​Каждый раз при установке или восстановлении систем от Microsoft загрузчики Linux заменяются и их необходимо заново устанавливать.</​note>​
  
-===== Восстановление с помощью LiveCD =====+===== Восстановление с помощью LiveCD/USB =====
  
 ==== Первый способ ==== ==== Первый способ ====
-Запустите систему с LiveCD и откройте [[терминал]]. Для этого можно нажать <​key>​Alt+F2</​key>​ и ввести команду:​+Запустите систему с LiveCD/USB и откройте [[терминал]]. Для этого можно нажать <​key>​Alt+F2</​key>​ и ввести команду:​
 <​code>​gnome-terminal</​code>​ <​code>​gnome-terminal</​code>​
  
Строка 19: Строка 19:
 На экран должна быть выведена примерно такая таблица:​ На экран должна быть выведена примерно такая таблица:​
 <​file>​ <​file>​
-/dev/sda1 29 8369 66999082+ 83 Linux +/dev/sda3     ​239616 233392328 233152713 111,2G Microsoft basic data 
-/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS +/dev/sda4  233394176 234438655 ​  ​1044480 ​  510M Windows recovery environment 
-/dev/sda3 13996 14593 4803435 5 Extended+... 
 +Disk identifier: 0x7d6fe43d 
 + 
 +Device ​    ​Boot ​   Start        End    Sectors ​  Size Id Type 
 +/dev/​sdc1 ​ *        2048   ​29304782 ​  ​29302735 ​   14G 83 Linux 
 +/dev/sdc2       ​29304832 1953523711 1924218880 917,6G 83 Linux 
 </​file>​ </​file>​
  
-Из таблицы видим, что Linux стоит ​(в нашем случаена разделе /dev/sda1+Из таблицы видим, что Linux (загрузочный /​-корень отмечен звёздочкой) ​стоитв нашем случаена разделе /dev/sdc1.
  
-Теперь подключим этот раздел в /mnt следующей командой:​ +Теперь подключим этот раздел в /mnt следующей командой ​(следим за пропусками между кодами и порядковыми номерами разделов)
-<​code>​sudo mount /dev/sda1 /​mnt</​code>​+<​code>​sudo mount /dev/sdc1 /​mnt</​code>​
  
 Затем, для записи grub в MBR, вводите следующую команду:​ Затем, для записи grub в MBR, вводите следующую команду:​
-<​code>​sudo grub-install --root-directory=/​mnt /dev/sda</​code>​ +<​code>​sudo grub-install --root-directory=/​mnt /dev/sdc</​code>​ 
-В случае,​ если нужно только восстановить MBR диска (например,​ после переустановки Windows), то этого достаточно.+В случае,​ если нужно только восстановить MBR диска (например,​ после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.
  
 Если нужно обновить и меню grub (например,​ после установки Windows), то нужно сделать:​ Если нужно обновить и меню grub (например,​ после установки Windows), то нужно сделать:​
Строка 37: Строка 43:
 Восстановление закончено! Восстановление закончено!
 ==== Восстановление используя chroot ==== ==== Восстановление используя chroot ====
-Запустите систему с LiveCD и откройте [[терминал]]. Для этого можно нажать <​key>​Alt+F2</​key>​ и ввести команду:​+Запустите систему с LiveCD/USB и откройте [[терминал]]. Для этого можно нажать <​key>​Alt+F2</​key>​ и ввести команду:​
 <​code>​gnome-terminal</​code>​ <​code>​gnome-terminal</​code>​
  
Строка 57: Строка 63:
 </​code>​ </​code>​
  
-<note important>​Если раздел /boot находится отдельно,​ то Вам необходимо примонтировать именно его!</​note>​+<note important>​Если раздел /boot или /var находится отдельно,​ то Вам необходимо примонтировать их в /mnt/boot и /mnt/var</​note>​
  
 Теперь перейдем в окружающую среду [[http://​ru.wikipedia.org/​wiki/​Chroot|chroot]]:​ Теперь перейдем в окружающую среду [[http://​ru.wikipedia.org/​wiki/​Chroot|chroot]]:​
Строка 91: Строка 97:
 <​code>​sudo update-grub</​code>​ <​code>​sudo update-grub</​code>​
  
 +=====Восстановление в rescue mode=====
 +При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом:​ сначала нужно подгрузить все модули,​ чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела.
 +Как известно,​ Grub состоит из двух частей.
 +Первая часть записана в MBR диска. Она содержит базовую функциональность,​ то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить,​ на каком разделе находится вторая часть груба (она лежит в каталоге /​boot/​grub),​ подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела.
 +В rescue mode доступно всего четыре команды:​
 +<​code>​ ls
 +set
 +unset
 +insmod</​code>​
 +Вначале следует дать команду:​
 +<​code>​ls</​code>​
 +В ответ она выведет,​ например,​ следующее:​
 +<​code>​(hd0) (hd0,​msdos3) (hd0,​msdos2) (hd0,​msdos1) (hd1) (hd1,​msdos2) (hd1,​msdos1)</​code>​
 +Иногда Grub может неправильно опеределить,​ какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos.
 +Нам нужно постараться угадать,​ какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела,​ диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.
 +
 +Grub называет разделы в обратном порядке. И становится непонятно,​ что имеется в виду под (hd0,​msdos3) - первый раздел или третий?​ Тут можно выкрутиться,​ использовав синтаксис (hd0,1). Нужно помнить,​ что в Grub счет дисков начинается с 0, а счет разделов - с 1.
 +Предположим,​ что Линукс установлен на первый диск в первый раздел,​ то есть (hd0,1).
 +Даем команду:​
 +<​code>​set prefix=(hd0,​1)/​boot/​grub ​
 +set root=(hd0,​1)</​code>​
 +Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить,​ действительно ли на этом разделе есть то, что нам нужно. Даем команду:​
 +<​code>​ls /​boot/​grub</​code>​
 +если в ответ получаем список всех файлов в этой директории,​ то диск и раздел выбраны правильно.
 +Подгружаем модули:​
 +<​code>​insmod ext2
 +insmod normal
 +normal</​code>​
 +<note warning>​Проверьте правильность написания первой команды для файловых систем ext3 и ext4</​note>​
 +<note warning>​Если ОС расположена на разделе,​ отформатированном в btrfs,
 +то выполняем следующие команды:​
 +<​code>​set prefix=(hd0,​1)/​@/​boot/​grub
 +set root=(hd0,​1)</​code>​
 +подгружаем модули:​
 +<​code>​insmod btrfs
 +insmod normal</​code>​
 +запускаем GRUB:
 +<​code>​normal</​code>​
 +</​note>​
 +После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки,​ которые можно подгружать,​ и покажет своё Grub-меню. ​
 +
 +Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:​
 +<​code>​grub-install /​dev/​sdX</​code>​
 +Где sdX, диск, на который нужно установить Grub.
 ===== Ссылки ​ ===== ===== Ссылки ​ =====
   * [[grub|Загрузчик системы GRUB]]   * [[grub|Загрузчик системы GRUB]]
Строка 97: Строка 147:
   * [[https://​help.ubuntu.com/​community/​Grub2#​Reinstalling GRUB 2|HOWTO Reinstalling GRUB (англ.)]]   * [[https://​help.ubuntu.com/​community/​Grub2#​Reinstalling GRUB 2|HOWTO Reinstalling GRUB (англ.)]]
   * [[http://​ru.wikibooks.org/​wiki/​Grub_2_от_А_до_Я|Grub 2 от А до Я]]   * [[http://​ru.wikibooks.org/​wiki/​Grub_2_от_А_до_Я|Grub 2 от А до Я]]
 +  * [[http://​webhamster.ru/​site/​page/​index/​articles/​comp/​196|Grub - как восстанавливаться в rescue mode ]]
 +  * [[https://​help.ubuntu.com/​community/​Boot-Repair|Boot-repair]]
 +  * [[https://​help.ubuntu.ru/​wiki/​boot_repair|Boot-repair на русском]]
    
 {{tag>​Администрирование HOWTO GRUB}} {{tag>​Администрирование HOWTO GRUB}}