目录
1. 多系统引导程序
1.1 简介
1.2 Grub History
1.3 支持Windows系统下安装的grub版本
1.4多系统引导程序对比:
1.5 相关参考
1.5.1 Grub 2
1.5.2 GRUB Legacy
1.5.3 grub4dos
2. Grub的使用
2.1 启动菜单命令区别:
2.2 查找启动Windows
2.3 查找启动其他系统
2.4 指定启动Windows
2.5 指定启动iso镜像文件
3. 可用于移动存储的引导程序 SYSLINUX
3.1 syslinux介绍
3.2 syslinux的使用
4. 自动化工具

1. 多系统引导程序

1.1 简介

多系统引导程序, 就是可以引导启动多种操作系统的程序,主要用于不同系列的操作系统,比如Windows + Linux。早期比较著名的多系统引导程序是LILO,只要是比较旧的文档,或者书籍,讲到安装Linux系统都会提到LILO。不过当前的主流是GRUB2。

1.2 Grub History

https://www.gnu.org/software/grub/manual/legacy/grub.html#History
GNU GRUB是一个多重 引导加载程序。它源自GRAND统一引导程序 GRUB,最初由Erich Stefan Boleyn设计和实现。GRUB起源与1995年,1999年被收入GNU的官方软件包,2005年Grub V0.97版本成为该项目的最后一个版本,不再增加功能,只会修复必要的bug。官方重命名为grub-legacy。(Grub v0.97版就是Grub Legacy)。
GRUB 2诞生于2002年,重写了GRUB核心,使其更清洁,更安全,更强大,被命名为GRUB 2。现在大多数Linux都已更新到Grub 2,但Grub Legacy版本一样可以被选择安装使用。

  • GRUB Legacy (Version: 0.97)
  • GNU GRUB (Version: 2.02)

多系统引导 Grub_第1张图片
 

1.3 支持Windows系统下安装的grub版本

Windows系统下也发展出相应的版本。

  • 源自Grub v0.97的GRUB4DOS; (文档教程很多)
  • 源自Grub v2.02的Grub2win; (相关文档较少)
  • 源自GRUB4DOS的NeoGrub;(NeoGrub是私有软件,随EasyBCD提供.)

1.4多系统引导程序对比:

如下只摘抄了一小部分,完整对比请看原文:https://en.wikipedia.org/wiki/Comparison_of_boot_loaders
多系统引导 Grub_第2张图片

1.5 相关参考

1.5.1 Grub 2

https://www.gnu.org/software/grub/
https://www.gnu.org/software/grub/manual/grub/grub.html
https://en.wikipedia.org/wiki/GNU_GRUB
http://linux-wiki.cn/wiki/zh-hans/Grub
http://linux-wiki.cn/wiki/Grub2配置
http://linux-wiki.cn/wiki/用Windows引导器启动Grub
http://linux-wiki.cn/wiki/修复被grub覆盖的ntfs分区引导扇区
https://wiki.archlinux.org/index.php/Dual_boot_with_Windows
https://wiki.archlinux.org/index.php/Multiboot_USB_drive
https://wiki.archlinux.org/index.php/GRUB
https://wiki.gentoo.org/wiki/GRUB2
https://wiki.gentoo.org/wiki/GRUB2/Chainloading
http://man.linuxde.net/grub
https://linux.cn/lfs/LFS-BOOK-7.7-systemd/chapter08/grub.html
http://www.linuxfromscratch.org/lfs/view/development/chapter08/grub.html

https://forum.ubuntu.org.cn/viewtopic.php?t=290405

grub2基础教程-修订版

1.5.2 GRUB Legacy

https://www.gnu.org/software/grub/grub-legacy.html
https://www.gnu.org/software/grub/manual/legacy/grub.html
https://zh.wikipedia.org/wiki/Grub4Dos
https://wiki.archlinux.org/index.php/GRUB_Legacy

1.5.3 grub4dos

https://zh.wikipedia.org/wiki/Grub4Dos
https://github.com/chenall/grub4dos/blob/master/README_GRUB4DOS_CN.txt
http://grub4dos.chenall.net/
http://grub4dos.chenall.net/downloads/grub4dos-0.4.6a-2019-03-25/
File: grub4dos-0.4.6a-2019-03-25.7z 520K
MD5 Checksum: 22524556e40baef1531e3cd473a7c922
Uploaded: Mon Mar 25 2019 10:29:25 GMT+0800

2. Grub的使用

Grub Legacy 与 Grub 2在使用上的区别
grub2模块化的设计,使用img文件;不再使用grub中的stage1、stage1.5和stage2。

2.1 启动菜单命令区别:

多系统引导 Grub_第3张图片

2.2查找启动Windows

 多系统引导 Grub_第4张图片 

2.3 查找启动其他系统

 多系统引导 Grub_第5张图片

2.4 指定启动Windows

 多系统引导 Grub_第6张图片

2.5 指定启动iso镜像文件

