Проблема: после установки Kubuntu на внешний SSD ( Transcend ESD400 512Gb ) на компьютере UEFI я не могу использовать его на другом. Я сделал несколько попыток, но все они не увенчались успехом.
Мой компьютер: UEFI, Core i7 - 4 ядра, Windows 7 Ultimate 64bit, 2 внутренних диска с GPT, внешний SSD с GPT.
Kubuntu distro: LiveUSB, созданный с помощью Universal USB Installer 1.9.5.4, Kubuntu 14.04 LTS
Внешний SSD был разделен с помощью GParted, разделы выровнены.
После каждой установки SSD форматировался и перераспределялся. GRUB был проверен: версия 2.02, EFI (не grub-pc).
Я загрузился с LiveUSB. Выполните обычную установку. Моя таблица разделов:
512Mb - EFI - fat32
30Gb - / - ext4
100Gb - /home - ext4
50Gb - /usr - ext4
50Gb - /opt - ext4
Загрузчик был установлен на внешний SSD (/ dev / sdc). После перезагрузки я нашел 2 загрузочных записи ubuntu
в UEFI. Если мой внешний SSD подключен, и я выбираю каждую из этих двух записей - все работает хорошо: Kubuntu запускается и работает. Если внешний SSD выключен - появился черный экран Minimal BASH-like line editing is supported
. Если я выберу UEFI TS512...
(загрузочная запись с меткой внешнего SSD), похоже, что следующая запись работает (Windows Boot Manager
).
Процедура установки была такой же. После перезагрузки система запустилась и заработала. Но после подключения внутренних дисков при загрузке с внешних (как ubuntu
, так и UEFI TS512...
записей) появляется черный экран с мигающим текстовым курсором и ничего не хочет запускаться. Если я выберу Windows Boot Manager
, Windows запустится хорошо.
Скопировано grubx64.efi
из /dev/sda1
в dev/sdc1
и переименовано в bootx64.efi
. Ничего нового - он идет вниз по списку записей до Windows Boot Manager
.
grub.cfg
и fstab
. В /boot/grub/grub.cfg
заменяет все hd2
на hd0
. И в fstab
я изменил UUID раздела EFI: раньше он указывал на /dev/sda1
, теперь он указывает на /dev/sdc1
.
Итак, как я могу создать портативную систему на внешнем SSD, которая будет загружаться на каждом компьютере UEFI, но не только на моем?
Ваша проблема состоит в том, что процесс начальной загрузки 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
перед продолжением. Вы не хотите перезаписывать загрузчик на Вашем внутренний диск случайно!
, Если Вы уверены, что будете загружаться с отключенной Защищенной загрузкой, Вы могли скопировать EFI/ubuntu/grubx64.efi
в EFI/BOOT/bootx64.efi
, но это не будет работать, если целевому компьютеру включат Защищенную загрузку.