使用Grub2引导硬盘上的iso文件
这篇教程介绍如何使用Grub2启动管理器引导硬盘上的ISO镜像文件。不刻光盘,不做Live USB,使用Grub2引导保存在硬盘上的iso文件。很多Linux发行版都支持直接从ISO镜像文件引导。
Grub2引导ISO镜像文件的方法
首先编辑/etc/grub.d/40_custom这个文件。
sudo nano /etc/grub.d/40_custom
文件的第一行是#! /bin/bash,表明这是一个shell脚本文件。将下面的内容粘贴到文件末尾。
menuentry "ubuntu-mate-15.10-desktop-amd64.iso" { set isofile="/home/xiao/Downloads/ubuntu-mate-15.10-desktop-amd64.iso" loopback loop (hd0,3)/$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject nopromt spalsh -- initrd (loop)/casper/initrd.lz }
解释
- menuentry:这个条目将会出现在Grub2的启动菜单。你可以随意命名这个条目。
- set isofile: 这个是用来指定isofile的值,也就是指定ISO镜像文件的路径。在这里,我的Ubuntu Mate版ISO镜像文件保存在Downloads目录下。
- hd0, 3: hd0表示第一块硬盘,3表示ISO镜像文件保存在/dev/sda3硬盘分区。
- casper/vmlinuz.efi: 这是Ubuntu镜像文件中Linux内核文件的路径
- casper/initrd.lz: 这是ubuntu镜像文件中initrd文件的路径
你需要根据自己的情况修改以上内容。修改完后保存文件。然后更新Grub2菜单。
sudo update-grub
现在你可能不会发现Grub2启动菜单有任何变化。但重启电脑后就能发现。
sudo reboot
你的自定义条目会出现在Grub2启动菜单的最底部。如果Grub2不能引导你的镜像文件,请查看/etc/grub.d/40_custom文件,看看是否有打错字母或漏掉空格等。
你也可以添加多个条目。下面是我的/etc/grub.d/40_custom文件的截图。第一个条目是Ubuntu-Mate,第二个条目是Archlinux.
请注意,不同的Linux镜像文件其Linux内核文件和initrd文件的路径和名称有所不同。在Ubuntu镜像文件里,Linux内核文件的路径是/casper/vmlinuz.efi,initrd文件的路径是/casper/initrd.lz。如果你不清楚这两个文件在ISO镜像文件的路径,请先用文档管理器打开ISO镜像文件查看。
另外,即使是同一个Linux发行版,32位的和64位镜像文件里的Linux内核文件名称和initrd文件名称也有可能不同.例如,ubuntu 15.10 64位镜像的Linux内核文件是/casper/vmlinuz.efi,而我下载的ubuntu 15.10 32位镜像的Linux内核文件则是/casper/vmlinuz