Fedora Live USB 位于分区中?

Fedora Live USB 位于分区中?

我想随身携带一个 Fedora Live UEFI 启动 USB 以备不时之需,但我不想携带两个 USB 驱动器。所以我想要一个有两个分区的 USB 驱动器,一个用于 Fedora Live 启动,另一个用于我的东西。我一直在 Fedora Live 26 中随身携带一个这样的笔式驱动器,现在我想要一个用于 Fedora 38(左右)的笔式驱动器。

问题:

mediawriter,在 Fedora 中写入 Live USB 的标准方法,仅写入 USB 设备,而不写入分区。

livecd-iso-to-disk可以,但是它有一个长期存在的错误并且不起作用

unetbootin仅适用于传统启动,不适用于 UEFI。新的戴尔电脑只能启动 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到 a<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 位于笔式驱动器中时,我无法直接从 ISO 启动。根据这个帖子自 Fedora 33 以来,有一个错误阻止了这一点。

答案1

两种方式。我只是使用 grub2 的 Loopmount 来启动 Fedora。我喜欢在系统分区的 /ISO 文件夹中保存大量 ISO、几个 Ubuntu、gparted、Boot-Repair 等。我将文本文件的链接添加到 40_custom 中,因为我从来不记得更新 grub 菜单,但文本文件可以正常工作。

另一种选择是创建一个足够大的 FAT32 分区,将 boot、esp 标志移至其中并将 ISO 解压到其中。它将从 /EFI/Boot/bootx64.efi 启动。将 esp,boot 标志移回标准 ESP。然后,您可以让标准 grub 将配置文件写入该 FAT32 分区。 Grub 不会再关心它是不是 ESP,但你只能使用 esp 标志直接从 UEFI 启动它。

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
}

正确获取路径和参数通常是最大的问题。我的路径是分区 (hd2,5) 中的 /ISO,如未安装分区时所见。

将我的典型 grub 条目显示为 /ISO 文件夹中的配置文件到文本文件。

https://askubuntu.com/questions/1380683/how-to-install-ubuntu-based-os-on-internal-hard-drive-without-a-flash-drive-usin

https://www.linuxbabe.com/desktop-linux/boot-from-iso-files-using-grub2-boot-loader

https://help.ubuntu.com/community/Grub2/ISOBoot

https://askubuntu.com/questions/1251729/20-04-booting-iso-from-grub-menu

https://askubuntu.com/questions/395879/how-to-create-uefi-only-bootable-usb-live-media

我相信因为我使用文本文件的配置文件条目,所以设置的 grub 会被记住,这就是上面的条目起作用的原因。我的文本文件是 /ISO/livecdimage.cfg 并具有上述启动节,可用于在我的 NVMe 驱动器上启动 Fedora 38,我从该驱动器启动并被视为 hd2。

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

相关内容