Как создать портативную версию Kubuntu на внешнем диске (GPT) на компьютере с UEFI?

Как создать портативную версию Kubuntu на внешнем диске (GPT) на компьютере с UEFI?

Проблема: после установки Kubuntu на внешний SSD (Transcend ESD400 512 Гб) на компьютере UEFI я не могу использовать его на другом. Я сделал несколько попыток, но все они были безуспешными.

Мой компьютер: UEFI, Core i7 - 4 ядра, Windows 7 Ultimate 64bit, 2 внутренних диска с GPT, внешний SSD с GPT.

Дистрибутив Kubuntu: LiveUSB, созданный с помощью Universal USB Installer 1.9.5.4, Kubuntu 14.04 LTS

Внешний SSD-диск был размечен с помощью GParted, разделы выровнены.

После каждой установки SSD форматировался и переразмечался. Проверялся GRUB: версия 2.02, EFI (не grub-pc).


Попытка 1: с подключенными внутренними дисками.

Я загрузился с LiveUSB. Выполняю обычную установку. Моя таблица разделов:

512Mb - EFI - fat32
30Gb - / - ext4
100Gb - /home - ext4
50Gb - /usr - ext4
50Gb - /opt - ext4

Загрузчик был установлен на внешний SSD (/dev/sdc). После перезагрузки я обнаружил 2 загрузочные записи ubuntuв UEFI. Если мой внешний SSD подключен и я выбираю каждую из этих 2 записей - все работает хорошо: Kubuntu запускается и работает. Если внешний SSD выключен - появляется черный экран Minimal BASH-like line editing is supported. Если я выбираю UEFI TS512...(загрузочная запись с меткой внешнего SSD), похоже, работает следующая запись ( Windows Boot Manager).

Попытка 2: с отключенными внутренними дисками.

Процедура установки была такой же. После перезагрузки система запустилась и работала. Но после подключения внутренних дисков при загрузке с внешних (как ubuntuи UEFI TS512...с внешних) появляется черный экран с мигающим текстовым курсором и ничего не хочет запускаться. Если выбрать Windows Boot ManagerWindows, то запускается нормально.

Попытка 3: попытка изменить файлы efi.

Скопировано grubx64.efiиз /dev/sda1в dev/sdc1и переименовано в bootx64.efi. Ничего нового — он идет вниз по списку записей до Windows Boot Manager.

Попытка 4: попытался изменить grub.cfgи fstab.

В /boot/grub/grub.cfgзаменяет все hd2на hd0. А в fstabя изменил UUID раздела EFI: раньше он указывал на /dev/sda1, теперь он указывает на /dev/sdc1.


Так как же мне создать портативную систему на внешнем SSD-накопителе, которая будет загружаться на любом компьютере UEFI, а не только на моем?

решение1

Ваша проблема в том, что процесс загрузки EFI сохраняет данные о местоположении загрузчика в NVRAM, поэтому, когда вы устанавливаете на один компьютер, а затем перемещаете диск на другой компьютер, второй компьютер не знает, где искать загрузчик. Обычный способ обойти эту проблему — использовать имя файла загрузчика по умолчанию/резервного варианта, , EFI/BOOT/bootx64.efiна системном разделе EFI (ESP; это ваш раздел FAT32). Прошивка ищет это имя файла на съемных дисках. Большое предостережение заключается в том, что вам может потребоваться использовать встроенный в прошивку менеджер загрузки, чтобы выбрать этот диск, и подробности того, как получить доступ к этому менеджеру загрузки, различаются от одного компьютера к другому.

Вы можете вручную скопировать загрузчик в это место. Наиболее вероятный способ, который сработает из работающей установки Ubuntu, следующий:

cd /boot/efi/EFI
sudo mkdir -p BOOT
sudo cp ubuntu/shimx64.efi BOOT/bootx64.efi
sudo cp ubuntu/grubx64.efi BOOT/grubx64.efi

Обратите внимание, что эти команды перезапишут любой существующий EFI/BOOT/bootx64.efiзагрузчик. Возможно, у вас сейчас нет его на внешнем диске, но вы можете это перепроверить. Также это предполагает, что ESP навнешнийдиск смонтирован в /boot/efi. Вам определенно следует дважды проверить это, dfпрежде чем продолжить. Вы не хотите перезаписать загрузчик на вашемвнутреннийдиск случайно!

Если вы уверены, что будете загружаться с отключенной функцией Secure Boot, вы можете скопировать EFI/ubuntu/grubx64.efiв EFI/BOOT/bootx64.efi, но это не сработает, если на целевом компьютере включена функция Secure Boot.

Связанный контент