Как мне починить личинку? (Как вернуть 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 голосов
от
редактировать

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

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

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

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

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

0 голосов
от
редактировать

Только fsck команда исправила экран grub-rescue для меня.

Используйте Boot-Repair для загрузки с Live-CD, затем откройте терминал

Получить правильное устройство:

sudo fdisk -l

Необходимо найти загрузочное устройство, загрузочное устройство имеет * в категории загрузки, как здесь:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048   2000895   1998848  976M 82 Linux swap / Solaris
/dev/sda2  *    2000896 943716351 941715456  449G 83 Linux

Теперь восстановите диск, используя:

sudo fsck /dev/sda2 -y

Примечание: / dev / sda2 - загрузочное устройство в этом примере.

Перезагрузка после завершения. Готово.

...