目录
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. flask 第五章 WebSocket GeventWebsocket 单聊群聊 握手 解密 加密

    1.WebSocket 首先我们来回顾一下,我们之前用socket学习过的项目有: 1.django 2.flask 3.FTP - 文件服务 HTTP - TCP (特点): 1.一次请求,一次响应 ...

  2. Centos 安装dhcp及简单配置

    install yum -y install dhcp file /etc/dhcp/dhcpd.conf eg:-------------------------------- ddns-updat ...

  3. 电脑小白和ta的小白电脑——JAVA开发环境

    JAVA开发环境的搭建有一点点复杂,不过一步一步来一般不会出错. (一)下载JDK 首先我们需要下载java开发工具包JDK,可以通过官网下载:http://www.oracle.com/techne ...

  4. java中引用的概念

    强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用: 1 2 Object object = new Object(); ...

  5. mybatis源码解析之Configuration加载(二)

    概述 上一篇我们讲了configuation.xml中几个标签的解析,例如<properties>,<typeAlises>,<settings>等,今天我们来介绍 ...

  6. yuv2mp4

    >您使用什么类型的YUV像素格式?最常见的格式是YUV4:2:0平面8位(YUV420p).您可以键入ffmpeg -pix_fmts以获取所有可用格式的列表.>什么是帧率?在我的例子中, ...

  7. MySQL【日期和时间处理函数】的使用方法

    名称 调用示例 示例结果 描述 NOW NOW() 2018-09-19 09:24:10 返回当前日期和时间 CURDATE CURDATE() 2018-09-19 返回当前日期 CURTIME ...

  8. JavaWeb笔记三、MVC 设计模式

    一.通过 MVC 进行查询和删除操作 1. 准备一个数据表(examstudent) 2. 创建一个 查询 页面(test.jsp) 通过连接进入 Servlet(listAllStudents.ja ...

  9. 作为新手在学习SSM+Easyui过程中遇到一系列问题

    对于初学SSM来说,如果不熟悉SSM中SpringMVC对数据处理,会造成很大的困扰, SSM中对前台页面放在WEB-INF下,对于读取外部信息,例如导入easyui的js文件.以及不能直接进行跳转. ...

  10. shell练习题5

    需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd n ...