我想随身携带一个 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
):
使用 gparted 或类似工具,确保笔式驱动器的第一个分区是 gpt,并且有标签
<YOURLABEL>
(这可以非破坏性地更改);使用以下命令将引导标志添加到分区:
parted /dev/sda set 1 boot on
挂载
/dev/sda1
到 a<MountPoint>
并将所有 ISO 内容提取到其中,例如 7z:7z x <PATH/TO/ISOFILE.iso> -o<MountPoint>
更改
<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://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
}