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目录中
chroot:chroot /PATH/TO/TEMPROOT [COMMAND...]切换根目录 把根目录切换到/TEMPROOT临时目录
chroot /test/virrrot /bin/bash 切换根目录,同时以/bin/bash执行
ldd /PATH/TO/BINARY_FILE:显示二进制文件所依赖的共享库
[root@xuelinux boot]# ldd /bin/ls
linux-gate.so.1 => (0x00ca3000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0077d000)
librt.so.1 => /lib/librt.so.1 (0x00832000)
libcap.so.2 => /lib/libcap.so.2 (0x0054e000)
libacl.so.1 => /lib/libacl.so.1 (0x0051d000)
libc.so.6 => /lib/libc.so.6 (0x001a5000)
libdl.so.2 => /lib/libdl.so.2 (0x00759000)
/lib/ld-linux.so.2 (0x0017f000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00760000)
libattr.so.1 => /lib/libattr.so.1 (0x00515000)
本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1880231 ,如需转载请自行联系原作者