Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:восстановление_grub [2013/07/27 03:30] [Восстановление используя chroot] |
wiki:восстановление_grub [2021/03/28 22:53] [Первый способ] |
||
---|---|---|---|
Строка 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> | ||
Строка 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), то нужно сделать: | ||
Строка 57: | Строка 63: | ||
</code> | </code> | ||
- | <note important>Если раздел /boot находится отдельно, то Вам необходимо примонтировать его в /mnt/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]]: | ||
Строка 92: | Строка 98: | ||
=====Восстановление в rescue mode===== | =====Восстановление в 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]] | ||
Строка 99: | Строка 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}} |