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

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

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

Ответы [ 12 ]

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!).

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 при незначительных обновлениях .

...