Как мне починить личинку? (Как вернуть Ubuntu после установки Windows?) - proUbuntu
336 голосов
/

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

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

Ответы [ 12 ]

341 голосов
/

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

Вот как:

  1. Загрузка с live CD или live USB в режиме «Try 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/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. На данный момент вы находитесь в вашей установке, а не в сеансе live и работаете от имени 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 иногда необходим, даже если сообщения об ошибках не отображаются.
107 голосов
/

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

Вам нужно починить MBR. Сделайте следующее

Загрузитесь с использованием живого 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

23 голосов
/

Загрузка с живого 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

  • Измените вкладку на Grub Location Tab и отметьте опции, показанные на рисунке

enter image description here

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

Метод 2

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

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

11 голосов
/

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

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

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

5 голосов
/

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

  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 и устаревшая загрузка включены.

3 голосов
/

В системах на основе 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, введенная в окне Администратор Командная строка, сделает это; однако, если ваш компьютер загружается с активной загрузкой, вместо нее потребуется bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi. Фактически, последняя команда будет обычно работать, даже если Secure Boot не используется, поэтому я сначала использовал бы эту команду. Обратите внимание, что есть более продвинутый инструмент оболочки 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, перемещенной в верхнюю часть списка.
  • Утилита настройки прошивки - Некоторые утилиты настройки EFIs позволяют настраивать порядок загрузки. Детали сильно различаются от одного EFI к другому, поэтому я не буду вдаваться в подробности, но вы можете найти такую ​​опцию в своей утилите установки.

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

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

2 голосов
/

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

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

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

1 голос
/

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

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

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

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

0 голосов
/

Ответ Скотта Северанса действителен и подробен, но существует разрешение, которое требует без внешнего загрузочного устройства , поэтому нет необходимости определять и вручную монтировать все разделы Ubuntu, ведущие к chroot.

В Windows 10 вы можете использовать Advanced Recovery для выбора устройства (раздела?) Для загрузки.

Перейдите на Settings и выберите Update & Security:

enter image description here

Перейти к Recovery:

enter image description here

С Advanced Startup выберите Restart Now

enter image description here

Затем выберите Use a Device, и вам будут представлены все параметры загрузки. Выберите раздел «ubuntu», и ваш компьютер должен загрузиться с этого раздела.

После загрузки в мою обычную среду Ubuntu я попытался просто запустить grub-update, но это не изменило.

Затем я нашел свой /boot/efi раздел, который был /dev/nvme0n1p1 и работал sudo grub-install /dev/nvme0n1p1, а затем sudo update-grub.

Это восстановило мою основную загрузочную запись несколько раз, так как, похоже, существует новая политика Windows 10 , перезаписывающая MBR при незначительных обновлениях .

0 голосов
/

Ответы Скотта и Web-E достаточно хороши и много раз помогали. Но во многих случаях средство восстановления загрузки не может восстановить grub из-за проблем, связанных с платформой i386 и amd64 или из-за того, что grub не может найти каталог efi.
Больше чем 10 раз я решил мою проблему - вручную очистил старые установки grub и установил новую.

Итак, сначала выполните первые 6 шагов из ответа Скотта , где вы можете пропустить 5-й шаг, если он выдаст ошибку:

  1. Загрузка с live CD или live USB в режиме «Try 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/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 ([см. Этот ответ, если вы не уверены] [efi]), используйте sudo fdisk -l | grep -i efi или GParted, чтобы найти ваш раздел EFI. Он будет иметь метку EFI. Смонтировать это раздел, заменив sdXY фактическим номером раздела для вашего Система:

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

    sudo chroot /mnt
    

Затем выполните следующие действия:

  1. Настройте все ожидающие пакеты.
    sudo dpkg --configure -a
  2. Исправить сломанные пакеты.
    sudo apt install -fy
  3. Удалить текущий grub.
    sudo apt purge -y grub*-common grub-common:i386 shim-signed
    Это может дать вам предупреждение, что ваше устройство не будет иметь загрузчик и, возможно, не сможет загрузиться в следующий раз. Давай, прими это.
  4. sudo apt install -y grub-pc
    После выполнения этой команды вам будет предложено указать текущий sdXY для установки загрузчика. Найдите, где установлена ​​ваша текущая ОС, с помощью команды sudo fdisk -l. Он будет помечен как Linux. Перейдите в это окно с помощью клавиши Tab и выберите параметр с помощью клавиши Пробел .
  5. Если все пойдет правильно, grub будет установлен правильно. Вы также можете сделать sudo grub-update для двойной проверки.

Если проблема все еще сохраняется, вы можете прочитать вики Arch , чтобы понять, что такое grub для решения многих других проблем. (Да, также помогает для Ubuntu!).

...