使用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这个镜像文件.
- menuentry后面的文字将会显示在Grub2的启动项.
- insmod ntfs用来加载ntfs模块,以支持NTFS文件系统.
- insmod iso9660加载iso6660模块,以确保Grub能正确读取ISO镜像文件.
- set isofile用来指定镜像文件的路径,最好是将镜像文件放在home目录下.
- hd0,4表示第一块硬盘的/dev/sda4分区,如果你的镜像文件在/dev/sda1,那么将4改成1.硬盘分区不要加密.
- 第4行指/boot/x86_64/loader/linux指定了linux内核在镜像文件中的路径.install=hd:$isofile是将镜像文件作为安装系统时的软件库.
- /boot/x86_64/loader/initrd指定了initrd文件在镜像文件中的路径.
根据自己的情况修改以上内容。修改完后保存文件。然后更新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.
打开后就能浏览镜像文件的内容了.OpenSUSE的linux内核文件在/boot/i386/loader或/boot/x86_64/loader这个目录下.在这个目录下也能找到initrd这个文件.
为这篇文章评分
[Total: 5 Average: 4]