如何从像Fedora或CentOS这样的非Ubuntu live ISO映像启动?

我发现它可以通过如下loopback完成

 menuentry "Lucid ISO" { loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject initrd (loop)/casper/initrd.lz } 

但它只适用于ubuntu或其衍生产品。 如果我想引导其他现场图像,如fedora,cent,opensuse等,应如何编写?

编辑:我发现了一些其他条目,但所有这些条目可能都是基于debian的。

 menuentry "Linux Mint 10 Gnome ISO" { loopback loop /linuxmint10.iso linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash -- initrd (loop)/casper/initrd.lz } menuentry "DBAN ISO" { loopback loop /dban.iso linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent -- } menuentry "Tinycore ISO" { loopback loop /tinycore.iso linux (loop)/boot/bzImage -- initrd (loop)/boot/tinycore.gz } menuentry "SystemRescueCd" { loopback loop /systemrescuecd.iso linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx initrd (loop)/isolinux/initram.igz } 

Edit2:如何从grub2链式加载grubsyslinux

编辑3:我想在没有任何可移动设备的情况下启动其他实时图像并使用grub2因此需要特定于grub2菜单项。

从iso启动是一个必须由发行版支持的function,而iso-scan/filename=选项在Fedora或其他版本中不起作用。 那些可能具有此function的其他内核选项,或者根本不支持该function。

我找到了一个启动Fedora 16 DVD的方法,如下所示。

从grub引导Fedora 15 DVD iso

 menuentry“Fedora 15(DVD)”{
  insmod环回
  insmod iso9660
  set isofile =“/ Fedora-15-x86_64-DVD.iso”
  loopback loop(hd0,2)$ isofile
  linux(loop)/ isolinux / vmlinuz rootfstype = auto root = live:UUID =:$ isofile ro quiet
  initrd(loop)/isolinux/initrd.img
 }

它假设您的iso文件位于内部硬盘的第二个分区的根目录。

来源:这个页面

您可以在Google中搜索其他分发,因为它不是与发行版无关的function。

注1:它也适用于Fedora 16,我刚刚测试过它。
注意2:当您将iso文件放在fat或ext4分区中时,该方法似乎有效。


从grub2启动grml small iso