引导iso文件 GRUB Legacy GNU GRUB
Ubuntu title Ubuntu18_LiveCD
root (hd0,2)
kernel (hd0,2)/ubuntu18/vmlinuz boot=casper iso-scan/filename=/ubuntu18/ubuntu-18.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,2)/ubuntu18/initrd
menuentry "Ubuntu18_LiveCD" {
  set root=(hd0,3)
  linux /ubuntu18/vmlinuz boot=casper iso-scan/filename=/ubuntu18/ubuntu-18.iso ro quiet splash locale=zh_CN.UTF-8
  initrd /ubuntu18/initrd
}
Mint title Mint LiveCD
root (hd0,2)
kernel /mint191/vmlinuz boot=casper iso-scan/filename=/mint191/linuxmint-19.1-xfce-64bit.iso ro quiet splash locale=zh_CN.UTF-8
initrd /mint191/initrd.lz
menuentry "Mint LiveCD" {
  set root=(hd0,3)
  linux /mint191/vmlinuz boot=casper iso-scan/filename=/mint191/linuxmint-19.1-xfce-64bit.iso ro quiet splash locale=zh_CN.UTF-8
  initrd /mint191/initrd.lz
}
Arch title Install Arch
root (hd0,2)
kernel /arch/vmlinuz archisolabel=ARCH_201903
initrd /arch/archiso.img
menuentry "Install Arch" {
  set root=(hd0,3)
  linux /arch/vmlinuz archisolabel=ARCH_201903
  initrd /arch/archiso.img
}
Manjaro title Manjaro.xfce LiveCD
root (hd0,2)
kernel /manjaro/vmlinuz-x86_64 misolabel=M1803 boot=casper iso-scan/filename=/manjaro/manjaro-xfce-18.0.3-stable-x86_64.iso locale=zh_CN.UTF-8
initrd /manjaro/initramfs-x86_64.img
menuentry "Manjaro.xfce LiveCD" {
  set root=(hd0,3)
  linux /manjaro/vmlinuz-x86_64 misolabel=M1803 boot=casper iso-scan/filename=/manjaro/manjaro-xfce-18.0.3-stable-x86_64.iso locale=zh_CN.UTF-8
  initrd /manjaro/initramfs-x86_64.img
}

3. 可用于移动存储的引导程序 SYSLINUX

3.1 syslinux介绍

https://en.wikipedia.org/wiki/SYSLINUX
https://wiki.archlinux.org/index.php/Syslinux
https://en.wikipedia.org/wiki/SYSLINUX
该SYSLINUX项目是一套轻量级的主引导记录(MBR),引导装载程序用于启动IBM PC兼容 的计算机与Linux内核。SYSLINUX捆绑包主要由H. Peter Anvin开发,包含几个用于不同目的的独立系统,包括ISOLINUX,PXELINUX和EXTLINUX。

  • 原始的SYSLINUX,用于从FAT和NTFS文件系统(如软盘和USB驱动器)启动。
  • ISOLINUX,用于从CD-ROM ISO 9660文件系统启动。
  • PXELINUX,用于使用预引导执行环境(PXE)系统从网络服务器引导。
  • EXTLINUX,用于从Linux ext2 / ext3 / ext4,XFS,Btrfs或UFS / UFS2文件系统启动。还支持FAT和NTFS。
  • MEMDISK,用于从这些媒体启动较旧的操作系统,如MS-DOS。

3.2 syslinux的使用

由于Linux通常不安装在FAT文件系统上,因此SYSLINUX通常不用于引导完整的Linux安装。
相反,它通常用于启动或救援软盘,实时USB或其他轻量级启动系统。ISOLINUX通常由Linux live CD和可引导安装CD使用。
比如在Windows下使用rufus(目前最新版本3.5)软件制作USB启动U盘(将Linux live CD镜像文件写入U盘),就会自动搜索下载匹配的最新syslinux文件:
(~/rufus_files/syslinux-6.04/ldlinux.bss ldlinux.sys)
https://rufus.ie/
https://github.com/pbatard/rufus/issues/487
https://rufus.ie/files/syslinux-6.04/ldlinux.bss
https://rufus.ie/files/syslinux-6.04/ldlinux.sys

4. 自动化工具

liveusb-builder - 为GNU / Linux发行版创建多引导USB记忆棒的脚本套件
https://github.com/mytbk/liveusb-builder || liveusb-builder-git AUR
MultiSystem - 一种图形工具,允许在USB设备上安装,管理和删除多个ISO映像。
http://liveusb.info/dotclear/ || 多系统AUR
MultiBootUSB - 具有CLI和GUI界面的跨平台Python软件,允许您在USB记忆棒上安装和删除多个实时Linux映像。
http://multibootusb.org/ || multibootusb AUR

https://help.ubuntu.com/community/Grub2/ISOBoot
Ubuntu ISO旨在允许使用GRUB 2直接从硬盘驱动器启动,无需刻录CD / DVD。
此功能允许用户启动和使用Ubuntu安装CD的“Try Ubuntu”功能,以及直接从硬盘驱动器上的ISO安装Ubuntu。
除了Ubuntu ISO之外,许多其他Linux发行版以及流行的救援 CD都可以直接从ISO文件启动。


grub2基础教程-修订版