2020-07-04

Arch-boot-process

1. arch引导过程
2. SYSLINUX
3. Windows引导加载程序
4. See Also

1. arch引导过程

https://wiki.archlinux.org/index.php/Arch_boot_process#Boot_loader
https://en.wikipedia.org/wiki/Linux_startup_process
https://developer.ibm.com/articles/l-linuxboot/
参考以上页面整理启动过程表格如下:
power on可能的选择本机呈现给用户的界面用户操作备注
固件: POST自检;
初始化硬件;
BIOS(COMS), UEFIBIOSPOST自检过程,(可选) 进入COMS设置;
(可选) 选择启动媒介
Firmware 固件存储在主板本身的闪存中
主引导记录MBR, GPTMBR

存储在硬盘(光盘,U盘)上
引导加载程序GRUB,LILO,SYSLINUX,LoadlinGRUB引导界面(可选) 选择启动OS多系统引导
内核加载,启动Linux, BSDKernel非常多的快速加载的条目...
也有些系统配置为隐藏部分或全部...


早期用户空间,initrd, initramfsinitramfs
initramfs也被称为早期用户空间
启动脚本 初始化sysv, bsd, runit; systemd, upstartsystemd
系统总管 systemd
getty


如果系统上存在“ getty”,则可以启动显示管理器。
Display managerlightdm(xfce); gdm(gnome)…lightdm登陆窗口(必须) 输入密码可以将显示管理器配置为替换tty上的getty登录提示。
Login



验证/etc/passwd; 设置环境变量...
etc/motd

消息
显示/etc/motd的内容(当天的消息)
Login shellbash, sh, fish, zsh…bash

Ctl: /etc/profile; ~/.bash_profile\.bash_login\.profile
GUI: 启动用户会话; /etc/profile, ~/.profile
WM > GUIxfce, gnome, mate, cinnamon…xfwm>xfceLinux 桌面可以开始使用了xinit or wayland, 启动窗口管理器
non-login shellbash, sh, fish, zsh…fish桌面终端桌面终端中使用命令操作通常会运行配置文件,例如bashrc。

linux系统在grub1中的启动菜单:
title Install mint20 root
root (hd0,2)
kernel /mint20/vmlinuz boot=casper iso-scan/filename=/mint20/linuxmint-20-xfce-64bit.iso ro quiet splash locale=zh_CN.UTF-8
initrd /mint20/initrd.lz
title Install mint20 find
find --set-root --ignore-floppies --ignore-cd /mint20/initrd.lz
kernel /mint20/vmlinuz boot=casper iso-scan/filename=/mint20/linuxmint-20-xfce-64bit.iso ro quiet splash locale=zh_CN.UTF-8
initrd /mint20/initrd.lz
itle Install Arch2020-05 label
root (hd0,2)
kernel /arch/vmlinuz archisolabel=ARCH_202005
initrd /arch/archiso.img
title Install Gentoo 0520
root (hd0,2)
kernel /gentoo/g520/boot/gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/gentoo/g520/image.squashfs cdroot
initrd /boot/gentoo.igz
title install manjaro.20 root
root (hd0,2)
kernel /manjaro20/vmlinuz-x86_64 misolabel=MANJARO_XFCE_2003 boot=casper iso-scan/filename=/manjaro20/manjaro-xfce-20.0.3-200606-linux56.iso locale=zh_CN.UTF-8
initrd /manjaro20/initramfs-x86_64.img
title install manjaro.20 find
find --set-root --ignore-floppies --ignore-cd /manjaro20/initramfs-x86_64.img
kernel /manjaro20/vmlinuz-x86_64 misolabel=MANJARO_XFCE_2003 boot=casper iso-scan/filename=/manjaro20/manjaro-xfce-20.0.3-200606-linux56.iso locale=zh_CN.UTF-8
initrd /manjaro20/initramfs-x86_64.img
title Install Ubuntu18 (rm)
root (hd0,2)
kernel /ubuntu18/vmlinuz boot=casper iso-scan/filename=/ubuntu18/ubuntu-18.iso ro quiet splash locale=zh_CN.UTF-8
initrd /ubuntu18/initrd
title install fedora3 OK (rm)
root (hd0,2)
kernel /vmlinuz root=live:/dev/sda3 rootfstype=auto ro rd.live.image quiet
initrd /initrd.img
Boot
注意事项:
Mintlinux, ununtu等安装时不能分区?
$ lsblk -f
$ sudo -i
# umount -l /isodevice
Arch, manjaro, 提相关示没有找到label?
# blkid
# mkdir sa3
# mkdir iso
# mount /dev/sda3 /sa3
# mount /sa3/linux/*.iso /iso
# exit

2. SYSLINUX

https://en.wikipedia.org/wiki/SYSLINUX
SYSLINUX项目是一套轻量级的主引导记录(MBR),引导装载程序用于启动IBM PC兼容 的计算机与Linux内核。
由多个用于不同目的的独立系统组成:
  • SYSLINUX: 用于从FAT和NTFS文件系统(例如软盘和USB驱动器)引导。
  • ISOLINUX: 用于从CD-ROM ISO 9660文件系统启动。
  • PXELINUX: 用于使用预引导执行环境(PXE)系统从网络服务器引导。
grub1中的CD启动菜单
title CD/DVD 1
cdrom --init
map --hook
chainloader (cd0)
boot
title Myiso.iso
map --mem /ghos/myiso.iso (hd32)
map --hook
chainloader (hd32)
boot

3. Windows引导加载程序

https://en.wikipedia.org/wiki/Windows_startup_process
https://en.wikipedia.org/wiki/Windows_NT_startup_process
https://en.wikipedia.org/wiki/Windows_NT_6_startup_process
  • Win9x: io.sys (Win98/ME)
  • WinNT: NTLDR (WinXP/2000/2003)
  • WinNT6: BOOTMGR (Vista+)
Windows在grub1中的启动菜单:
title Win98/95/ME/DOS
find --set-root /io.sys
chainloader /io.sys
title WinXP/2000/2003
find --set-root /ntldr
chainloader /ntldr
title Win7/Win8/Win10
find --set-root /bootmgr
chainloader /bootmgr
title windows2008 ok
root (hd0,0)
makeactive
chainloader +1

4. See Also

https://en.wikipedia.org/wiki/Comparison_of_boot_loaders

初始虚拟磁盘
https://en.wikipedia.org/wiki/Initial_ramdisk
在计算中(特别是在Linux计算方面),initrd(初始ramdisk)是一种用于将临时根文件系统加载到内存中的方案,可以将其用作Linux启动过程的一部分。initrd并initramfs参考实现此目的的两种不同方法。两者都通常用于在挂载真实的根文件系统之前进行准备。

https://en.wikipedia.org/wiki/List_of_Linux_distributions_that_run_from_RAM
https://en.wikipedia.org/wiki/List_of_tools_to_create_Live_USB_systems
https://en.wikipedia.org/wiki/List_of_web_browsers_for_Unix_and_Unix-like_operating_systems
https://wiki.gentoo.org/wiki/Dual-boot_Gentoo_and_Windows_7_with_BIOS-powered_software_raid
https://wiki.gentoo.org/wiki/Complete_AMD64_Handbook/Configuring_the_boot_process

没有评论:

发表评论

Diode

导航 (返回顶部) 1. Diode 1.1 Diode 概述 1.2 肖克利二极管方程 1.3 缩写 Abbreviations 2. 主要功能 2.1 单向电流 (Unidirectional current flow) 2.2 阈值电压 (Threshold...