- Восстановление GRUB в Ubuntu
- Способ 1: Утилита Boot-Repair
- Способ 2: Ручное восстановление GRUB2
- Способ 3: Ручное восстановление без LiveCD
- Восстановление GRUB после установки Windows или «как не стоит делать»
- Восстановление GRUB
- Содержание
- Восстановление с помощью LiveCD/USB
- Первый способ
- Восстановление используя chroot
- Восстановление в rescue mode
Восстановление GRUB в Ubuntu
Способ 1: Утилита Boot-Repair
В первую очередь хотим затронуть решение для новичков. Справиться с восстановлением GRUB в Ubuntu поможет утилита Boot-Repair. От пользователя требуется только установить ее и запустить проверку на ошибки. После этого все найденные неполадки будут автоматически исправлены, а на экране появится детальный отчет. Дополнительно в этом инструменте можно установить дополнительные параметры, например, параллельное восстановление MBR или время на отображение меню загрузки. На нашем сайте уже имеется отдельный материал, посвященный отладке GRUB через Boot-Repair. Предлагаем ознакомиться с ним, воспользовавшись указанной ниже ссылкой, а мы переходим к следующим методам.
Способ 2: Ручное восстановление GRUB2
Преимущество этого способа заключается в том, что пользователю не придется устанавливать дополнительных компонентов, поскольку все инструменты для восстановления загрузчика уже имеются в дистрибутивах Ubuntu. Недостатки связаны только с надобностью ручного ввода команд в «Терминале», что иногда вызывает трудности у начинающих. Впрочем, если следовать приведенной далее инструкции, точно выполняя каждое действие, никаких проблем возникнуть не должно.
- Первым делом придется загрузиться с LiveCD, поскольку полная поломка загрузчика GRUB2 означает невозможность открытия стандартной оболочки. Детальное руководство по этой теме имеется на официальном сайте поддержки Ubuntu, нацеленное на новичков, поэтому разбирать его сейчас мы не будем.
После загрузки в режиме LiveCD откройте «Терминал» удобным образом и введите там команду sudo fdisk -l .
Подтвердите ее, указав пароль от рут.
Disk /dev/sdc: 14,5 GiB, 15514730496 bytes, 30302208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x38972eb0
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 23949312 29882367 5933056 2,8G 7 HPFS/NTFS/exFAT
/dev/sdc2 29882368 30302207 419840 205M b W95 FAT32
/dev/sdc3 13551616 23949311 10397696 5G 83 Linux
/dev/sdc4 2048 12621823 12619776 6G b W95 FAT32
Сейчас необходимые файловые системы не смонтированы в необходимое расположение, поэтому давайте сделаем это. Первая команда имеет вид mount /dev/sdc3 /mnt . Здесь и в последующих командах замените расположения дисков на определенные вами ранее.
Вторая команда — mount /dev/sdc2 /mnt/boot . Она отвечает за монтирование файлов загрузчика.
Завершающие строки монтирования выглядят так: sudo mount —bind /sys /mnt/sys и sudo mount —bind /proc /mnt/proc .
Затем осуществите вход в окружение рабочего стола, используя команду chroot /mnt /bin/bash .
В этом расположении укажите команду env-update , чтобы загрузить все обновления переменных профиля.
Завершите это действие, введя source /etc/profile .
Предыдущие задачи являлись подготовительными, а после успешного их выполнения можно приступать к непосредственному восстановлению GRUB2. Для начала переустановим его, используя sudo grub2-install /dev/sdc , где /dev/sdc замените на название вашего жесткого диска.
После этого создайте новый конфигурационный файл, отвечающий за поведение загрузчика: sudo grub2-mkconfig -o /boot/grub/grub.cfg .
Используйте команду sudo grub-update , чтобы обновить все составляющие.
Если никаких ошибок в процессе не возникло, впишите exit для выхода из окружения.
Перезагрузите операционную систему, чтобы начать корректное включение с уже восстановленным загрузчиком.
Как видите, ничего сложного в действиях восстановления GRUB2 при его полном отказе нет. В большинстве случаев требуется лишь по очереди использовать приведенные выше команды, чтобы добиться положительного результата, не получив при этом ни одной ошибки. Однако имеется более простой способ, который пригодится при неполной поломке загрузчика. О нем мы и поговорим далее.
Способ 3: Ручное восстановление без LiveCD
Иногда юзеры сталкиваются с ситуациями, когда загрузка Ubuntu невозможна, но при этом на экране появляется уведомление «Minimal BASH like line editing is supported», а внизу идет активная строка для ввода команд. Это называется минимальным окружением Bash, и через него тоже доступно восстановление GRUB более быстрым способом.
- В этой оболочке используйте команду ls , чтобы просмотреть список подключенных к компьютеру дисков. Он будет выглядеть примерно так: (hd2,msdos1, hd2,msdos2, hd2,msdos3, hd2,msdos4) .
В данном терминале можно взаимодействовать только с одним диском одновременно, поэтому выберите раздела с файлами загрузчика и присвойте ему переменные окружения, указав set root=(hd2,2) . hd2,2 замените на нужное название.
Поочередно введите указанные ниже команды, чтобы осуществить открытие оболочки GRUB.
insmod ext2
insmod normal
normal
Запустите ядро. В большинстве случаев для этого подходит команда linux /boot/vmlinuz .
Осталось только выполнить стандартную загрузку и в «Терминале» операционной системы поочередно выполнить следующие команды:
boot
sudo grub2-install /dev/sda
sudo grub2-mkconfig -o /boot/grub/grub.cfg
Теперь вы знакомы с целыми тремя способами восстановления GRUB в Ubuntu. Как видите, каждый из них подойдет в определенных ситуациях и подразумевает произведение абсолютно разного алгоритма действий. Вам осталось только подобрать оптимальный метод. Начинающим мы советуем обратить особое внимание на первый вариант, поскольку для этой категории юзеров он является максимально эффективным.
Восстановление GRUB после установки Windows или «как не стоит делать»
Часа в 2 ночи мне написала подруга с просьбой одолжить ей нетбук на пару дней. Я, конечно, согласился, после чего она попросила меня поставить на него Windows с определенным софтом. Недолго думая, я накатил винду, совершенно забыв, что на нетбуке стояла Ubuntu 13.04. И все бы ничего, да вдруг вспомнил, что забыл на разделе убунты пару нужных мне файлов. Тут все и началось.
Предыстория
Ни для кого не секрет, что Windows при установке ставит свой загрузчик, не видя рядом стоящих систем. Когда я об этом вспомнил, на меня уже смотрел чистый рабочий стол Windows. Здесь был логичный выход из положения-скачать образ любого Linux-дистрибутива и запустить его в liveUSB, после чего обновить GRUB, но мне было слишком лень качать образ и записывать его на флешку. Поэтому я пошел более трудным путем. При установке Ubuntu диск был абсолютно чистым. Предвидя, что Windows рано или поздно вернется на нетбук я оставил часть диска неразмеченной. Обычно, я всегда создавал один раздел для » / » (hd0,0 в будущем) и swap (hd0,2), но в этот раз я решил поэкспериментировать и создал еще один раздел для » /home » (hd0,1).Спустя некоторое время была установлена Windows (hd0,3)
Запуск ядра
и как по волшебству ядро запустилось. Но и тут не все так просто.
Initramfs
mkdir /mnt
busybox mount /dev/sda1 /mnt
busybox mount /dev/sda2 /mnt/home
chroot /mnt
mkdir /mnt/dev
mount —bind /dev /mnt/dev
chroot /mnt
# update-grub
# exit
reboot
и получил возможность загружаться в Windows.
P.S. Предположу, что местные обитатели смогут и сами выкрутиться из подобной ситуации, поэтому статья ориентирована на тех, кто не особо дружит с Linux, но хочет подружиться, либо на тех, у кого нет второй машины или свободных флешек под рукой.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Восстановление GRUB
Содержание
GRUB — это основной загрузчик Ubuntu начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии GRUB, известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать соответствующую статью.
На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.
Восстановление с помощью LiveCD/USB
Первый способ
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.
Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):
Затем, для записи grub в MBR, вводите следующую команду:
В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.
Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:
Восстановление используя chroot
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
Теперь перейдем в окружающую среду chroot:
Теперь необходимо установить GRUB, используя команду:
Также в некоторых случаях может помочь вариант:
Если все прошло успешно, выходим из chroot командой:
Теперь необходимо отмонтировать разделы:
Если Вы монтировали раздел /boot воспользуйтесь командой:
Затем перезагрузим Ваш компьютер командой:
При необходимости Вы можете обновить меню загрузчика командой:
Восстановление в rescue mode
При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:
Вначале следует дать команду:
В ответ она выведет, например, следующее:
Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.
Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) — первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов — с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:
Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:
если в ответ получаем список всех файлов в этой директории, то диск и раздел выбраны правильно. Подгружаем модули:
После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:
Где sdX, диск, на который нужно установить Grub.