使用Grub2引导硬盘上的OpenSUSE ISO镜像文件并安装系统

上一篇文章初步介绍了如何使用Grub2启动管理器引导硬盘上的Linux发行版ISO文件.这样就免除了刻录光盘或写进U盘的过程.但每一个Linux发行版的ISO镜像文件的Grub参数配置都不一样.所以这篇教程介绍Grub2引导硬盘上的OpenSUSE ISO文件的参数配置.

Grub2引导OpenSUSE ISO镜像文件的方法

首先你的硬盘上要有一个已经安装好了的Linux发行版,并且用的是Grub2启动管理器.然后我们要编辑/etc/grub.d/40_custom这个文件。用nano或者vi文本编辑器打开.

sudo nano /etc/grub.d/40_custom

然后将下面的内容粘贴到文件末尾.

menuentry "OpenSUSE Leap 42.1" {
     insmod ntfs
     insmod iso9660
     set isofile="/home/matrix/openSUSE-Leap-42.1-DVD-x86_64.iso"
     loopback loop (hd0,4)/$isofile
     linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
     initrd (loop)/boot/x86_64/loader/initrd
}

我用的是openSUSE-Leap-42.1-DVD-x86_64.iso这个镜像文件.

  1. menuentry后面的文字将会显示在Grub2的启动项.
  2. insmod ntfs用来加载ntfs模块,以支持NTFS文件系统.
  3. insmod iso9660加载iso6660模块,以确保Grub能正确读取ISO镜像文件.
  4. set isofile用来指定镜像文件的路径,最好是将镜像文件放在home目录下.
  5. hd0,4表示第一块硬盘的/dev/sda4分区,如果你的镜像文件在/dev/sda1,那么将4改成1.硬盘分区不要加密.
  6. 第4行指/boot/x86_64/loader/linux指定了linux内核在镜像文件中的路径.install=hd:$isofile是将镜像文件作为安装系统时的软件库.
  7. /boot/x86_64/loader/initrd指定了initrd文件在镜像文件中的路径.

Grub2引导OpenSUSE ISO镜像文件

根据自己的情况修改以上内容。修改完后保存文件。然后更新Grub2启动项.

sudo update-grub     或者     sudo grub-mkconfig -o /etc/grub/grub.cfg

重启系统后就能发现Grub2多了一个启动项.选择OpenSUSE这个启动项后就能引导ISO文件并安装系统了.

注意,Grub识别的硬盘顺序跟fdisk识别的硬盘顺序可能不同,/dev/sda可能不是Grub识别的第一块硬盘,可能是Grub识别的第二块硬盘.另外,如果ISO镜像文件存放在分区的根目录,则set isofile的值前面可以不加斜杠/.

如何找出Linux内核及initrd文件在镜像文件中的路径

Linux内核及initrd文件是启动的两个必要项目.要找出它们在镜像文件中的路径,首先用档案管理器(archive manager)打开镜像文件.ubuntu系统的档案管理器叫做file-roller

Grub2引导OpenSUSE ISO镜像文件

打开后就能浏览镜像文件的内容了.OpenSUSE的linux内核文件在/boot/i386/loader或/boot/x86_64/loader这个目录下.在这个目录下也能找到initrd这个文件.

Grub2引导OpenSUSE ISO镜像文件

为这篇文章评分
[Total: 5 Average: 4]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here