Как установить Grub на внешний жесткий диск?

Итак, я использовал Ubuntu в течение месяца или двух в двойной загрузке с Windows 8, он выглядел и работал нормально, однако по какой-то причине сломался, и мне пришлось восстанавливать весь ПК. Из-за этого неудачного опыта я решил переустановить Ubuntu на внешний жесткий диск, отделенный от моей основной машины Windows. Этот вариант подходит для обеих операционных систем.

Однако, при установке Ubuntu, по какой-то причине, загрузчик Grub не был установлен на внешний диск, в то же время «старый» загрузчик Grub никогда не стирался с внутреннего жесткого диска ПК. В результате я нахожусь в странной ситуации: когда я хочу запустить Windows, я просто включаю компьютер и ухожу. Когда я хочу запустить Linux, мне нужно подключить внешний диск, зайти в меню запуска и изменить загрузчик с Windows на Grub. Внешний жесткий диск не является загрузочным (как, например, USB-накопитель), и эту длинную последовательность операций необходимо повторять каждый раз.

Краткий обзор:

  1. Внутренний жесткий диск ПК содержит ОС Windows, загрузчик Windows и Grub из старой установки Linux.
  2. Внешний жесткий диск содержит Ubuntu 15.10, возможно, Grub, но не является загрузочным, как USB-накопитель.
  3. Каждый раз, когда я хочу переключить ОС, мне нужно вручную менять загрузчик в меню запуска, что утомительно.
  4. Загрузочные устройства упорядочены следующим образом: 1. USB 2. Внешний накопитель 3. Внутренний накопитель

Мой вопрос: Как сделать внешний накопитель загрузочным, чтобы при переходе с Windows в Linux я просто выключаю компьютер, подключаю USB, включаю компьютер и работаю? (без потери данных, которые я уже сохранил на нем и все предпочтения)

PS. По какой-то причине Windows работает очень медленно при загрузке через загрузчик Grub, доступный на внутреннем диске. Кроме того, если внешний жесткий диск не подключен, загрузчик Grub отображает только панель восстановления Grub. Поэтому использование уже установленного Grub в качестве единственного загрузчика не вариант.

2
задан 29 February 2016 в 02:43

2 ответа

Я в конечном счете нашел решение своей проблемы. Я отправлю его здесь в случае, если кому-то, возможно, понадобится он. Кроме того, я не совсем уверен, что работало и если все шаги, которые я сделал, были действительно необходимы, однако это работало.

  1. Удостоверяются, что у Вас есть раздел EFI на Вашем внешнем диске с помощью gparted или чем-то подобном. Раздел должен быть FAT32, иметь начальную загрузку, и особенно отмечает, и быть смонтированным в/boot/efi. Размер должен составить по крайней мере 200 Мбит, хотя я сделал его 1 ГБ, так как я имел пространство в наличии на своем HD. Если у Вас нет этого раздела, то сделайте его.
  2. Проверка, что UUID Раздела начальной загрузки EFI на Вашем внешнем жестком диске соответствует тому в fstab файле.

для проверки UUID разделов просто вводят в терминале

ls -l /dev/disk/by-uuid

, в то время как отредактировать fstab файл

sudo nano /etc/fstab
  1. , Теперь устанавливают Личинку. (Можно также попытаться скопировать личинку от внутреннего диска до раздела внешнего диска, но это не работало на меня).

    sudo замена установки личинки/dev/sdx

sdX с фактическим диском.

  1. В случае, если Вы уже не сделали этого, включите начальную загрузку из Карты памяти и удостоверьтесь, что внешний загрузчик загружается перед внутренним из Вашего установочного меню UEFI. Теперь Ваша машина должна загрузиться сначала от USB затем (если никакой загрузчик не был найден) от внутреннего жесткого диска.
0
ответ дан 29 February 2016 в 12:43
  • 1
    спасибо. Я попробовал это и добрался немного далее, но теперь получение новых ошибок, которые я добавил к вопросу – codecowboy 28 May 2017 в 23:56

Это - то, как я установил личинку к своему внешнему жесткому диску (GPT), которому установили Ubuntu 17.04. Когда Вы делаете это, это позволяет Вам загружать свою Ubuntu на любом ПК, который поддерживает UEFI при помощи личинки на внешнем, не полагаясь на личинку ПК. Это может также служить резервной личинкой в случае, если проблема с EFI Windows.

