Как я могу восстановить grub? (Как вернуть Ubuntu после установки Windows?)

Я установил Windows 7, которая съела загрузочный файл Ubuntu. При запуске компьютера он теперь переходит прямо в Windows, не давая мне возможности загрузить Ubuntu.

Как я могу вернуть Ubuntu обратно?

Когда вы устанавливаете Windows, Windows предполагает, что это единственная операционная система (ОС) на компьютере, или, по крайней мере, она не учитывает Linux. Таким образом, он заменяет GRUB своим собственным загрузчиком. Что вам нужно сделать, это заменить загрузчик Windows на GRUB. Я видел различные инструкции по замене GRUB с помощью команд GRUB или чего-то подобного, но для меня самый простой способ - просто chroot в вашу установку и запустите update-grub. chroot это здорово, потому что это позволяет вам работать над вашей фактической установкой, вместо того, чтобы пытаться перенаправлять вещи туда и сюда. Это действительно чисто.

Вот как это делается:

  1. Загрузитесь с live CD или live USB в режиме "Попробуйте Ubuntu".
  2. Определите номер раздела вашего основного раздела. sudo fdisk -l, sudo blkid или GParted (который по умолчанию уже должен быть установлен в сеансе live) может помочь вам здесь. Я собираюсь предположить в этом ответе, что это /dev/sda2, но убедитесь, что вы используете правильный номер раздела для вашей системы!

    Если ваш основной раздел находится в LVM, вместо этого устройство будет расположено в /dev/mapper/, скорее всего, /dev/mapper/{volume}--{os}-root где {volume} является именем тома LVM и {os} это операционная система. Выполнять ls /dev/mapper для точного названия.

  3. Смонтируйте свой раздел:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2

    Если у вас есть отдельный /boot, /var или /usr перегородки, повторите шаги 2 и 3, чтобы смонтировать эти разделы на /mnt/boot, /mnt/var и /mnt/usr соответственно. Например,

    sudo mount /dev/sdXW /mnt/bootsudo mount /dev/sdXY /mnt/varsudo mount /dev/sdXZ /mnt/usr

    заменяющий sdXW, sdXY, и sdXZ с соответствующими номерами разделов.

  4. Привязать смонтировать некоторые другие необходимые вещи:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  5. Если Ubuntu установлена в режиме EFI (посмотрите этот ответ, если вы не уверены), использовать sudo fdisk -l | grep -i efi или GParted, чтобы найти ваш раздел EFI. На нем будет надпись EFI. Смонтируйте этот раздел, заменив sdXY с фактическим номером раздела для вашей системы:

    sudo mount /dev/sdXY /mnt/boot/efi
  6. chroot в вашу установку Ubuntu:

    sudo chroot /mnt
  7. На данный момент вы находитесь в своей установке, а не в реальном сеансе, и работаете от имени root. Обновление личинки:

    update-grub

    Если вы получаете ошибки или переход к шагу 7 не устранил вашу проблему, перейдите к шагу 8. (В противном случае это необязательно.)

  8. В зависимости от вашей ситуации вам, возможно, придется переустановить grub:

    grub-install /dev/sdaupdate-grub # In order to find and add windows to grub menu.
  9. Если Ubuntu установлена в режиме EFI, а UUID раздела EFI изменился, вам может потребоваться обновить его в /etc/fstab. Сравните это:

    blkid | grep -i efigrep -i efi /etc/fstab

    Если UUID текущего раздела EFI (из blkid) отличается от того , что в /etc/fstab, обновление /etc/fstab с текущим UUID.

  10. Если все работало без ошибок, то у вас все готово:

    exitsudo reboot
  11. На этом этапе вы должны быть в состоянии нормально загрузиться.

Если вы не можете нормально загрузиться и не выполнили шаг 8 из-за отсутствия сообщений об ошибках, повторите попытку с помощью шага 8.

  • Иногда предоставление GRUB2 правильного конфигурация для ваших разделов этого недостаточно, и вы должны фактически установить его (или переустановить) в Главную загрузочную запись, что и делает шаг 8. Опыт оказания помощи пользователям в чате показал, что шаг 8 иногда необходим, даже если сообщения об ошибках не отображаются.

Установщик Windows не заботится о других ОС в системе. Таким образом, он записывает собственный код поверх основной загрузочной записи. К счастью, решение тоже простое.

Вам нужно отремонтировать MBR. Выполните следующие действия

Загрузитесь с помощью live usb/cd ubuntu. Воспользуйся boot-repair чтобы устранить проблему.

После загрузки с live usb/cd выполните следующую команду в терминале:

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

Воспользуйся Recomended Repair.

enter image description here

Дополнительная информация - https://help.ubuntu.com/community/Boot-Repair

Загрузка с USB-накопителя Ubuntu или компакт-диска
Установите Boot-Repair на ubuntu, выполнив следующие действия

Откройте терминал и выполните следующие команды

sudo add-apt-repository ppa:yannubuntu/boot-repairsudo apt-get updatesudo apt-get install boot-repair

>>После завершения установки вы можете запустить его из меню System-Administration-Boot-Repair, если вы используете Gnome, или выполнить поиск "boot-repair" в тире, если вы используете Unity. Затем следуйте следующим скриншотам:

Способ 1

  • Нажмите на дополнительные параметры

Initial screen

  • Отметьте галочкой параметры, показанные ниже

advanced option

  • Измените вкладку на вкладку Расположения Grub и отметьте параметры, показанные на рисунке

enter image description here

Нажмите Применить и перезагрузите систему

