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

278

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

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

    
задан Salahuddin 17.12.2011 в 08:02
источник

10 ответов

286

При установке 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 иногда необходим, даже если сообщения об ошибках не отображаются.
ответ дан Scott Severance 17.12.2011 в 13:23
источник
83

Установщик 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 .

Дополнительная информация - Ссылка

    
ответ дан Web-E 01.09.2012 в 08:59
источник
31

У меня не было проблем с использованием этих инструкций:
Ссылка

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

  

СПОСОБ 3 - ХРОНИРОВАНИЕ

     

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

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

  2.   
  3. Откройте терминал (Приложения & gt; Принадлежности & Терминал).

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

    sudo fdisk -l
    
         

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

    df -Th  
    
         

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

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

         

    Подставьте правильный раздел: sda1, sdb5 и т. д.

    sudo mount /dev/sdXX /mnt  
    
         

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

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

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

    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
    
  12.   
  13. Chroot в ваше обычное системное устройство:

    sudo chroot /mnt
    
  14.   
  15. Если нет /boot/grub/grub.cfg или оно неверно, создайте его с помощью

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

         

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

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

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

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

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

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

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

    sudo umount /mnt
    
  30.   
  31. Reboot.

    sudo reboot
    
  32.   
    
ответ дан desgua 27.04.2012 в 04:15
источник
17

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

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

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

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

Метод 1

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

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

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

Нажмите «Применить» и «Перезагрузите систему» ​​

Метод 2

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

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

    
ответ дан Stormvirux 30.07.2013 в 21:25
источник
10

Просто установите easyBCD в Windows 7 и сделайте

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

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

    
ответ дан hamed 11.03.2012 в 23:09
источник
3

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

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

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

    
ответ дан scruss 15.12.2013 в 14:04
источник
2

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

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

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

    
ответ дан lorenzo-s 18.12.2011 в 02:41
источник
1

Когда 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- Ремонт при запуске), ...

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

    
ответ дан LovinBuntu 20.12.2011 в 09:58
источник
1

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

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

  • EasyUEFI . Самый простой способ настроить порядок загрузки, если система загружается прямо в Windows, заключается в использовании EasyUEFI, , который является бесплатной (для базовой версии) сторонним инструментом графического интерфейса для управления порядком загрузки EFI. Это довольно понятно: найдите запись ubuntu в списке параметров загрузки и переместите ее в начало списка. В следующий раз, когда вы перезагрузитесь, GRUB должен подняться. (Если вы используете что-то другое, кроме GRUB, вам нужно найти его запись.)
  • bcdedit . Инструмент Windows bcdedit можно использовать для установки GRUB в порядок загрузки по умолчанию. Команда bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi , введенная в окне командной строки Администратор , сделает это; однако, если ваш компьютер загружается с активной загрузкой Secure, вместо этого потребуется 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.     

ответ дан Rod Smith 13.07.2017 в 17:03
источник
0

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

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

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

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

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

    
ответ дан oldfred 30.07.2013 в 22:01
источник

Ознакомьтесь с другими вопросами по меткам