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


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

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


303
2017-12-17 07:02


Источник


Я думаю, что это обычная задача, у меня также есть два жестких диска и Ubuntu + Windows. Надеюсь, вы сможете исправить это правильно. Попробуйте следовать это руководство. Любые вопросы, спросите меня! - antivirtel
Связанный (когда GRUB был установлен на MBR неправильного диска): Проблема с спасением Grub после установки ubuntu - Eliah Kagan
Да, вы можете, вам просто нужно сделать обычную загрузку и установить с окнами, а затем она появится в меню загрузки Grub при запуске компьютера. - Rampoo1208
Я знаю, что это старый поток, но я исправил проблему, изменив режим загрузки в биосе от UEFI до Legacy.
ПРИМЕЧАНИЕ: принятый ответ является общей инструкцией о том, как отремонтировать grub. Он также применим к широкому кругу обстоятельств, когда GRUB неправильно написан установщиком (вездесущность). - Danatela


Ответы:


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

Вот как:

  1. Загрузитесь с живого компакт-диска или с живого USB в режиме «Попробуйте Ubuntu».
  2. Определите номер раздела вашего основного раздела. sudo fdisk -l, sudo blkid или GParted (который уже должен быть установлен по умолчанию в реальном времени) может помочь вам здесь. Я собираюсь предположить в этом ответе, что это /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/boot
    sudo mount /dev/sdXY /mnt/var
    sudo 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. Обновление grub:

    update-grub
    

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

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

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

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

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

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

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

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

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

310
2017-12-17 12:23



Комментарии не предназначены для расширенного обсуждения; этот разговор был переехал в чат, - Thomas Ward♦
Я все еще хочу, чтобы Windows была моей основной загрузочной ОС. Это все еще правильное решение? Как выбрать, к какой ОС загружаться? F11? - Jeff
Это не влияет на основную ОС. Это контролируется в настройках GRUB, что выходит за рамки этого ответа. Этот ответ касается исключительно восстановления borked GRUB. - Scott Severance
@ScottSeverance К сожалению, для меня есть другие вопросы, когда этот ответ должен быть в области видимости, но закрыты, потому что они помечены как дубликаты этого вопроса. Думаю, чересчур амбициозная умеренность. - Jeff
@ScottSeverance Я видел из вашего профиля, что вы живете в DFW. Считаете ли вы, что вы даете уроки или живые учебные пособия, чтобы заставить людей проникнуть в Linux? - Mohammed Joraid


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

Вам необходимо восстановить MBR. Сделайте следующее

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

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

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

использование Recomended Repair,

enter image description here

Больше информации - https://help.ubuntu.com/community/Boot-Repair


91
2017-09-01 06:59



вы хотите сказать, что он преднамерен людьми Microsoft? Также двойная загрузка работала с окнами 7, так что это не противоречит вашей первой строке: «Установщик Windows не заботится о других ОС в системе». - Shagun Sodhani
Windows ломает Grub все время, это действительно общая проблема, и один ive должен был разобраться с собой. Ответ по-прежнему хорош и должен решить проблему. - damien
вы сначала установили Windows 7, затем Linux. Таким образом, Linux распознает Windows, а не Windows. Переустановив Windows 7, вы увидите, что я имел в виду. - Web-E
Не делайте этого, когда у вас есть зашифрованные разделы (luks), он испортил его. Он также переустанавливает GRUB с apt-get - нет идеи, почему он это делает. - Meng Tian
boot repair поддерживает устаревший режим очень хорошо, возможно, вам нужно загрузить live cd / usb в устаревшем режиме, а также @fuzzyanalysis :) - Web-E


Я никогда не сталкивался с проблемой, используя следующие инструкции:
https://wiki.ubuntu.com/Grub2#Recover 

Прежде всего, вы должны запустить свою систему с живого компакт-диска. затем

МЕТОД 3 - ШИРОК

