Answers:
是的,您可以通过在GRUB
引导加载程序菜单中添加菜单项来完成此操作。
您可以通过编辑添加自定义GRUB菜单项/etc/grub.d/40_custom
,
自定义menuentry的示例:
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Trisquel ISO" {
set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso"
loopback loop (hd0,5)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd
}
说明及解释:
该命令set
用于将ISO文件的路径存储到此处的变量中isofile
。
loopback
用于从文件系统映像制作设备。为此,必须指定设备和图像文件。在这里我们使用(hd0,5)$isofile
其中(hd0,5)
代表磁盘的第五个分区。
linux
该命令用于从文件加载Linux内核(vmlinuz)。将Linux内核的路径放在ISO中。
读取/提取ISO的内容以获得内核示例的路径:
$ 7z l trisquel_7.0_i686.iso | grep vmlinu
2014-10-29 21:41:43 ..... 5841680 5841680 casper/vmlinuz
2014-11-03 00:45:09 ..... 5844176 5844176 casper/vmlinuz.netinst
所以,/casper/vmlinuz
被用在这里。
initrd
命令用于为Linux内核映像加载初始ramdisk,并在内存的Linux设置区域中设置适当的参数。
initrd
ISO。读取/提取ISO的内容以获得以下路径initrd
:
$ 7z l trisquel_7.0_i686.iso | grep initrd
2014-11-03 00:45:19 ..... 16851900 16851900 casper/initrd
2014-11-03 00:45:09 ..... 9398592 9398592 casper/initrd.netinst
诸如的附加参数boot=casper iso-scan/filename=$isofile noprompt noeject
可能特定于GNU / Linux发行版,并且对于另一个Linux家族有所不同。您可以从此处找到针对不同系列/发行版的一些配置。
注意:某些发行版使用initrd.gz
或initrd.lz
取决于所使用的算法/压缩。
编辑后/etc/grub.d/40_custom
,需要通过update-grub2
命令更新GRUB 。重新启动后,您会在GRUB屏幕上找到添加的自定义菜单项。您可以使用GNU / Linux发行版的Live环境。
为了从ISO执行安装,安装程序可能需要卸载所有已安装的分区;即说安装另一个系统/isodevice
,然后就可以了umount -l /isodevice
。