如何在 GRUB 2 中从 ISO 文件启动 Fedora?

如何在 GRUB 2 中从 ISO 文件启动 Fedora?

总结:为了使用 iso 作为其文件系统 / 源 / 使任何东西以这种方式工作来启动 Fedora,我需要形成什么样的 GRUB2 菜单项 / Linux 内核启动选项,而不是简单地将其刻录到光盘上,将 ISO 设置为 VM 的虚拟光驱,或将 ISO 的内容清空到单独的驱动器分区并链接加载到其中?

背景研究

我需要一个能用的菜单项。我试了很多次,但记不住自己站在哪个位置。好久不见了……

此链接可能几乎有帮助,但该部分没有更多信息:Ubuntu 文档 - Grub2/ISOBoot/示例#Fedora

这些链接没有帮助,因为我不想将我需要的每个发行版/工具存储到单独的媒体中:

这个链接似乎root=多次提到了这个参数,并且是一个很有帮助的地方,但我无法用它来理解和解决我的情况:fedora - 常见内核问题

我的启动配置的旧版本,其中包含多个看起来不那么混乱的项目:GitHubGist - Pysis868/grub.cfg

我相信我已经在 Fedora 条目中删除了所需启动文件的“0”,并且已经超越了这一进度点。

我认为我正试图正确设置根文件系统。现在我收到以下错误:

...
[  <system_Step_time> dracut-initqueue[604]: mount: unknown filesystem type 'ntfs'
...<below message repeated>...
[  <system_Step_time> dracut-initqueue[604]: Warning: dracut-initqueue timeout - starting timeout scripts
[  <system_Step_time> dracut-initqueue[604]: Warning: Could not boot.
[  <system_Step_time> dracut-initqueue[604]: /dev/mapper/live-rw does not exist
[  <system_Step_time> dracut-initqueue[604]: /dev/root does not exist
        Starting Dracut Emergency Shell...

“ntfs”错误可能只是由于系统尝试从另一个分区读取而导致的。启动文件全部位于第一个分区,在 FAT32 文件系统中(来自我的另一台基于 Linux 的虚拟机的命令和输出):

username@localhost > sudo fdisk -l
Disk /dev/sda: 57.9 GiB, 62176362496 bytes, 121438208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x745111c0

Device     Boot     Start       End  Sectors  Size Id Type
/dev/sda1  *         2048  82915264 82913217 39.5G  c W95 FAT32 (LBA)
/dev/sda2        82915265 121436159 38520895 18.4G  f W95 Ext'd (LBA)
/dev/sda5        82915328  89982975  7067648  3.4G  7 HPFS/NTFS/exFAT
/dev/sda6        89982976 117438463 27455488 13.1G 83 Linux
/dev/sda7       117440512 121436159  3995648  1.9G 82 Linux swap / Solaris

从救援壳内部:

dracut:/# ls /dev/s* -1
/dev/sda
/dev/sda1
/dev/sda2
/dev/sda5
/dev/sda6
/dev/sda7
/dev/sg0
/dev/sg1
/dev/snapshot
/dev/sr0
/dev/stderr
/dev/stdin
/dev/stdout

/dev/shm:
lldpad.state
dracut:/# fdisk
sh: fdisk: command not found

Fedora-Workstation-Live-x86_64-25-1.3.iso/isolinux/grub.conf相关摘录:

title Start Fedora-Workstation-Live 25
    findiso
    kernel @KERNELPATH@ @ROOT@ rd.live.image quiet
    initrd @INITRDPATH@

Fedora-Workstation-Live-x86_64-25-1.3.iso/isolinux/isolinux.cfg相关摘录:

menu label ^Start Fedora-Workstation-Live 25
  kernel vmlinuz
  append initrd=initrd.img root=live:CDLABEL=Fedora-WS-Live-25-1-3 rd.live.image quiet

我查看了 Unetbootin 的安装程序,但尚未找到任何有用的文件。

LinuxLive USB Creator 2.9.4\sources\LiLi\Boot_Menus.au3相关摘录:

         & @LF & "label live" _
         & @LF & "  menu label " & Translate("Live Mode") _
         & @LF & "  kernel "&$vmlinuz_file _
         & @LF & "  append initrd="&$initrd_file&" root=UUID=" & $uuid & " rootfstype=vfat ro "&$liveimg_text&" quiet rhgb rd.luks=0 rd.md=0 rd.dm=0" _
         & @LF & "  menu default"

来自我当前混乱的测试块的相关摘录/boot/grub2/grub.cfg

menuentry "TEST Fedora-Workstation-Live-x86_64-25-1.3 TEST 2" {
  set isofile="$linuxPath/Fedora-Workstation-Live-x86_64-25-1.3.iso"
  loopback loop "$isofile"
  # linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-WS-Live-25-1-3 rd.live.image quiet
  # linux (loop)/isolinux/vmlinuz root=UUID="2016-11-15-22-03-09-00" rootfstype=vfat ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
  linux (loop)/isolinux/vmlinuz iso-scan/filename="$isofile" rootfstype=vfat ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
  # linux (loop)/isolinux/vmlinuz root=CDLABEL=Fedora-WS-Live-25-1-3 rd.live.image quiet
  initrd (loop)/isolinux/initrd.img
}

与主题相关的链接,但没有具体涵盖 Fedora:超级用户 - grub:从 ISO 启动

我不知道这是否有帮助,但我认为该search命令很简洁:askubuntu - 如何从 GRUB2 中的 .iso 文件启动?[重复]

我不会直接从硬盘和分区的文件系统中使用它。

这没有具体涵盖root=启动/内核参数,但它似乎具有类似于该9.1.4. Specifying the Installation Method部分下的值的模板格式:Fedora 文档 - 第 9 章 启动选项

安装方法-选项格式

  • CD 或 DVD 驱动器 -repo=cdrom:device
  • 硬盘 -repo=hd:device/path
  • HTTP 服务器 -repo=http://host/path
  • FTP 服务器 -repo=ftp://username:password@host/path
  • NFS 服务器 -repo=nfs:server:/path
  • NFS 服务器上的 ISO 映像 -repo=nfsiso:server:/path

实际上,这次阅读与“启动选项”页面链接相结合的帮助气泡,告诉我我可以/usr/share/doc/kernel-doc-version/Documentation/kernel-parameters.txtkernel-doc包中读取文件以获取内核选项的完整列表。

该软件包在我的 F25 系统上默认未安装,我也没有在存储库中看到它。我只看到kernel-主要带有后缀corePAEheadermodulesdebugdevelrpm的软件包tools

环境

主机:Windows 10 Pro x64

虚拟机管理程序:Oracle VirtualBox 5.1.22 和 Oracle VM VirtualBox Extension Pack 5.1.22 以管理员身份运行,以实现直接磁盘访问

虚拟机规格.png

测试物理驱动器3.vmdk

答案1

从另一次 Google 搜索来看,这个链接似乎是一条不错的线索:askubuntu - Grub2/ISOBoot#Example_ISO_Menuentries

带我来这里:askubuntu - Grub2/ISOBoot/示例#Gparted

当处理我的启动设备的其他随机部分时,我注意到示例代码中的链接,它将我引导到这里:ArchLinux - 多重启动 USB 驱动器 - Fedora#Workstation_live_medium

并且它启动了!

ArchLinux 总是有很好的 wiki 页面 :)

相关内容