设为首页 收藏本站
查看: 189|回复: 0

[经验分享] CentOS启动流程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-4 09:10:48 | 显示全部楼层 |阅读模式
第一步、POST加电自检POST(Power On Self Test)首先对每一个设备进行检查。完成后会寻找存有引导记录的设备,找到后读入操作系统引导记录,然后将系统控制权交给引导记录,并由引导记录来完成系统的顺利启动。

第二步、MBR引导MBR(Master Boot Record) MBR记录一般是在磁盘 0 磁道 1 扇区,共512个字节。前446个字节是BootLoder,后 4*16 的 64 个字节是存放分区信息的,最后 2 个字节是校验信息,一般是 55AA。

第三步、GRUB(GRand Unified Bootloader)加载内核就是MBR中的前 446 个字节,是BooTLoader的一种,它的作用是要选择要启动的内核。
[iyunv@Linux_1 grub]# ll
总用量 274
-rw-r--r--. 1 root root     6311月 15 00:12 device.map
-rw-r--r--. 1 root root  1339211月 15 00:12e2fs_stage1_5
-rw-r--r--. 1 root root  1263211月 15 00:12fat_stage1_5
-rw-r--r--. 1 root root  1176011月 15 00:12ffs_stage1_5
-rw-------. 1 root root    73711月 15 00:12 grub.conf
-rw-r--r--. 1 root root  1176811月 15 00:12 iso9660_stage1_5
-rw-r--r--. 1 root root  1328011月 15 00:12jfs_stage1_5
lrwxrwxrwx. 1 root root     1111月 15 00:12 menu.lst-> ./grub.conf
-rw-r--r--. 1 root root  1196811月 15 00:12minix_stage1_5
-rw-r--r--. 1 root root  1442411月 15 00:12reiserfs_stage1_5
-rw-r--r--. 1 root root   134111月 15 2010splash.xpm.gz
-rw-r--r--. 1 root root    51211月 15 00:12 stage1
-rw-r--r--. 1 root root 126108 11月 15 00:12 stage2
-rw-r--r--. 1 root root  1203611月 15 00:12ufs2_stage1_5
-rw-r--r--. 1 root root  1137611月 15 00:12vstafs_stage1_5
-rw-r--r--. 1 root root  1397611月 15 00:12xfs_stage1_5

stage:用于grub引导程序过大,所以分2段引导,第一段存放在MBR中,第二段存放于内核文件系统中,第一段引导完成后可以找到第二段。但是,第二段是存放于内核文件系统中的,此时还没有格式化文件系统,如何可以访问到第二段的 menu.lst 呢??就需要借助于中间层stage1_5,有它来协助 stage1段来访问 stage2 段。stage1_5通常位于 stage1 字段后的 63 个扇区。 由于stage2 在内存中存放可以使用的文件系统不确定,所以这就是有多个 stage1_5 的原因了。


1、grub.conf 文件参数意义default=1   # 默认启动的内核title, 0 表示是第一个
timeout=5   # 默认等待时间
splashimage=(hd0,0)/grub/splash.xpm.gz    # 指定菜单的背景图片的路径。为xpm格式,采用gzip压缩,只能为14bits色
hiddenmenu    # 隐藏菜单
title CentOS (2.6.32-358.el6.x86_64)    # 标题名,用户可自定义
   root (hd0,0)    # 指定 grub 的根位置
    #指定 kernel 文件的位置,还要指出 root(系统启动后)的位置,挂载方式 ro,这项很关键。
    #加载后会启动 init 进程。
   kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg0-rootrd_NO_LUKS rd_NO_DM.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MDSYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root  KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=autoquiet rhgb quiet
    #在内核启动过程中装载根文件系统时有用
initrd /initramfs-2.6.32-358.el6.x86_64.img

initramfs-2.6.32-358.el6.x86_64.img的本质#initramfs 是以 gzip 压缩的 cpio 格式的文件。内核启动时将他作为一个临时的根文件系统
# grub的 stage2 将initrd加载到内存里,让后将其中的内容释放到内存中
# 内核便去执行init脚本,这时内核将控制权交给了init文件处理
#init 它也主要是加载各种存储介质相关的设备驱动程序。当所需的驱动程序加载完后
# 会创建一个根设备,然后将根文件系统rootfs以只读的方式挂载
# 这一步结束后,释放未使用的内存,转换到真正的根文件系统上面去,同时运行/sbin/init程序
# 执行系统的1号进程。此后系统的控制权就全权交给/sbin/init进程了