Личинка Установки к внешнему жесткому диску, который имеет Ubuntu, установила

  1. Начальная загрузка в Ubuntu живой USB, и подключите внешний жесткий диск.

  2. разделы Списка всех устройств:

    lsblk
    
  3. От результатов [1 116], определите раздел Linux и также efi раздел внешнего жесткого диска, т.е. /dev/sdXY1 и /dev/sdXY2 соответственно. Замена XY1 и XY2 с Вашими собственными именами раздела.

  4. Специальное монтирование раздел Linux:

     sudo mount /dev/sdXY1 /mnt
    
  5. Монтируют критические виртуальные файловые системы:

    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    
  6. chroot в раздел Linux Вы смонтировались:

    sudo chroot /mnt
    

    Вы находитесь теперь в файловой системе Linux внешнего жесткого диска.

  7. Создают каталог, где личинка установила бы свои файлы:

    mkdir -p /boot/efi
    

    , Если это уже существует, затем пропустите к шагу 8.

  8. , Монтируют efi раздел от шага 3:

    mount /dev/sdXY2 /boot/efi
    
  9. личинка Установки к внешнему жесткому диску:

    grub-install /dev/sdX
    
  10. личинка Обновления:

    update-grub
    
  11. Находят UUID efi раздела (иначе 'vfat') и записывают его:

    blkid
    

    или

    ls -l /dev/disk/by-uuid
    
  12. Теперь мы должны сказать fstab монтировать что efi раздел на начальной загрузке:

    cp /etc/fstab /etc/fstab.bak  
    sudo nano /etc/fstab  
    

    Добавляют ниже двух строк к fstab, заменяющему xxxx-xxxx с UUID от шага 11:

    #my modified fstab to mount external hard drive's esp  
    UUID=xxxx-xxxx   /boot/efi   vfat   umask=0077   0   1  
    

    Удостоверяются, что прокомментировали fstab запись Windows особенно, таким образом, это не конфликтует.

  13. Выход chroot:

    exit
    
  14. Перезагружают ПК:

    sudo reboot
    

В этой точке, когда Вы перезагрузите и выберете свое внешнее устройство из диспетчера начальной загрузки EFI, оно загрузится для расчистки.

, Чтобы заставить Ubuntu автоматически загрузиться при вставке внешнего и Windows для автоматической начальной загрузки, когда внешнее не вставляется, необходимо было бы создать пользовательскую запись загрузки для Ubuntu для указания на efi на внешнем диске:

Создание пользовательской записи загрузки для Ubuntu для указания на efi на внешнем HD

Из Windows EasyUEFI может добавить или удалить записи загрузки.

От Linux efibootmgr может добавить или удалить записи загрузки.

Альтернативный № 1 – использование EasyUEFI

  1. В Windows загружает EasyUEFI, устанавливает его и работает.

  2. Выбирают , менеджер по опциям EFI

  3. Выбирает создают 'новую запись' с +, знак

  4. Выбирает Linux или другая ОС и дает ему имя в Выборе поля

  5. описания раздел FAT32 EFI на внешнем диске, который содержит загрузчик личинки

  6. , Выбирают , обзор

  7. Перешел к [11 106]/efi/ubuntu/shimx64.efi или ,/efi/ubuntu/grubx64

  8. Сохраняет

  9. Перемещение это к верхней части списка записей загрузки

  10. Перезапуск

Альтернативный № 2 – использование efibootmgr

  1. записи меню начальной загрузки List:

    efibootmgr
    
  2. Создают запись загрузки:

    efibootmgr -c [-L label] [-d /dev/sdX]
    

    , например: efibootmgr -c -L myubuntu -d /dev/sdX

    Эта запись загрузки автоматически была бы первой записью.

    /dev/sdX внешний жесткий диск с загрузчиком личинки.

  3. можно теперь перезагрузить, и без вмешательства автоматически загрузилась бы Ubuntu, когда внешний жесткий диск включается. Когда внешний жесткий диск не включается, ПК пропустил бы наш запись загрузки Ubuntu к следующей записи, которая является, вероятно Windows Boot Manager .

0
ответ дан 29 February 2016 в 12:43
  • 1
    Попытайтесь загрузить zfs-doc от здесь . Все другие пакеты, кажется, зависят от него. Можно установить его путем выполнения dpkg -i <file you just downloaded> –  28 May 2017 в 23:36

Другие вопросы по тегам:

Похожие вопросы: