Федора Live USB в разделе?

Вопрос или проблема

Я хочу иметь с собой загрузочную USB с Fedora Live UEFI для экстренных случаев, но не хочу носить с собой два USB-устройства. Поэтому я хочу USB накопитель с двумя разделами, один для загрузки Fedora Live, а другой для моих данных. У меня всегда был с собой такой флеш-накопитель с Fedora Live 26, и теперь я хочу один для Fedora 38 (или около того).

Проблемы:

mediawriter, стандартный способ записи Live USB в Fedora, пишет только на устройство USB, а не на раздел.

livecd-iso-to-disk мог бы работать, но у него долгое время была ошибка и он не работает.

unetbootin работает только для устаревшей загрузки, а не для UEFI. И новые компьютеры Dell загружаются только в режиме UEFI. Запрос на это открыт с 2015 года…

dd: Я пытался несколько раз с dd, но потерпел неудачу.

Есть ли какие-то идеи? Должен быть простой способ сделать это с помощью dd!!!

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

Следуя некоторым ссылкам, опубликованным @oldfred, я смог загрузиться в UEFI с раздела флеш-накопителя по следующему рецепту:

Fedora USB LIVE на раздел флешки (скажем, /dev/sda1):

  1. С помощью gparted или подобной программы убедитесь, что первый раздел флеш-накопителя имеет формат gpt и метку <YOURLABEL> (это можно изменить без разрушения);

  2. Добавьте флаг загрузки к разделу с помощью:

    parted /dev/sda set 1 boot on
    
  3. Смонтируйте /dev/sda1 в <MountPoint> и извлеките все содержимое ISO в него с помощью, например, 7z:

    7z x <PATH/TO/ISOFILE.iso> -o<MountPoint>
    
  4. Измените <MountPoint>/efi/boot/grub.cfg и <MountPoint>/boot/grub2/grub.cfg, чтобы отразить правильное устройство:

    menuentry 'Fedora-KDE-Live 38 EFI' --class fedora --class gnu-linux --class gnu --class os {
       linuxefi /images/pxeboot/vmlinuz root=live:LABEL=<YOURLABEL>  rd.live.image quiet rhgb
       initrdefi /images/pxeboot/initrd.img
    }   
    

Ремарка. Соответствующую запись в меню grub компьютера можно добавить, добавив в файл /etc/grub.d/40_custom:

menuentry 'Fedora-KDE-Live 38 EFI' --class fedora --class gnu-linux --class gnu --class os {
    search --no-floppy --label <YOURLABEL> --set=root
    linuxefi /images/pxeboot/vmlinuz root=live:LABEL=<YOURLABEL>  rd.live.image quiet rhgb
    initrdefi /images/pxeboot/initrd.img
}

Ремарка 2. К сожалению, я не смог загрузиться непосредственно с ISO, когда оно находится на флеш-накопителе. Согласно этой публикации есть ошибка, препятствующая этому с Fedora 33.

Есть два способа. Я только что использовал loopmount GRUB 2, чтобы загрузить Fedora.

Мне нравится иметь много ISO-образов, несколько Ubuntu, GParted, Boot-Repair и другие в папке, /ISO, в разделе на моих системах. Я добавляю ссылку на текстовый файл в файл 40_custom, так как я никогда не помню обновлять меню GRUB, но текстовый файл просто работает.

Другой альтернативой является создание достаточно большого FAT32-раздела, перемещение флагов boot,esp на него и извлечение ISO-образа в него. Это загрузится с /EFI/Boot/bootx64.efi. Затем переместите флаги esp,boot обратно на ваш стандартный ESP. Затем ваш стандартный установка GRUB сможет сделать конфигурационный файл в этом FAT32-разделе. GRUB не будет заботиться о том, что это больше не ESP, но вы сможете загрузиться напрямую из UEFI только с флагом esp.

menuentry 'Live Fedora 38 Beta Cinnamon No Secure' {
set isoname="Fedora-WS-Live-38-1-6"
set iso="/ISO/Fedora-Workstation-Live-x86_64-38-1.6.iso"
loopback loop (hd2,5)$iso
linux (loop)/images/pxeboot/vmlinuz rd.live.image verbose root=live:LABEL=${isoname} iso-scan/filename=$iso
initrd (loop)/images/pxeboot/initrd.img
}

Обычно самой большой проблемой является правильное установление пути и параметров.
Мой путь /ISO в разделе (hd2,5), как видно, когда разделы не смонтированы.

Это показывает мою типичную запись GRUB в виде configfile к текстовому файлу в моей папке /ISO.

Я считаю, что поскольку я использую запись configfile в текстовом файле, который GRUB запомнил, это и позволяет вышеупомянутой записи работать. Мой текстовый файл /ISO/livecdimage.cfg содержит указанный выше блок кода для загрузки Fedora 38 на моем NVMe диске, с которого я загружаюсь и который видится как hd2.

menuentry 'Live ISOs in nvme_data drive' {
search --set=root --label nvme_data
configfile /ISO/livecdimage.cfg
}

.

Ответ или решение

Создание загрузочной флешки Fedora с разделом для ваших данных является полезным решением, позволяющим иметь под рукой операционную систему для аварийного восстановления и персональные файлы на одном устройстве. Однако реализация этого решения может быть вызовом, учитывая ограничения стандартных инструментов, таких как mediawriter, livecd-iso-to-disk, unetbootin и dd. Рассмотрим, как можно обойти эти ограничения и создать такую флешку, следуя предложенным методам.

Теория

Задача сделать загрузочную флешку с Fedora, которая будет иметь раздел для собственных данных, предполагает установку Fedora Live на один из разделов с поддержкой UEFI. Однако стандартные средства для создания загрузочных USB накопителей могут иметь ограничения при работе с разделами. К примеру, mediawriter нацелен на запись данных на устройство целиком, а не на отдельный раздел. unetbootin поддерживает только старый метод загрузки. Использование команды dd безуспешно, вероятно из-за трудностей в корректной разметке диска и конфигурации загрузчика GRUB.

Пример

Из найденного решения следует, что можно использовать метод извлечения файлов ISO на раздел флешки и дальнейшую настройку GRUB для загрузки Fedora. Процесс можно изложить следующим образом:

  1. Подготовка USB накопителя:

    • Используйте gparted для создания GPT-схемы разделов на флешке и, например, создайте первую партицию с файловой системой FAT32. Задайте метку разделу, например, <YOURLABEL>.
    • Установите флаг загрузки (boot) для этого раздела командой:
      parted /dev/sda set 1 boot on
  2. Извлечение ISO-образа:

    • Смонтируйте раздел флешки (например, /dev/sda1) в директорию, например, /mnt/usb.
    • Используйте 7z для извлечения содержимого ISO-образа Fedora на смонтированный раздел:
      7z x <PATH/TO/ISOFILE.iso> -o/mnt/usb
  3. Настройка GRUB:

    • Внесите изменения в файлы /mnt/usb/efi/boot/grub.cfg и /mnt/usb/boot/grub2/grub.cfg, чтобы они указывали на правильный корневой раздел:
      menuentry 'Fedora-KDE-Live 38 EFI' --class fedora --class gnu-linux --class gnu --class os {
      linuxefi /images/pxeboot/vmlinuz root=live:LABEL=<YOURLABEL>  rd.live.image quiet rhgb
      initrdefi /images/pxeboot/initrd.img
      }
  4. Интеграция с существующей системой:

    • Можно добавить запись в меню GRUB вашей основной системы, изменив файл /etc/grub.d/40_custom:
      menuentry 'Fedora-KDE-Live 38 EFI' --class fedora --class gnu-linux --class gnu --class os {
       search --no-floppy --label <YOURLABEL> --set=root
       linuxefi /images/pxeboot/vmlinuz root=live:LABEL=<YOURLABEL>  rd.live.image quiet rhgb
       initrdefi /images/pxeboot/initrd.img
      }

Применение

Результат заключается в создании USB накопителя, на котором Fedora может загружаться в режиме UEFI и который имеет дополнительный раздел для пользовательских данных. Это решение позволяет избежать необходимости наличия отдельного устройства для ваших файлов и операционной системы. Важно актуализировать конфигурацию GRUB при каждом обновлении или изменении системы, так как неверные параметры могут привести к неработоспособному состоянию загрузочного накопителя. Распределение прав доступа и установка актуальных обновлений также важны для поддержания безопасности устройства.

Оцените материал
Добавить комментарий

Капча загружается...