Этот метод установки использует команду chroot для доступа к   файлы сломанной системы. После выдачи команды chroot   LiveCD рассматривает неисправную систему / как свою собственную. Команды запускаются в   chroot будет влиять на поврежденные системные файловые системы, а не   те из LiveCD.

  1. Загрузите рабочий стол LiveCD (Ubuntu 9.10 или новее). Обратите внимание, что Live CD должен быть таким же, как и система, которую вы исправляете - либо   32-битный или 64-битный (если не тогда chroot не будет работать).

  2. Откройте терминал (Приложения> Стандартные> Терминал).

  3. Определите свой обычный системный раздел - (переключатель - строчный «L»)

    sudo fdisk -l
    

    Если вы не уверены, запустите

    df -Th  
    

    Найдите правильный размер диска и формат ext3 или ext4.

  4. Установите обычный системный раздел:

    Замените правильный раздел: sda1, sdb5 и т. Д.

    sudo mount /dev/sdXX /mnt  
    

    Пример: sudo mount /dev/sda1 /mnt 

  5. Только если у вас есть отдельный загрузочный раздел:   sdYY - это обозначение раздела / boot (например, sdb3)

    sudo mount /dev/sdYY /mnt/boot
    
  6. Установите критические виртуальные файловые системы:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /dev/pts /mnt/dev/pts
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    
  7. Chroot в ваше обычное системное устройство:

    sudo chroot /mnt
    
  8. Если нет /boot/grub/grub.cfg или это неправильно, создайте один, используя

    update-grub
    
  9. Переустановите GRUB 2:

    Подставьте правильное устройство - sda, sdb и т. Д. Не указывайте номер раздела.

    grub-install /dev/sdX
    
  10. Проверьте установку (используйте правильное устройство, например sda. Не указывайте раздел):

    sudo grub-install --recheck /dev/sdX
    
  11. Выход chroot: CTRL-D на клавиатуре

  12. Отключение виртуальных файловых систем:

    sudo umount /mnt/dev/pts
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    
  13. Если вы установили отдельный / загрузочный раздел:

    sudo umount /mnt/boot
    
  14. Отключите каталог LiveCD / usr:

    sudo umount /mnt/usr
    
  15. Отключить последнее устройство:

    sudo umount /mnt
    
  16. Перезагружать.

    sudo reboot
    

33
2018-04-27 02:15



Просто обратите внимание на то, что нет необходимости беспокоиться о размонтировании, потому что перезагрузка позаботится об этом автоматически. Отправка umount команды теряют время. - Scott Severance
sudo umount -a должен заботиться и о них. Это не плохая практика, если у вас есть несколько моментов. По крайней мере, напоминает вам о том, что происходит, и в некоторых (угловых / маргинальных) случаях он может остановить перезагрузку, чтобы предупредить вас или ждать ввода. - belacqua
+1 для предупреждения в разделенном / загрузочном разделе. - qed
Я делал это несколько раз в разных системах и соглашаюсь с тем, что результаты говорят сами за себя (хотя я тоже пропускаю umount). - Elder Geek


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

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

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

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

Способ 1

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

Initial screen

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

advanced option

  • Измените вкладку на вкладку «Место схватывания» и отметьте параметры. Показаны на рисунке

enter image description here

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

Способ 2

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

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


18
2017-07-30 19:25



Web-E уже дал это ответ, Может быть, лучше это сделать? Я оставил комментарий о том, почему это не сработало. - Dan Dascalescu
Этот метод работал для меня после особо неприятного случая обновления Windows 10, перезаписывающего GRUB, а затем разбив его собственный загрузчик. После этой процедуры были восстановлены как Windows, так и Linux. В моем случае это был Linux Mint 18.1, а меню восстановления загрузки выглядело несколько иначе, но все это работало нормально. Благодаря! - TheBigH


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

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

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


10
2018-03-11 22:09



Только эти инструкции не восстанавливают загрузчик Grub - когда я их пробовал, они добавили дополнительную загрузку в Windows, которая при выборе, перезапустила мою машину и затем отвела меня в приглашение grub>. Поэтому нужно будет предпринять дополнительные шаги в отношении того, что делать дальше. - therobyouknow
easyBCD позволил мне добавлять и удалять параметры загрузки, которые я мог видеть как в Windows Boot Loader, так и в BIOS, но они никогда не работали, потому что easyBCD полагается на какую-то автоматическую магию для поиска разделов Linux ... это не сработало, когда мой раздел Linux был на отдельном жестком диске. - Fuzzy Analysis


В настоящее время существует более простое решение:

  1. Перезагрузитесь и введите параметры BIOS вашего компьютера (F2, а иногда и F11).
  2. Перейти к ботинок меню и выберите Приоритет загрузочных устройств
  3. Проверить, если Менеджер загрузки для Windows выше основного загрузочного диска (обычно SATA HDD ... или IDE HDD ...). Если это так, переместите приоритет загрузочного диска выше, чем в Windows Boot Manager.
  4. Сохраните параметры BIOS и выйдите (обычно F10).

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


