目錄
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文件啟動。