Linux基础(7)-Linux启动

2018-08-06  本文已影响0人  rspclei

linux操作系统启动流程

  1. POST系统
    X86平台硬件被设计成一旦通电会自动运行ROM中的程序,所以当主机加电时,CPU寻址ROM,使存放于ROM中的POST系统运行,该系统用于硬件自检,内容包括检查内存,I/O设备是否存在,显示设备是否存在等,如果正常,则进入下一步。

  2. Boot Sequence
    加电自检完成后,位于ROM中的BIOS系统运行,BIOS为基本输入输出系统,此时BIOS中的Boot Sequence会按次序查找各引导设备,其中第一个有bootloader(引导程序)的设备即为本次启动要用到的设备,BIOS会读取该设备的MBR,MBR即为Master Boot Record,大小为512bytes,其中前446bytes为bootloader,之后46bytes为分区表,后2bytes为魔术,当标记55AA时即表示MBR有效,否则无效。

  3. BootLoader
    现Linux用GRUB作为bootloader,GRUB分为两段,1st stage为bootloader,用于把第二阶段加载到内存从而完整实现更多功能,2nd stage 即为存放于内核中的/boot/grub,其中1.5stage可做为文件系统驱动,使文件系统中的2nd stage可以被识别。UEFI与GPT分区格式不同于MBR。

  4. Kernel
    通过GRUB会加载内核程序到内存中,首先内核会自身初始化,探测可识别到的所有硬件设备,在内存上划出临时根ramdisk,并转换为基于fs的文件系统来防止双缓冲,通过该系统加载硬件所需要的驱动。

  5. rootfs
    有了临时根,有了驱动,就可以以只读方式挂载硬件上的真正的根文件系统,使用只读方式是为了防止因内核BUG等原因造成破坏。 有了根文件系统,将会启动用户空间的第一个应用程序init程序,其中CentOS7使用Systemd作为第一个程序

  6. init
    init程序将读取/etc/inittab文件中的配置,根据运行级别,运行对应的脚本程序来开启或关闭对应的服务程序。其中系统初始化脚本为/etc/rc.d/rc.sysinit,该文件配置了
    (1) 设置主机名;hostname
    (2) 设置欢迎信息
    (3) 激活udev和selinux;
    (4) 挂载/etc/fstab文件中定义的所有文件系统;
    (5) 检测根文件系统,并以读写方式重新挂载根文件系统; (之前是只读挂载)
    (6) 设置系统时钟; (读取硬件时钟实现)
    (7) 根据/etc/sysctl.conf文件来设置内核参数;
    (8) 激活lvm及软raid设备;
    (9) 激活swap设备;(fstab已包含)
    (10) 加载额外设备的驱动程序;
    (11) 清理操作;

grub启动引导程序配置及命令行接口详解

          grub> root (hd#,#)
          grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
          grub> initrd /initramfs-VERSION-RELEASE.img
          grub> boot

grub配置文件

实现kickstart文件制作与光盘镜像制作

kickstart文件的格式

命令段中的必备命令:

authconfig:认证方式配置,本地认证配置,基于shadow

authconfig  --enableshadow  --passalgo=sha512

bootloader:定义bootloader的安装位置及相关配置,--append=补充参数

bootloader  --location=mbr  --driveorder=sda  --append="crashkernel=auto rhgb quiet"

keyboard:设置键盘类型

keyboard us

lang:语言类型

lang  zh_CN.UTF-8

part:分区布局;以及分区使用方式,默认被注释,默认单位mb,pv为固定前缀

part  /boot  --fstype=ext4  --size=500
part  pv.008002  --size=51200

rootpw:管理员密码

rootpw   --iscrypted  $6$4Yh15kMGDWOPtbbW$SGax4DsZwDAz4201.O97WvaqVJfHcISsSQEokZH054juNnoBmO/rmmA7H8ZsD08.fM.Z3Br/67Uffod1ZbE0s.

timezone:时区

timezone  Asia/Shanghai

clearpart:清除分区

clearpart  --none
 --drives=sda:清空磁盘分区;

volgroup:创建卷组

volgroup  myvg  --pesize=4096  pv.008002

logvol:创建逻辑卷

logvol  /home  --fstype=ext4  --name=lv_home  --vgname=myvg  --size=5120

生成加密密码的方式:生成4个字节8位16进制数为随机数

~]# openssl  passwd  -1  -salt `openssl rand -hex 4`

命令段中的可选命令:

install OR upgrade:安装或升级;

text:

    安装界面类型,text为tui,默认为GUI,单独成行,不需要参数  

network:配置网络接口,自动dhcp

network  --onboot yes  --device eth0  --bootproto dhcp  --noipv6

firewall:防火墙

firewall  --disabled

selinux:SELinux安全加强的策略库

selinux --disabled

repo:指明安装时使用的repository;

repo  --name="CentOS"   --baseurl=cdrom:sr0  --cost=100

url: 指明安装时使用的repository,但为url格式;

url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/

halt、poweroff或reboot:安装完成之后的行为;

    参考官方文档:《Installation Guide》

定制kickstart文件:

# yum install  system-config-kickstart
# system-config-kickstart

通过该程序界面可以配置上面所有选项

创建光盘镜像:

~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o  /root/boot.iso   myboot/
上一篇 下一篇

猜你喜欢

热点阅读