5
2017-12-15 13:04



Это оказалось самым чистым вариантом для меня. Это еще несколько ключевых штрихов, но эй, это работает. У меня есть сочетание загруженных устройств Legacy и UEFI. Если пользователи загружают одну ОС гораздо больше, чем ассортимент других, это может быть быстрее (и безопаснее) в долгосрочной перспективе. - Fuzzy Analysis
Это тоже сработало для меня, после того, как Windows 10 автоматически обновила себя. - luis_js
Это решение сработало для меня, когда я удалил Ubuntu из окон 10. - Vikas Gupta


Boot-Repair работал для меня. Это очень простое в использовании графическое приложение, вам не нужно использовать командную строку, вам нужно только нажать кнопку :)

Все доступные варианты ремонта описаны в Документация Ubuntu и существует отдельная страница объясняя, как запустить Boot-Repair (создав загрузочный диск или установив его на существующий живой диск Ubuntu) и как его использовать.

Просто загрузите Live CD с Ubuntu, установите Boot-Repair и запустите его.


2
2017-12-18 01:41



Было бы неплохо, если бы был более простой способ получить Boot Repair. Быстрее просто настроить chroot ремонт, чем Google для другого инструмента для установки. - Scott Severance


Когда GRUB нарушен, пользователь обычно не имеет доступа к системам, поэтому ремонт должен выполняться из живого сеанса (live-CD или live-USB).

Существует множество возможных причин разрыва GRUB: запись Windows на MBR, DRM, предотвращающая правильность установки GRUB, ошибка установки, изменение аппаратного обеспечения ... Обычно обновление GRUB, предложенное Скоттом, обычно недостаточно, переустановка GRUB, предложенная Marco, более эффективна, но все же существуют различные ситуации, требующие других настроек (добавление опций в ядро, отображение меню GRUB, изменение параметров GRUB, выбор правильной архитектуры хоста ...). Другие трудности при ремонте GRUB - использование chroot и выбор правильных разделов / дисков.

Все это упростилось в небольшом графическом инструменте: Boot-Repair, Это должны быть интегрированы в компакт-диск Ubuntu 12.04 для более удобного использования, но для людей, которым это нужно сейчас, уже есть некоторые дистрибутивы, интегрирующие его: Ubuntu-Secured-Remix (компакт-диск Ubuntu, интегрирующий Boot-Repair), Boot-Repair-Disk (CD с загрузочным файлом Boot- Ремонт при запуске), ...

Надеюсь это поможет.


1
2017-12-20 08:58





В системах на базе 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, используя мой rEFInd сделать одноразовую загрузку и т. д. Я бы начал с EasyUEFI; это, скорее всего, самое простое решение. Иногда Windows настаивает на том, чтобы каждый раз при запуске устанавливать значение по умолчанию, и в отчетах указывается, что bcdedit может лучше справиться с этой проблемой.

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


1
2017-07-13 15:03





Windows не видит разделы, отформатированные в Linux. Вам нужно использовать gparted из liveCD и создать основной NTFS с файлом NTFS с флагом загрузки.

У некоторых возникли проблемы, если новый основной раздел находится после расширенного раздела, так как Windows не всегда правильно перезаписывает таблицу разделов. Лучше иметь хорошие резервные копии и отдельную резервную копию таблицы разделов.

Резервное копирование таблицы разделов в текстовый файл и сохранение на внешнем устройстве.

sudo sfdisk -d /dev/sda > PTsda.txt

Это относится только к системам MBR (msdos). Если ваша установка Ubuntu находится на диске разделов GPT, вы можете установить Windows только в режиме UEFI или преобразовать диск обратно в MBR (msdos).


0
2017-07-30 20:01



Новые версии sfdisk и fdisk, которые работают с секционированными дисками gpt в 16.04 или новее, также будут создавать резервные копии разделенных дисков gpt с приведенной выше командой. oldfred не помнит, что он ел на ужин прошлой ночью, поэтому не уверен, что он отправил обратно в 2013 году. :) - oldfred
Привет, Фред, когда я готовлю забыть ужин прошлой ночью, это благословение. Мы удалили наши предыдущие комментарии. - WinEunuuchs2Unix