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

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

Вот как это делается:

  1. Загрузитесь с live CD или live USB в режиме "Попробуйте 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/bootsudo mount /dev/sdXY /mnt/varsudo 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. Обновление личинки:

    update-grub

    Если вы получаете ошибки или переход к шагу 7 не устранил вашу проблему, перейдите к шагу 8. (В противном случае это необязательно.)

  8. В зависимости от вашей ситуации вам, возможно, придется переустановить grub:

    grub-install /dev/sdaupdate-grub # In order to find and add windows to grub menu.
  9. Если Ubuntu установлена в режиме EFI, а UUID раздела EFI изменился, вам может потребоваться обновить его в /etc/fstab. Сравните это:

    blkid | grep -i efigrep -i efi /etc/fstab

    Если UUID текущего раздела EFI (из blkid) отличается от того , что в /etc/fstab, обновление /etc/fstab с текущим UUID.

  10. Если все работало без ошибок, то у вас все готово:

    exitsudo reboot
  11. На этом этапе вы должны быть в состоянии нормально загрузиться.

Если вы не можете нормально загрузиться и не выполнили шаг 8 из-за отсутствия сообщений об ошибках, повторите попытку с помощью шага 8.

  • Иногда предоставление GRUB2 правильного конфигурация для ваших разделов этого недостаточно, и вы должны фактически установить его (или переустановить) в Главную загрузочную запись, что и делает шаг 8. Опыт оказания помощи пользователям в чате показал, что шаг 8 иногда необходим, даже если сообщения об ошибках не отображаются.