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 машины.
Что мы делаем
- Раздел USB
- Скопировать файлы syslinux
- Копировать syslinux.cfg
- Запустите команду
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]# найти .