目录
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)

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

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
启动菜单命令区别:

2.2查找启动Windows

2.3 查找启动其他系统

2.4 指定启动Windows

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基础教程-修订版

多系统引导 Grub的更多相关文章

  1. 系统引导器GRUB

    系统引导器GRUB 理解/boot/grub/grub.conf 1 # grub.conf generated by anaconda 2 # 3 # Note that you do not ha ...

  2. 安装grub到U盘分区,实现多系统引导

    目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3. ...

  3. windows重装系统后grub引导菜单修复方法(亲自实验过)

    问题: 电脑安装的是windows7+ubuntu 15.10双系统.windows重装后,grub引导界面消失. 解决方法有两大步: 1.进入ubuntu; 2.在ubuntu中修复grub. 一. ...

  4. Linunx系统引导过程及MBR/GRUB故障

    Linunx系统引导过程 系统初始化进程 init进程 Systemd Systemd单元类型 允许级别所对应的systemd目标 修复MBR扇区故障 解决思路 操作 修复GRUB引导故障 解决思路 ...

  5. Win7&Ubuntu12.04 双系统引导问题

    周末的时候手贱,重装系统,导致原来的ubuntu12.04和win7双系统的引导不见了,所以在此进行一下说明,如何修复. 1. win7和ubuntu12.04双系统引导修复 问题描述:    在重装 ...

  6. Linux操作系统奥秘02-系统引导(GRUB)

    GRUB的加载流程 GRUB是GNU的一款多重引导软件.GRUB包含了3个重要的文件:stage1 ,e2fsstage1_5,stage2.这三个文件分别代表了GRUB运行的3个阶段. 1.stag ...

  7. 轻松解决ubuntu系统引导问题

    什么是ppa PPA,表示 Personal Package Archives,也就是个人软件包集. 有很多软件因为种种原因,不能进入官方的 Ubuntu 软件仓库. 为了方便 Ubuntu 用户使用 ...

  8. CentOS7与Win7双系统引导问题

    先安装的Win7,后安装的CentOS7,结果系统引导就只有CentOS7了.记得以前CentOS6.x系列没这个问题,主要是由于CentOS7.x使用grub2的原因吧. 方案一:使用Win PE. ...

  9. 9.Linux系统引导流程

    一.Linux系统引导流程 当我们按下主机电源键的那时候开始,主板上的CMOS/BIOS模块将进行固件自检,以此检查各个硬件是否正确连接. 在Linux引导流程中,一般可以分为以下几个主要过程: 1. ...

随机推荐

  1. 刷seed有感

    今天又把seed刷了一遍 昨天去了基佬他们公司.第一次去他们公司.米虫科技,在重庆算是一家中型公司吧. 他去公司加班写一个游戏的封面,第一次感觉ui的不给设计图真的很坑.一个页面所有东西 自己凭感觉写 ...

  2. 解决eclipse的自动换行问题。

    安装方法:使用Eclipse 的自动升级功能,菜单栏选Help → install new Software 点解Add按钮,在“ Name ”中填入“ wordwrap ”,“ URL ”中填入“  ...

  3. erlang并发编程

    1.erlang中创建进程(非操作系统线程,比其要轻量很多)非常方便,运用spawn函数即可 spawn(Fun) -> pid() spawn(Node, Fun) -> pid() s ...

  4. 《Swell数学》用户故事

    一.用户故事基础知识: 1. 从用户的角度来描述用户渴望得到的功能. 2. 用户故事是描述对用户有价值的功能,好的用户故事应该包括角色.功能和商业价值三个要素. 3. 一个用户故事只是以客户能够明白的 ...

  5. C# 更新控件四部曲,自定义的用户控件无法更新怎么办

    用户控件如果在其他的项目被引用,希望更新控件后,所引用的项目同步更新效果,一开始难免失败,特别是更换了控件所在的文件夹. 这个时候,四部曲来解决控件的更新. 1.运行一下控件的项目,使控件生成一下. ...

  6. URL 通过Get方式传递数组参数

    URL 通过Get方式传递数组参数 方法1: ?id=1&id=2&id=3 后台获取时,只需要reqeust.getParameterValues("id") 获 ...

  7. 查询数据库游标使用情况以及sql

    ----查询游标使用情况以及游标最大数---- SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR FROM V$SESS ...

  8. 19.Scharr滤波器

    //Scharr void Test_Scharr() { Mat grad_x,grad_y; Mat abs_grad_x,abs_grad_y,dst; g_srcImage=imread(&q ...

  9. reinterpret_cast

    reinterpret_cast强制类型转换符 用法: new_type a = reinterpret_cast <new_type> (value) 将value的值转成new_typ ...

  10. 小程序 onReachBottom 事件快速滑动时不触发的bug

    一般在列表页面 会先加载一定数量的数据 触发上拉加载这个动作的时候再陆续加载数据 假如上拉一次加载10条数据 在小程序中 你快速滑动页面触发加载这个事件的话 你会发现小程序卡着不动了 刚开始以为数据加 ...