Я установил Windows 7, которая ела загрузочный файл Ubuntu. При запуске компьютера теперь он идет прямо в Windows, не давая мне возможность загружать Ubuntu.
Как я могу вернуть Ubuntu?
Я установил Windows 7, которая ела загрузочный файл Ubuntu. При запуске компьютера теперь он идет прямо в Windows, не давая мне возможность загружать Ubuntu.
Как я могу вернуть Ubuntu?
Ответы:
Когда вы устанавливаете Windows, Windows предполагает, что это единственная операционная система (ОС) на компьютере, или, по крайней мере, она не учитывает Linux. Таким образом, он заменяет GRUB собственным загрузчиком. Что вам нужно сделать, это заменить загрузчик Windows на GRUB. Я видел различные инструкции по замене GRUB на использование команд GRUB или чего-то подобного, но для меня самый простой способ - просто chroot
установить и запустить update-grub
. chroot
это здорово, потому что позволяет вам работать над вашей фактической установкой, вместо того, чтобы пытаться перенаправить вещи тут и там. Это действительно чисто.
Вот как:
Определите номер раздела вашего основного раздела. sudo fdisk -l
, sudo blkid
Или GParted (которые уже должны быть установлены по умолчанию, на живой сессии) может помочь вам в этом. В этом ответе я предполагаю, что это так /dev/sda2
, но убедитесь, что вы используете правильный номер раздела для своей системы!
Если ваш основной раздел находится в LVM , устройство /dev/mapper/
, скорее всего, будет находиться /dev/mapper/{volume}--{os}-root
там , где , скорее всего, {volume}
указано имя тома LVM и {os}
находится операционная система. Выполните ls /dev/mapper
для точного имени.
Смонтируйте свой раздел:
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
с соответствующими номерами разделов.
Привязать смонтировать некоторые другие необходимые вещи:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Если Ubuntu установлен в режиме EFI ( см. Этот ответ, если вы не уверены ), используйте sudo fdisk -l | grep -i efi
или GParted, чтобы найти раздел EFI. Это будет иметь ярлык EFI
. Смонтируйте этот раздел, заменив sdXY
его текущим номером раздела:
sudo mount /dev/sdXY /mnt/boot/efi
chroot
в вашу установку Ubuntu:
sudo chroot /mnt
На данный момент вы находитесь в вашей установке, а не в сеансе live и работаете от имени пользователя root. Обновление grub:
update-grub
Если вы получили ошибки или если переход к шагу 7 не помог устранить проблему, перейдите к шагу 8. (В противном случае это необязательно).
В зависимости от вашей ситуации вам может потребоваться переустановить grub:
grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
Если Ubuntu установлен в режиме EFI и UUID раздела EFI изменился, вам может потребоваться обновить его /etc/fstab
. Сравните это:
blkid | grep -i efi
grep -i efi /etc/fstab
Если текущий UUID раздела EFI (из blkid
) отличается от текущего /etc/fstab
, обновите /etc/fstab
текущим UUID.
Если все работало без ошибок, то все готово:
exit
sudo reboot
На этом этапе вы сможете нормально загружаться.
Если вы не можете нормально загрузиться и не выполнили шаг 8 из-за отсутствия сообщений об ошибках, попробуйте еще раз с шагом 8.
grub-efi-amd64
и если вы используете безопасную загрузку, вы захотите использовать grub-install --uefi-secure-boot
. Это также подробно описано в superuser.com/a/376471/197980
Установщик 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
.
Дополнительная информация - https://help.ubuntu.com/community/Boot-Repair
Загрузитесь с 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» в dash, если вы используете Unity. Затем следуйте следующим скриншотам:
Способ 1
Нажмите Применить и перезагрузить систему
Способ 2
Просто установите easyBCD
в Windows 7 и сделайте
Добавить новую запись> Linux / BSD> (выбрать) Grub2> (нажать) Добавить запись
Затем вы можете выбрать Ubuntu в загрузчике Windows 7, чтобы перейти к Grub2 (предыдущий загрузчик).
В системах на основе EFI (таких как большинство систем, поставляемых с Windows 8 или новее), Windows иногда обновляет свой загрузчик или сбрасывает его в качестве загрузчика по умолчанию. Это особенно часто встречается при переустановке ОС или выполнении основного обновления системы (например, при обновлении до последней версии Windows). Обратите внимание, что Windows вряд ли действительно удалит какие-либо файлы GRUB на компьютере с EFI. Все необходимое для загрузки Ubuntu все еще на месте; это просто обойдено. В этих случаях полная переустановка GRUB является излишней, и фактически это имеет (небольшой) шанс, что это создаст новые проблемы.
Таким образом, вместо переустановки GRUB в этих случаях я рекомендую по умолчанию сбросить GRUB (или любой другой загрузчик или менеджер загрузки, который вы предпочитаете). Есть несколько способов сделать это, в том числе:
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
запись для загрузки Ubuntu будет отображаться в этом меню менеджера загрузки, что позволяет вам загружаться в Ubuntu. В качестве альтернативы, вы можете загрузить аварийную среду Ubuntu, например, загрузчик установщика в режиме «попробуй перед установкой». В любом случае, вы можете использовать efibootmgr
для настройки порядка загрузки:
sudo efibootmgr
чтобы увидеть загрузочные записи.BootOrder
строку.ubuntu
и запишите ее Boot####
номер.sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
для изменения порядка загрузки, сделав xxxx
номер для Ubuntu. То, что происходит после этого, скорее всего, не очень важно, хотя я заметил, что Windows, вероятно, вернется к порядку загрузки, если его нет в списке. Таким образом, вы, вероятно, должны убедиться, что Windows находится в списке, и может быть безопаснее переупорядочить список так, чтобы все исходные записи были там, просто с ubuntu
записью, перемещенной в верхнюю часть списка.Существуют и другие варианты этих процедур, такие как использование bcfg
в оболочке EFI, использование bless
в macOS, использование моего rEFInd для однократной загрузки и т. Д. Однако я бы начал с EasyUEFI; это, вероятно, будет самым простым решением. Иногда Windows настаивает на том, чтобы каждый раз запускаться по умолчанию, и в отчетах указывается, что это bcdedit
может лучше справиться с этой проблемой.
Обратите внимание, что ничего из вышеперечисленного не относится к установкам в режиме BIOS; однако, поскольку большинство компьютеров, поставляемых с Windows 8 или более поздней версией, загружаются в режиме EFI, установки в режиме BIOS становятся все более редкими, поэтому во многих случаях лучше решать проблему способом EFI, а не путем слепой переустановки GRUB.
efibootmgr
изменить порядок загрузки (как описано в Rod -> спасибо!), который был испорчен win10 Обновить. После этого GRUB-bootmanager появляется так же, как и до обновления, поэтому я могу подтвердить, что предоставленное решение сработало для меня. Я не смог найти базовую версию EasyUEFI, а предложил только пробную версию несвободной про-версии.
Теперь есть более простое решение:
Это было проверено на ноутбуках Samsung Series 7 Chronos с двойной загрузкой Windows 8 и Ubuntu 13.10, безопасная загрузка отключена, UEFI и устаревшая загрузка включены.
Boot-Repair работал для меня. Это очень очень простое в использовании графическое приложение, вам не нужно использовать командную строку, вам нужно всего лишь нажать кнопку :)
Все доступные варианты восстановления описаны в документации по Ubuntu, и есть отдельная страница, объясняющая, как запустить Boot-Repair (путем создания загрузочного диска или установки его на существующий живой диск Ubuntu) и как его использовать.
Просто загрузите Ubuntu live CD, установите Boot-Repair и запустите его.
chroot
ремонт, чем в Google, чтобы установить какой-то другой инструмент.
Когда GRUB не работает, пользователь, как правило, не имеет доступа к системам, поэтому восстановление должно выполняться из live-сессии (live-CD или live-USB).
Существует множество возможных причин отказа GRUB: запись Windows на MBR, DRM, препятствующая правильной установке GRUB, ошибка установщика, смена аппаратного обеспечения ... Обновление GRUB, как первоначально было предложено Скоттом, как правило, недостаточно, переустановка GRUB, как предложено Марко, является более эффективный, но все же существуют различные ситуации, требующие других настроек (добавление параметров в ядро, отображение меню GRUB, изменение параметров GRUB, выбор правильной архитектуры хоста ...). Другими трудностями при ремонте GRUB является использование chroot и выбор правильных разделов / дисков.
Все это стало проще с помощью небольшого графического инструмента: Boot-Repair . Он должен быть интегрирован в компакт-диск Ubuntu 12.04 для более легкого использования, но для тех, кто в нем нуждается, уже есть несколько дистрибутивов, интегрирующих его: Ubuntu-Secured-Remix (Ubuntu CD, интегрирующий Boot-Repair), Boot-Repair-Disk (компакт-диск с Boot -Ремонт при запуске), ...
Надеюсь это поможет.
Ответы Скотта и Web-E достаточно хороши и много раз помогали. Но во многих случаях средство восстановления загрузки не может восстановить grub из-за проблем, связанных с платформой i386 и amd64 или из-за того, что grub не может найти efi
каталог.
То, что решило мою проблему, например, более 10 раз, - это ручная очистка старых установок grub и установка новой.
Итак, сначала выполните первые 6 шагов из ответа Скотта, где вы можете пропустить 5-й шаг, если он дает ошибку:
- Загрузитесь с live CD или live USB в режиме «Try Ubuntu».
Определите номер раздела вашего основного раздела.
sudo fdisk -l
,sudo blkid
Или GParted (которые уже должны быть установлены по умолчанию, на живой сессии) может помочь вам в этом. В этом ответе я предполагаю, что это так/dev/sda2
, но убедитесь, что вы используете правильный номер раздела для своей системы!Если ваш основной раздел находится в LVM , устройство
/dev/mapper/
, скорее всего, будет находиться/dev/mapper/{volume}--{os}-root
там , где , скорее всего,{volume}
указано имя тома LVM и{os}
находится операционная система. Выполнитеls /dev/mapper
для точного имени.Смонтируйте свой раздел:
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
с соответствующими номерами разделов.Привязать смонтировать некоторые другие необходимые вещи:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Если Ubuntu установлен в режиме EFI (см. Этот ответ, если вы не уверены] [efi]), используйте
sudo fdisk -l | grep -i efi
или GParted, чтобы найти раздел EFI. Это будет иметь ярлыкEFI
. Смонтируйте этот раздел, заменивsdXY
его текущим номером раздела:sudo mount /dev/sdXY /mnt/boot/efi
chroot
в вашу установку Ubuntu:sudo chroot /mnt
Затем выполните следующие действия:
sudo dpkg --configure -a
sudo apt install -fy
sudo apt purge -y grub*-common grub-common:i386 shim-signed
sudo apt install -y grub-pc
sdXY
для установки загрузчика. Найдите, где установлена ваша текущая ОС, используя sudo fdisk -l
команду. Это будет помечено как Linux
. Перейдите в этом окне с помощью Tabклавиши и выберите опцию с помощью Spaceклавиши.sudo grub-update
для двойной проверки.Если проблема все еще сохраняется, вы можете прочитать вики Арка, чтобы понять, что такое grub и решить множество других проблем. (Да, также помогает для Ubuntu!).
Windows не видит разделы в формате Linux. Вам нужно использовать gparted с liveCD и создать первичный раздел в формате NTFS с флагом загрузки.
У некоторых возникли проблемы, если новый основной раздел находится после расширенного раздела, поскольку Windows не всегда правильно сбрасывает таблицу разделов. Лучше всего иметь хорошие резервные копии и отдельную резервную копию таблицы разделов.
Резервное копирование таблицы разделов в текстовый файл и сохранение на внешнем устройстве.
sudo sfdisk -d /dev/sda > PTsda.txt
Это только для систем MBR (msdos). Если ваша Ubuntu установлена на диск с разделом GPT, вы можете установить Windows только в режиме UEFI или преобразовать диск обратно в MBR (msdos).
Только 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 - загрузочное устройство в этом примере.
Перезагрузитесь, когда закончите. Готово.
Ответ Скотта Северанса является верным и подробным, но существует решение, которое не требует внешнего загрузочного устройства, поэтому нет необходимости определять и вручную монтировать все разделы Ubuntu, ведущие к chroot
.
В Windows 10 вы можете Advanced Recovery
выбрать устройство (раздел?) Для загрузки.
Зайдите Settings
и выберите Update & Security
:
Перейти к Recovery
:
От Advanced Startup
выбораRestart Now
Затем выберите Use a Device
и все варианты загрузки должны быть представлены вам. Выберите раздел «Ubuntu», и ваш компьютер должен загрузиться с этого раздела.
После загрузки в мою обычную среду Ubuntu я попытался просто запустить, grub-update
но это не изменило.
Затем я нашел свой /boot/efi
раздел, который был /dev/nvme0n1p1
и побежал, sudo grub-install /dev/nvme0n1p1
а затем sudo update-grub
.
Это восстановило мою основную загрузочную запись несколько раз, так как, похоже, существует новая политика Windows 10 по перезаписи MBR при незначительных обновлениях .
У меня была другая проблема, вызванная (возможно) boot-repair
стиранием /etc/grub.d/
шаблонов, изложенная в моем вопросе: Ubuntu 18.04 не загружается после установки Windows 10
Как отмечено в комментарии @karels, конфигурация grub генерируется с использованием файлов в /etc/grub.d
. Только мой каталог /etc/grub.d/25_custom
содержал странные пункты меню, указывающие на несуществующие изображения .efi. Это выглядело так, как будто мои /etc/grub.d
шаблоны проскользнули мимо boot-repair
.
Я исправил это:
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub