Uefi usb boot: Create Bootable USB with UEFI Diagnostics

Как установить Linux на USB-накопитель с поддержкой UEFI

Я уже писал в блоге об установке Linux на внешний USB-накопитель или диск (лучше, если это SSD), чтобы сделать такую ​​установку переносимой на любой компьютер. В этом старом сообщении в блоге я использовал VirtualBox для фактической установки. Я полагался на VirtualBox, потому что, когда я пытался установить Linux непосредственно на внешний USB-накопитель после загрузки с другого USB с живым образом, я в конечном итоге нарушил конфигурацию grub моего текущего компьютера: если я попытался загрузить свой компьютер без вновь созданного USB установки я не смог выбрать ни одну ОС для загрузки. В то время я не занимался дальнейшими исследованиями, потому что решение VirtualBox работало для меня как шарм.

Однако USB с Linux, установленным через VirtualBox, можно было использовать только при загрузке с компьютера с включенной «Legacy boot», то есть с него нельзя было загрузиться, если UEFI был единственным выбором на этом компьютере. Даже в этом случае для меня это не было проблемой: достаточно было включить Legacy Boot в BIOS компьютера. К сожалению, когда я попытался загрузить такой USB-диск Linux в свой новый LG GRAM 16, я понял, что этот LG GRAM не позволяет указать загрузку Legacy! Затем я нашел этот интересный пост из «It’s FOSS», который объясняет проблему с UEFI, с которой я столкнулся ранее (то есть тот факт, что я вообще не мог загрузить свой компьютер, потому что конфигурация GRUB была нарушена), и способ обойти проблема. Я предлагаю вам пойти и прочитать этот пост!

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

Как и предлагается в https://itsfoss.com/intsall-ubuntu-on-usb/, прежде чем начать экспериментировать с процедурой этого руководства, прочитайте его полностью.

Прежде всего, давайте резюмируем, что я хочу сделать. Я хочу установить Linux на портативный внешний USB SSD. Мне не нужен живой дистрибутив: живой дистрибутив дает вам только небольшой опыт тестирования, его нелегко поддерживать и обновлять, в нем сложнее хранить ваши данные. Наоборот, установка Linux на USB-накопитель даст вам все возможности (и если USB-накопитель быстрый, это почти то же самое, что использовать Linux на обычном компьютере; это, безусловно, относится к внешнему SSD, который в настоящее время довольно дешев).

В предыдущем посте я описал как создать такую ​​установку из VirtualBox. Как я уже сказал, такой USB-накопитель можно загрузить только в режиме Legacy (. Мне все еще нужно выяснить, можно ли получить загрузочный USB-накопитель UEFI, установив его через VirtualBox . Также есть более свежий пост, в котором я достиг той же цели, загрузочный USB-накопитель UEFI с помощью VirtualBox).

Теперь я хочу установить Linux на USB-накопитель, выполнив реальную установку: я собираюсь загрузить свой компьютер с USB-накопителя с дистрибутивом Linux Live, затем я собираюсь подключить внешний USB-накопитель SSD, где я собираюсь выполнить фактическую установку. Таким образом, я не собираюсь устанавливать Linux на сам компьютер, а на внешний USB-накопитель.

Я собираюсь провести этот эксперимент:

  • Я собираюсь использовать Dell XPS 13, на котором у меня уже есть (мультизагрузка, UEFI), Windows, Ubuntu, Kubuntu и Manjaro GNOME
  • Я собираюсь установить Manjaro KDE (я уже создал LIVE USB-накопитель) на внешний USB-накопитель SanDisk SSD

USB-накопитель с дистрибутивом Live также является SanDisk (просто чтобы вы знали, если вы видите SanDisk на скриншотах; я постараюсь пояснить, когда говорю о Live USB-накопителе и USB SSD).

Я знаю, что я сказал, что я не могу загрузиться с загрузкой Legacy с LG GRAM, в то время как я могу с Dell XPS, но чтобы сделать эксперимент более интересным, я решил установить Linux на внешний USB-накопитель с помощью Dell, поэтому что я могу потом протестировать его как от Dell, так и от нового LG GRAM.

Это уже хорошо объяснено в блоге https://itsfoss. com/intsall-ubuntu-on-usb/. Я кратко подытожу это здесь: в системе может быть только один активный раздел ESP одновременно. Даже если вы выберете USB в качестве места назначения для загрузчика при установке Linux, файл EFI для нового дистрибутива (помните, установленный на внешнем диске) будет помещен в существующий раздел ESP (принадлежащий компьютеру, который вы используете только для выполнения установки на внешний диск). Таким образом, компьютер, который вы использовали для установки Linux на внешний диск, не загрузится, если у вас не подключен внешний USB-накопитель с Linux.0003

Я мог бы добавить, что тот факт, что установщик Linux позволяет вам использовать другое устройство для загрузчика, в то время как он будет молча использовать существующий раздел ESP, может рассматриваться как ошибка. Действительно, я читал об этом во многих местах. Однако похоже, что все установщики Linux разделяют это поведение, поэтому нам придется с этим смириться и использовать обходной путь.

Решение (обходной путь) проблемы выше, как описано в https://itsfoss. com/intsall-ubuntu-on-usb/, простое и умное: вы обманываете установщика, сняв флаг ESP с раздела ESP ( SSD текущего компьютера) перед установкой Linux на внешний USB-накопитель. Конечно, крайне важно после установки, до перезагрузки, вернуть ESP (как указано в конце процедуры установки). Удаление и добавление флага ESP можно выполнить после загрузки в действующую систему с помощью программы управления разделами, которая обычно является частью установочного носителя.

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

Итак, я загрузился с Live USB-накопителя с Manjaro KDE. Помните, Live USB должен быть создан соответствующим образом с поддержкой UEFI, иначе с этого момента все вообще не будет работать. Помните, что я загружаю Live USB с Dell XPS, где включена устаревшая загрузка. Поэтому я должен убедиться, что Live USB загружается с UEFI, а НЕ с Legacy:

Будучи KDE, менеджер разделов, доступный в системе Live, является одним из KDE. Вместо этого я предпочитаю Gparted, так что это просто вопрос установки его в реальной системе с помощью менеджера пакетов. Поскольку в этом примере я использую Manjaro, я просто запускаю

.
sudo pacman -Sy gparted

sudo pacman-sy gparted

Для Ubuntu это будет команда, основанная на apt (если ее еще нет), а для Fedora вам придется использовать dnf (опять же, если он еще не установлен).

Затем я запускаю GParted ; в моей системе вы можете увидеть сложную конфигурацию внутреннего SSD моего компьютера ( /dev/nvme0n1 )Вы можете увидеть несколько зарезервированных разделов для восстановления установки Windows (тот, что был с этим компьютером), 3 раздела ext4 для 3 ОС Linux, упомянутых выше, 1 раздел ext4, который монтируется во всех 3 установленных Linux, установка Windows и тот, который нас интересует, первый, с меткой ESP. Вы можете увидеть его флаги загрузка и esp . Мы должны удалить эти флаги перед началом установки. Щелкните правой кнопкой мыши на этом разделе, выберите «управление флагами» и снимите один из двух флагов boot или esp : другой будет автоматически снят, и будет выбран новый флаг mfsdata , но это не важно.

Давайте закроем GParted и запустим установщик Manjaro. Эта часть не задокументирована, поскольку я предполагаю, что вы уже знакомы с процедурой установки дистрибутива Linux, который хотите установить на внешний USB-накопитель. Важная часть — это когда вам нужно разбить целевой диск. Конечно, очень важно выбрать правильный (внешний USB-накопитель, на который вы хотите установить Linux), а НЕ SSD вашего компьютера, иначе у вас будут серьезные проблемы, как вы можете себе представить 😉

В моем примере я выбрал /dev/sdb , потому что /dev/sda — это Live USB-накопитель (как показано выше, внутренний SSD — это /dev/nvme0n1 ). Затем вам нужно правильно разбить целевой диск. В этом примере я разрешаю установщику Manjaro стереть весь этот диск, указав создать раздел SWAP с режимом гибернации. В зависимости от установщика вы можете выбрать что-то другое. Я выбрал эту стратегию, потому что таким образом установщик также автоматически создаст раздел ESP для менеджера загрузки на целевом диске с правильными флагами. Если вы хотите разбить его вручную, опять же, в зависимости от установщика, вам, возможно, придется создать раздел ESP вручную. (вы можете увидеть пример такого ручного раздела в упомянутой статье https://itsfoss.com/intsall-ubuntu-on-usb/.) Помните, что у вас все еще есть возможность ознакомиться с такими изменениями, прежде чем начинать фактические модификации на файловая система

Когда установка завершится, вы увидите сообщение о необходимости перезагрузки во вновь установленную систему… ПОКА ЭТОГО НЕ ДЕЛАЙТЕ. Помните: вы должны сбросить флаг esp и boot раздела ESP внутреннего диска компьютера: просто снова используйте GParted и выполните процедуру, аналогичную той, что выполнялась в начале.

Поскольку вы все еще находитесь в GParted, вы также можете проверить, что внешний диск, на который вы только что установили Linux, выглядит правильно, например, в моем случае

Теперь, наконец, пришло время перезагрузиться и посмотреть, что произойдет…

Прежде всего, я хотел убедиться, что все еще могу загружать операционные системы на своих компьютерах Dell XPS, поэтому я удостоверился, что загрузился со всеми USB-накопителями. отключен. Казалось, все работает, но… подождите… основным загрузчиком UEFI на моем компьютере был Manjaro GNOME, который был автоматически настроен для загрузки ОС Ubuntu, просто полагаясь на os-prober , который обычно является частью большинства установок Linux. (кроме PopOS, насколько я знаю). Однако от старого загрузчика UEFI Manjaro не осталось и следа: появился загрузчик UEFI Ubuntu. Вы знаете, что у вас может быть несколько загрузчиков UEFI на одной машине, и вы также можете изменить их порядок из BIOS. Также зайдя в BIOS, Manjaro UEFI пропал! Проблема в данном случае заключается в том, что Ubuntu не может загрузить дистрибутив Manjaro (я до сих пор не знаю, почему). Установка Manjaro все еще была там, но я не мог ее загрузить!

Но подождите… У меня все еще есть новая установка на внешнем USB-накопителе! Я загрузился с этим, и он показывает как новый Manjaro KDE (первый, конечно, в меню), так и запись для загрузки Manjaro GNOME моего компьютера. Действительно, os-prober сработал и во время установки на внешний жесткий диск: он обнаружил и операционки, установленные на моем компьютере (это ожидаемо). Это видно на фото (обратите внимание на раздел /dev/nvme0n1 ):

Отлично! Я мог загрузиться в Manjaro GNOME компьютера, используя загрузчик внешнего диска. Оказавшись там, я отключил внешний диск и переустановил GRUB UEFI Manjaro GNOME на свой компьютер. Нужно просто запустить sudo grub-install (больше ничего указывать не нужно: существующая установленная ОС уже знает, куда установить GRUB), а затем sudo update-grub :

$ sudo grub-установить
Установка для платформы x86_64-efi.
Установка завершена. Об ошибках не сообщается.

$ sudo update-grub
Создание файла конфигурации grub…
Найдена тема: /usr/share/grub/themes/manjaro/theme.txt
Найден образ Linux: /boot/vmlinuz-5.13-x86_64
Найден образ initrd: /boot/intel-ucode.img /boot/initramfs-5.13-x86_64.img
Найден резервный образ initrd: /boot/initramfs-5.13-x86_64-fallback.img
Предупреждение: os-prober будет запущен для обнаружения других загрузочных разделов.
Его выходные данные будут использоваться для обнаружения на них загрузочных двоичных файлов и создания новых загрузочных записей.
Обнаружен диспетчер загрузки Windows на /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Найден Ubuntu 21.10 (21.10) в /dev/nvme0n1p11.
Найден Ubuntu 21.10 (21.10) на /dev/nvme0n1p8
Найден Manjaro Linux (21.1.6) в /dev/sda2.
Добавление пункта меню загрузки для настроек прошивки UEFI…
Найден образ memtest86+: /boot/memtest86+/memtest.bin
сделано

1

2

3

4

5

6

7

8

10

110003

12

13

14

199991110009

9000 2

14

9000 3

9000 3 9000 3 9000 2 9000 2

14 9000 3

9000 3

9000 2

14 9000 3

9000 2

18

19

$ sudo grub-install

Установка для платформы x86_64-efi.

Установка завершена. Об ошибках не сообщается.

 

$ sudo update-grub

Генерация файла конфигурации grub…

Найдена тема: /usr/share/grub/themes/manjaro/theme.txt

Найден образ linux: /boot/vmlinuz-5.13-x86_64

Найдено образ initrd: /boot/intel-ucode.img /boot/initramfs-5.13-x86_64.img

Найдено резервный образ initrd: /boot/initramfs-5.13-x86_64-fallback.img

Предупреждение: os-prober будет выполняется для обнаружения других загрузочных разделов.

Его выходные данные будут использоваться для обнаружения на них загрузочных двоичных файлов и создания новых загрузочных записей.

Обнаружен диспетчер загрузки Windows в /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi

Обнаружен Ubuntu 21.10 (21.10) в /dev/nvme0n1p11

Обнаружен Ubuntu 21.10 (20.10) в /dev/3900n Найден Manjaro Linux (21.1.6) в /dev/sda2

Добавление записи меню загрузки для настроек прошивки UEFI…

Найден образ memtest86+: /boot/memtest86+/memtest. bin

выполнено

Перезагрузился и все стало нормально на моем компьютере!

все хорошо, что хорошо кончается! 😉

Почему это вообще произошло? Честно говоря, я не совсем уверен… то, что я заметил ранее, когда устанавливал Ubuntu, а затем Kubuntu на этот компьютер, заключалось в том, что, поскольку конфигурации GRUB обеих систем используют «Ubuntu» в качестве метки, установка Kubuntu, которая была выполнена после установка Ubuntu заменила запись UEFI прежней; это никогда не было проблемой, потому что я могу загрузить Ubuntu из Kubuntu и наоборот на всякий случай. Возможно, это произошло и в моем эксперименте, поскольку у меня на компьютере была запись UEFI «Manjaro» (GNOME), и я установил на внешний жесткий диск другой дистрибутив «Manjaro» (KDE): оба используют одну и ту же метку «Manjaro». Этого не должно было случиться, потому что раздел ESP не должен был быть обнаружен установщиком, но, возможно, это было неправильное предположение (в конце концов, os-prober все еще может обнаруживать существующие установки ОС).

Эта ситуация НЕ описана в https://itsfoss.com/intsall-ubuntu-on-usb/ и действительно в той статье эксперимент был немного другим: автор устанавливает на внешний винчестер дистрибутив «Ubuntu», а на компьютере уже был дистрибутив «Debian», поэтому метки были другими.

В любом случае, даже в случае проблем, подобных той, что возникла, было довольно легко все исправить!

Надеюсь, вы найдете это руководство полезным для экспериментов с установкой Linux на переносные жесткие диски USB или даже на USB-накопители, если они быстрые 😉

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

Вот так:

Нравится Загрузка…

linux — Создание загрузочного USB-накопителя syslinux на UEFI

Мы используем машину Centos 8 для создания загрузочных установщиков USB-диска syslinux для нашего продукта. Созданный USB теперь поддерживает только целевые машины с BIOS (или с включенным режимом CSM), но нам нужно обновить его для поддержки UEFI.

Инструкции на syslinux.org довольно скудны, и несколько дней
поиски не увенчались успехом.

Попытка загрузиться с HP EliteDesk всегда приводит к ошибке «BootDevice не найден». Загрузка через USB включена в BIOS машины.

Что мы делаем

  1. Раздел USB
  2. Скопировать файлы syslinux
  3. Копировать syslinux.cfg
  4. Запустите команду syslinux для установки

Любые намеки на то, что я делаю неправильно, или, возможно, указатель на лучший набор инструкций о том, как это сделать?

ПЕРЕГОРОДКА

 (разделенная) mkpart
Имя раздела? []? ЭФИ
Тип файловой системы? [доб2]? жир32
Начинать? 512 МБ
Конец? 1024 МБ
(разделенный) набор 1 esp
Новое государство? [вкл выкл? на
(разошлись)
Имя раздела? []? Установщик
Тип файловой системы? [доб2]? жир32
Начинать? 1024 МБ Конец? 100%
(расстались) п
Модель: универсальный флэш-диск (scsi)
Диск /dev/sdc: 8053 МБ
Размер сектора (логический/физический): 512Б/512Б
Таблица разделов: флаги gpt-диска:
Номер Начальный Конечный Размер Файловая система Имя Флаги
1 512 МБ 1024 МБ 513 МБ загрузка FAT32 EFI, esp
2 1024 МБ 8052 МБ 7028 МБ Программа установки файловой системы FAT32
 

КОПИРОВАНИЕ ФАЙЛОВ

После копирования раздел EFI содержит:

 # find /mnt/usb
/мнт/usb
/мнт/usb/efi
/mnt/usb/efi/загрузки
/mnt/usb/efi/загрузки/ldlinux. e64
/mnt/usb/efi/boot/syslinux.efi
/mnt/usb/efi/boot/libcom32.c32
/mnt/usb/efi/boot/vesamenu.c32
/mnt/usb/efi/boot/libutil.c32
/mnt/usb/efi/boot/menu.c32
 

УСТАНОВИТЬ SYSLINUX

 # umount /mnt/usb
# syslinux -d /efi/boot --install /dev/sdc1
 

РЕДАКТИРОВАТЬ I

Я попытался изменить имя файла по совету telcoM, но загрузчик не запустился. (проверено на HP EliteDesk 800 и промышленной материнской плате).

Компьютер HP сообщает «BootDevice not found», и промышленная материнская плата переходит непосредственно в BIOS.

Для тестирования мы просто пытаемся добиться распознавания загрузчика.

Конфигурация BIOS: CSM выключен, а загрузочное устройство настроено на «UEFI: KIOXIA 1».

 часть /dev/sdb p
Модель: KIOXIA TransMemory (scsi)
Диск /dev/sdb: 15,5 ГБ
Размер сектора (логический/физический): 512Б/512Б
Таблица разделов: gpt
Флаги диска:
Номер Начальный Конечный Размер Файловая система Имя Флаги
 1 512 МБ 1024 МБ 513 МБ загрузка FAT32 EFI, esp
 

USB содержит:

 mount /dev/sdb1 /mnt/usb
[root@bluebox /]# cd /mnt/usb
[root@bluebox usb]# найти .

Читайте также: