Linux系统启动流程
POST(该过程主要检测服务器硬件所有硬件设备)-->BIOS(Boot顺序,系统引导顺序,从哪个设备引导)-->MBR引导文件存储空间(内含有bootlocader文件总大小大概446MB,查找系统引导文件)-->Kernel系统内核-->/initrd -->(ROOTFS)/sbin/init
linux系统运行级别:0-6
0:halt 关机
1:single user mode 单用户模式,直接以管理员身份登录(维护模式)
2:multi user mode, no NFS 多用户模式,但是不启用网络文件系统
3:multi user mode,text 多用户纯文本模式
4:reseved 尚未定义的模式,暂时保留模式
5:multi user mode,graphic mode 多用户图形界面
6:reboot 重启
详解系统启动过程
bootloader(MBR)
LILO:Linux Loader
GRUB:Grand Unified Bootloader
stage1:MBR 第一阶段,主要为了引导第二阶段
stage1_5: 第1.5阶段,主要用于识别常用的文件系统,位于/boot/grub/目录中
stage2: 第二阶段位于/boot/grub/目录中
cat /etc/grub.conf 该配置文件时/boot/grub的链接文件:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0 # 设定默认启动的title编号,从0开始,从上往下排序。
timeout=5 # 等待用户选择的超时时长,单位是秒
splashimage=(hd0,0)/grub/linux.xpm.gz # grub的背景图片
hiddenmenu # 隐藏菜单
password --md5 $1$7yZf4/$Bo.1Rg8dZNcimFoMud6Ed0 # 使得进入单用户模式需要使用密码
title CentOS (2.6.32-431.el6.i686) # 内核标题或者操作系统名称,字符串,可自由修改
root (hd0,0) # 内核文件所在的设备,对grub而言,所有类型硬盘一律为hd;
格式为(hd#,N);hd#,#表示第几个磁盘,最后的0表示对应磁盘的分区
kernel /vmlinuz-2.6.32-431.el6.i686 ro root=UUID=47b74772-4295-493a-8aa6-8fc85ae0807d rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet # 内核文件路径/boot目录,及传递给内核的参数
initrd /initramfs-2.6.32-431.el6.i686.img # ramdisk文件路径/boot目录中
内核设计风格:
redhat,suse
核心:动态加载 内核模块
内核:/lib/modules/"内核版本号命令的目录"/
vmlinuxx-2.6.32
/lib/modules/2.6.32/
单内核:linux
核心:ko (kernel object)
微内核:windows,solaris(线程)
chroot:chroot /PATH/TO/TEMPROOT [COMMAND...]切换根目录 把根目录切换到/TEMPROOT临时目录
chroot /test/virrrot /bin/bash 切换根目录,同时以/bin/bash执行
ldd /PATH/TO/BINARY_FILE:显示二进制文件所依赖的共享库