Способ 2

  • Выберите рекомендуемые параметры восстановления загрузки, как показано на первом скриншоте

Документация :

Просто установите easyBCD в Windows 7 и выполните

>>>Добавить новую запись Linux/BSD (выбрать) Grub2 (нажать) Добавить запись

Затем вы можете выбрать Ubuntu в загрузчике Windows 7, чтобы перейти к Grub2 (предыдущий загрузчик).

В системах на базе EFI (таких как большинство систем, поставляемых с Windows 8 или более поздней версией) Windows иногда обновляет свой загрузчик или сбрасывает его, чтобы он был загрузчиком по умолчанию. Это особенно часто встречается при переустановке ОС или выполнении крупного обновления системы (например, обновление до последней версии Windows). Обратите внимание, что Windows вряд ли действительно удалит какие-либо файлы GRUB на компьютере на базе EFI. Все необходимое для загрузки Ubuntu по-прежнему на месте; его просто обходят стороной. В этих случаях полная переустановка GRUB является излишеством, и на самом деле это несет в себе (небольшую) вероятность того, что это создаст новые проблемы.

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

  • EasyUEFI -- Самый простой способ настроить порядок загрузки, если система загружается прямо в Windows, - это использовать EasyUEFI, который представляет собой бесплатный (для базовой версии) сторонний графический инструмент для управления порядком загрузки EFI. Это довольно самоочевидно - найдите ubuntu запись в списке параметров загрузки и переместите ее в начало списка. При следующей перезагрузке должен появиться GRUB. (Если вы используете что-то другое, кроме GRUB, вам нужно будет найти его запись.)
  • bcdedit -- Окна bcdedit инструмент можно использовать для установки GRUB в порядок загрузки по умолчанию. Команда bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi, напечатанный в Администратор Окно командной строки, сделает это; однако, если ваш компьютер загружается с активной безопасной загрузкой, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi вместо этого потребуется. На самом деле, последняя команда будет обычно работает, даже если безопасная загрузка не используется, поэтому я бы сначала использовал эту команду. Обратите внимание, что существует более продвинутый инструмент оболочки Windows, который требует немного другого синтаксиса, чем я представил, но я не помню подробностей.
  • Одноразовая загрузка в Ubuntu -- Большинство EFI предоставляют встроенный менеджер загрузки, доступ к которому осуществляется нажатием функциональной клавиши, Esc или Enter в начале процесса запуска системы. Скорее всего, это ubuntu запись для загрузки Ubuntu появится в этом меню диспетчера загрузки, что позволит вам загрузиться в Ubuntu. В качестве альтернативы вы можете загрузиться с аварийного носителя Ubuntu, например, установщик загрузился в режиме "попробуйте перед установкой". В любом случае, затем вы можете использовать efibootmgr чтобы настроить порядок загрузки:
    1. Тип sudo efibootmgr чтобы просмотреть загрузочные записи.
    2. Обратите внимание на текущую BootOrder линия.
    3. Найдите запись для ubuntu и обратите внимание на его Boot#### номер.
    4. Тип sudo efibootmgr -o xxxx[,yyyy,zzzz,....] чтобы изменить порядок загрузки, выполните xxxx номер для Ubuntu. То, что происходит после этого, скорее всего, не очень важно, хотя я отметил, что Windows, похоже, скорее всего, добавит себя обратно в начало порядка загрузки, если его нет в списке. Таким образом, вам, вероятно, следует убедиться, что Windows находится в списке, и, возможно, безопаснее всего изменить порядок списка так, чтобы все исходные записи были там, просто с ubuntu запись перемещена в начало списка.
  • Утилита настройки встроенного ПО -- Некоторые утилиты настройки EFI позволяют настраивать порядок загрузки. Детали сильно различаются от одного EFI к другому, поэтому я не буду вдаваться в подробности, но вы можете поискать такую опцию в своей утилите настройки.

Существуют и другие варианты этих процедур, такие как использование bcfg в оболочке EFI, используя bless в macOS, используя мой Уточните чтобы выполнить одноразовую загрузку и т.д. Однако я бы начал с EasyUEFI; вероятно, это будет самое простое решение. Однако иногда Windows настаивает на том, чтобы устанавливать себя по умолчанию при каждом запуске, и в отчетах указывается, что bcdedit может лучше справиться с этой проблемой.

Обратите внимание, что ни одно из вышеперечисленных не относится к установкам в режиме BIOS; однако, поскольку большинство компьютеров, поставляемых с Windows 8 или более поздней версией, загружаются в режиме EFI, установки в режиме BIOS становятся все более редкими, поэтому во многих случаях лучше решать проблему с помощью EFI, а не слепо повторно- установка GRUB.

Теперь есть более простое решение:

  1. Перезагрузитесь и введите параметры BIOS вашего компьютера (F2 или иногда F11).
  2. Пойти на Ботинок меню и выберите Приоритет загрузочного устройства
  3. Проверьте, есть ли Диспетчер загрузки Windows находится над основным загрузочным диском (обычно ЖЕСТКИЙ ДИСК SATA … или ЖЕСТКИЙ ДИСК IDE …). Если это так, переместите приоритет загрузочного диска выше приоритета диспетчера загрузки Windows.
  4. Сохраните настройки BIOS и выйдите (обычно F10).

Это было протестировано на ноутбуке Samsung Series 7 Chronos с двойной загрузкой Windows 8 и Ubuntu 13.10, отключена безопасная загрузка, включена UEFI и устаревшая загрузка.