Grml也可以从grub2启动。 请注意,它使用findiso选项而不是iso-scan/filename选项,表示从iso启动实现为不同分发中的不同选项。

 (menuentry“Grml small 2009.10”{
   loopback loop /boot/iso/grml-small_2009.10.iso
   linux(loop)/ boot / grmlsmall / linux26 findiso = / boot / iso / grml-small_2009.10.iso apm = power-off lang = us vga = 791 boot = live nomce noeject noprompt  - 
   initrd(loop)/boot/grmlsmall/initrd.gz
 }

这个页面有几个从Grub2启动的其他发行版的例子。


从iso启动openSUSE 13.1 Live

这是唯一有效的解决方案(所有其他解决方案都给我找不到MBR标识符并停止)。 在此示例中,iso位于目录/home/username/中的第一个磁盘的第三个分区。

 menuentry“openSUSE_13.1_GNOME_Live”{
   load_video
   insmod gzio
   insmod part_msdos
   insmod ext2
   set root ='(hd0,msdos3)'
  设置isofrom_device ='/ dev / sda3'
   set isofrom_system ='/ home / username / openSUSE-13.1-GNOME-Live-i686.iso'
   set loader ='/ boot / i386 / loader'
   loopback循环$ isofrom_system
   linux(loop)$ loader / linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro quiet splash $ vt_handoff preloadlog = / dev / null showopts
   initrd(loop)$ loader / initrd
 }

来源是janeppo的评论 。


Fedora 17 Gnome Live Iso

这是Fedora 17的启动菜单grub.cfg条目.iso放在第一个磁盘的第三个分区。 文件名也改变了。

 menuentry“Fedora Live”{
     loopback loop(hd0,3)/fedora.iso
     linux(loop)/ EFI / BOOT / vmlinuz0 root = live:/fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0 rd.md = 0
     initrd(hd0,3)/ initrd-fromiso
 }

最后注意:我认为这个答案就是一个例子。 不应该用例子详细说明。

这是我想出的使用grub2启动的iso文件。

我已经成功启动了ISO

  • Ubuntu Precise Pangolin 12.04 ISO
  • SystemRescueCd
  • 启动硬件检测工具
  • 免费Dos
  • Hiren的启动CD
  • 终极启动CD

我发现如果你想引导其他ISO,如Hiren的Boot CD等,你可以使用MEMDISK实用程序作为内核。

哪里可以获得MEMDISK?

从这里下载Syslinux。 将其移至桌面。

如何使其工作?

 cd ~/Desktop/ tar xvif syslinux-4.05.tar.xz cd syslinux-4.05/memdisk/ sudo mkdir /customboot sudo mv memdisk /customboot/ cd /customboot/ sudo mv memdisk memdisk4.05 gksudo gedit /etc/grub.d/40_custom 

然后粘贴到gedit中的条目下面。 您需要更改set isofile="/path/to/iso-file.iso"

然后发出update-grub 。 重启并检查。

我在40_custom文件中的条目。

 menuentry "Ubuntu Natty Narwhal 11.04 ISO" { set isofile="/OS/ubuntu-11.04-desktop-i386.iso" loopback loop (hd0,6)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject -- initrd (loop)/casper/initrd.lz } menuentry "Ubuntu Precise Pangolin 12.04 ISO" { set isofile="/OS/ubuntu-12.04-desktop-i386.iso" loopback loop (hd0,6)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject -- initrd (loop)/casper/initrd.lz } menuentry "SystemRescueCd" { set isofile="/OS/systemrescuecd-x86-2.7.0.iso" loopback loop (hd0,6)$isofile linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx initrd (loop)/isolinux/initram.igz } menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" { linux16 /customboot/memdisk4.05 iso initrd16 /customboot/hdt.iso } menuentry "Free Dos from iso using memdisk 4.05" { set isofile="/OS/fdbasecd.iso" linux16 /customboot/memdisk4.05 iso initrd16 (hd0,6)$isofile } menuentry "Hiren's boot CD using memdisk 4.05" { set isofile="/OS/Hiren's.BootCD.10.1.iso" linux16 /customboot/memdisk4.05 iso initrd16 (hd0,6)$isofile } menuentry "Ultimate Boot CD iso using memdisk 4.05" { set isofile="/OS/ubcd511.iso" linux16 /customboot/memdisk4.05 iso initrd16 (hd0,6)$isofile } 

所有ISO都保存在sda6/OSMEMDISK保存在安装了ubuntu的分区上(在root中), memdisk4.05命名为memdisk4.05因此它的路径是/customboot/memdisk4.05

注意: fedora没有给出给出的其他答案。 还在尝试启动fedora :(。

您要问的是这里的主题,因为它需要知道其他系统能够设置grub条目以正确启动它们。 对的,这是可能的。

但是……您会发现Multi System是一款能够在一个大型USB驱动器上拥有许多不同发行版ISO的称职工具。 我发现它确实很有效但你必须从PPA安装它:

http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/

我使用它,以便我可以在一个Pendrive上安装Gasted LiveUSB和其他工具以及Ubuntu的InstallFests。 作为奖励,它允许菜单的自定义闪屏,我已将其设置为澳大利亚LoCo团队的徽标。

克里斯

如上所述,Multisystem使用Grub2来做你想要的。 由于这个偏离主题的线程被允许,或者至少可以容忍我的Multisystem Grub2中的Fedora条目:

  menuentry "Fedora-15-i686-Live-Desktop.iso" { linux /fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd initrd /fedora1/isolinux/initrd0.img } 

请注意,您不能直接从ISO启动,因为它不支持,因为它是基于Debian的发行版。 您将需要硬盘驱动器上可用的ISO解压缩文件,如下所示:

 chris@chris-office:/media/RED8/fedora1$ ls -l total 563972 drwx------ 2 chris chris 4096 Feb 11 2011 isolinux -rw-r--r-- 1 chris chris 43503 May 14 2011 livecd-iso-to-disk -r--r--r-- 1 chris chris 8192 May 14 2011 osmin.img -r--r--r-- 1 chris chris 577449984 May 14 2011 squashfs.img 

您当然需要更改/ fedora /目录的位置以及正在启动Fedora的分区的UUID。 您可能还应该将安装模式从ro更改为rw,以及其他任何适当的安装模式,例如squashfs上的权限。

您也可以设置虚拟持久性磁盘,虽然我没有理由不能挂载普通/ home分区。 同样,我只能建议您安装Multidisk并自己进行配置以了解如何执行此操作。

克里斯

好像13.04需要不同的语法来实现这一点。 有没有人从物理磁盘成功启动ubuntu-13.04-desktop-amd64.iso并且想要共享grub语法?

编辑:回答我自己的问题。 需要将vmlinuz重命名为mvlinuz.efi并且它有效。

 menuentry "Ubuntu-13.04-desktop-amd64.iso" --class ubuntu { set isofile="/archives/ubuntu-13.04-desktop-amd64.iso" loopback loop (hd1,6)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt -- initrd (loop)/casper/initrd.lz } 

我发现使用grub2的环回非常有价值,可以测试新的isos而无需使用usb棒或刻录到CD。 针对Fedora提出的类似工作的错误。 追踪当前状态有点耗时。

尝试使用Multisystem,安装所需的liveCD,然后将文件复制到/并合并grub.cfgs! (我真的很想知道它是否会起作用!)。

不幸的是,这些建议都没有帮助我。 所以我找到了方法,并愿意与您分享。 例如,要启动centos,您需要:将iso映像放在目录中。 如果您的根目录安装在/ dev / sda1上,那么创建dir / iso并将iso放在那里。 转到grub控制台(当菜单grub出现时按’c’。)

选择合适的设备 – hd0表示sda。 您需要选择iso所在的位置。

 loopback loop (hd0,msdos1)/iso/Redhat.iso linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso initrd (loop)/isolinux/initrd.img boot 

然后开机吧!