四、启动 init 进程init 进程是系统启动的第一个进程。其他进程都是有此进程控制fork出来的,也就是说,init是其他进程的“祖先”,PID=1。当然,PID=0进程我们称为空闲进程是属于内核的。
init启动后所做的事情:
1、读取/etc/inittab来读取默认级别 假设:读取到的默认级别是3/etc/init/*.conf
0:关机shutdown init 0
1:单用户模式(single user)无须认证,维护模式,直接登录不需密码
2:多用户模式(multi user)会启动网络功能,但不会启动NFS,维护模式
3:多用户模式(multi user)完全功能模式,只是文本界面,不会启动图形界面
4:预留级别:目前无特别使用目的,但习惯以同3级别功能使用
5:多用户模式(multi user)完全功能模式,图形界面
6:重启reboot

2、执行初始化系统脚本 /etc/rc.d/rc.sysinit
  • 获取网络环境与主机类型。首先会读取网络环境设置文件"/etc/sysconfig/network",获取主机名称与默认网关等网络环境。
  • 欢迎信息。
  • 挂载/etc/fstab文件中定义的其它文件系统。
  • 激活swap
  • 检测根文件系统,并以读写方式重新挂载
  • 决定是否启动SELinux和udev。
  • 接口设备的检测与即插即用(pnp)参数的测试。
  • 用户自定义模块的加载。用户可以再"/etc/sysconfig/modules/*.modules"加入自定义的模块,此时会加载到系统中。
  • 加载核心的相关设置。按"/etc/sysctl.conf"这个文件的设置值配置功能。
  • 设置系统时间(clock)。
  • 设置终端的控制台的字形。
  • 设置raid及LVM等硬盘功能。
  • 以方式查看检验磁盘文件系统。
  • 进行磁盘配额quota的转换。
  • 重新以读取模式载入系统磁盘。
  • 启动quota功能。
  • 启动系统随机数设备(产生随机数功能)。
  • 清楚启动过程中的临时文件。
  • 将启动信息加载到"/var/log/dmesg"文件中


3、然后执行 /etc/rc.d/rc 脚本
此脚本运行的时候此脚本的时候,会读取/etc/rc.d/rc3.d/下的所有脚本,来控制系统启动的时候启动或者关闭那些服务
[iyunv@Linux_1 rc3.d]# pwd
/etc/rc.d/rc3.d
[iyunv@Linux_1 rc3.d]# ll
总用量 0
lrwxrwxrwx. 1 root root 15 11月 15 00:57 K80kdump -> ../init.d/kdump
lrwxrwxrwx. 1 root root 24 11月 15 00:57 K84wpa_supplicant -> ../init.d/wpa_supplicant
lrwxrwxrwx. 1 root root 21 11月 14 23:57 K87restorecond -> ../init.d/restorecond
lrwxrwxrwx. 1 root root 14 11月 15 00:57 K88sssd -> ../init.d/sssd
lrwxrwxrwx. 1 root root 15 11月 14 23:57 K89rdisc -> ../init.d/rdisc
lrwxrwxrwx. 1 root root 19 11月 15 00:57 K95firstboot -> ../init.d/firstboot
lrwxrwxrwx. 1 root root 14 11月 15 00:10 K99rngd -> ../init.d/rngd
lrwxrwxrwx. 1 root root 17 11月 15 00:09 S01sysstat -> ../init.d/sysstat
lrwxrwxrwx. 1 root root 22 11月 15 00:09 S02lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx. 1 root root 22 11月 15 01:01 S03vmware-tools -> ../init.d/vmware-tools
lrwxrwxrwx. 1 root root 19 11月 15 00:00 S08ip6tables -> ../init.d/ip6tables
lrwxrwxrwx. 1 root root 18 11月 14 23:57 S08iptables -> ../init.d/iptables
lrwxrwxrwx. 1 root root 17 11月 14 23:57 S10network -> ../init.d/network
lrwxrwxrwx. 1 root root 16 11月 15 00:11 S11auditd -> ../init.d/auditd
lrwxrwxrwx. 1 root root 21 11月 14 23:53 S11portreserve -> ../init.d/portreserve
lrwxrwxrwx. 1 root root 17 11月 14 23:59 S12rsyslog -> ../init.d/rsyslog

#这里面的脚本大致分为 2 类,以 S 开头的和以 K 开头的脚本。  
# S 代表开机时启动的,K 表示开机时不启动。  
# 启动的定义是在每个脚本中定义的:例如  
# # chkconfig: - 85 15  
# 默认级别 启动次序 不启动次序


4、执行/etc/rc.d/rc.local脚本,此脚本是启动过程中最后启动的一个脚本。最后会执行 /bin/login 登录用户。至此系统启动过程完成。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-159980-1-1.html 上篇帖子: Redhat 7 ntp(时间同步)客户端配置 下篇帖子: DNS安装与配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表