用Grub启动ISO

近期作死在服务器里换系统,客户回复实在太慢,最后自己动手,丰衣足食,所以我选择用Grub(Grub2)来启动安装镜像。以下分享一些我成功的经验。

通用

menuentry "Name" {
  set root=(hdx,y)
  set isofile='/isofile.iso'
  set loader='/foo'
  loopback loop $isofile
  linux (loop)$loader/linux args
  initrd (loop)$loader/initrd
}

解释

root :ISO文件所在盘

isofile :ISO文件所在目录

loader:ISO文件中linux和initrd所在目录

linux:加载内核的命令,后面的args为内核参数

建议打开ISO文件,从里面找到grub.cfg,从里面找到loaderargs,其中args可能需要做一些修改。

以下为我尝试的一些发行版的启动方法。

openSuSE

menuentry "openSUSE" {
  load_video
  insmod gzio
  insmod part_msdos
  insmod ext2
  set root='(hdx,y)'
  set isofrom_device='/dev/sdax'
  set isofrom_system='/opensuse.iso'
  set loader='/boot/x86_64/loader'
  loopback loop $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
}

使用的镜像为openSUSE-Tumbleweed-NET-x86_64-Current.iso。

Fedora

menuentry 'Fedora' {
    set isofile='/fedora.iso'
    set loader='/isolinux'
    loopback loop $isofile
    linux (loop)$isolinux/vmlinuz inst.stage2=http://mirrors.tuna.tsinghua.edu.cn/fedora/releases/27/Everything/x86_64/os/ ro liveimg quiet rhgb rd.luks=0 rd.md=0
    initrd (loop)/isolinux/initrd.img
}

使用镜像为Fedora-Everything-netinst-x86_64-27-1.6.iso

以后有时间一定会增加

你可能感兴趣的:(用Grub启动ISO)