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

[经验分享] redhat 5开机启动流程详解

[复制链接]

尚未签到

发表于 2018-5-10 06:30:06 | 显示全部楼层 |阅读模式
  (1)POST(Power On Self Test) 加电自检
     电脑主机打开电源的时候随后会听到滴的一声响系统启动开始了开机自检POST。
  自检开始这个过程中主要是检测计算机硬件设备比如CPU内存主板显卡等设备是否有故障存在。如果有硬件故障的话将按两种情况理对于严重故障(致命性故障)则停机此时由于各种初始化操作还没完成不能给出任何提示或信号对于非严重故障则给出提示或声音报警信号等待用户处理如果没有故障POST完成自己的接力任务将尾部工作交接给BIOS处理
  (2)BIOS(bootloader)
   按BIOS设定的系统启动流程检测通过则根据引导次序(Boot Sequence)开始在第一台设备上支持启动程序我们的启动设备主要包括硬盘、usb、sd等.寻找第一启动设备的0磁道0扇区的MBR(Main Boot Record).主引导记录它的大小是512字节里面存放了预启动信息、分区表信息及分区标志等。分为两部分第一部分为(PRE-BOOT)引导区,占了446个字节第二部分为分区表(PARTITIONPABLE),共66个字节记录硬盘的分区信息(其中前64字节是分区表信息后2个字节是分区结束的标志)。
  (3)bootloader 详解
  
引导linux bootloader:
  LILO:(LInux LOader) 早先应该内核启动,无法识别1024柱面以后的内核,不支持大8G硬盘。现在多用于嵌入式内核
  GRUB:(GRand Unified Bootloader):分为两段
  1; stage1 放在MBR中,为了引导stage2
  stage1.5 :过渡 ,识别不同的文件系统

  2;stage2  放在内核所在的分区 /boot/grub/
[root@localhost ~]# ls /boot/grub/
device.map     fat_stage1_5  grub.conf         jfs_stage1_5  minix_stage1_5     splash.xpm.gz  stage2         vstafs_stage1_5
e2fs_stage1_5  ffs_stage1_5  iso9660_stage1_5  menu.lst      reiserfs_stage1_5  stage1         ufs2_stage1_5  xfs_stage1_5

  --------------------------------------
  splash.xpm.gz  :grub开机加载的图片这就是我们看见的redhat5 图标
  grub.conf  :为grub 的配置文件
  
*****详解grub.conf (很重要)
[root@localhost ~]# cat /boot/grub/grub.conf
# 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/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0                                     ----设定默认启动title的编号 ,从0开始
timeout=5                                    ----等待用户超时时长,单位为秒
splashimage=(hd0,0)/grub/splash.xpm.gz   ------grub 的背景图片
hiddenmenu                                                 ------隐藏菜单
title Red Hat Enterprise Linux Server (2.6.18-194.el5)  ---内核标题,操作系统的名称,可以随便编辑
        root (hd0,0)---内核文件所在的设备,对grub来说所有硬盘都为hd(#,N)   光盘为cdrom
        kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M  ----------内核路径及传递给内核的参数
        initrd /initrd-2.6.18-194.el5.img----------ramdisk 的路径,initrd 的版本号,要内核版本号一致

  注解 :如果boot 没有单独分区,krenel  就在/boot/vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M
  -----------------------------------------------
  图形grub 的应用;
  *****单用户模式修改root密码:
  开机  -->选择要更改的 title 名 —> 按e 进入编辑模式-->选择kernel 那行,按e--->空格键 添加s 或S或1或single -->b  这样就进入单用户模式,可以修改密码等
  ------------------------------------
  通过单用户模式,只要能接触到你的主机,都可以修改密码。这样就不安全了我们需要

  给grub 加密码
  vi /boot/grub/grub.conf
  在tile 上面一行password 密码串

  如 password --md5 $1$GxkYF/$7kvX8bouiFqJITFZDkhCS.
  可以通过命令:grub-md5-crypt 生成加密的密码串
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
$1$GxkYF/$7kvX8bouiFqJITFZDkhCS.

  (注意):如果在title 里加密码串,启动内核的时候,都需要密码了
  ===============================================
  *****grub安装与修复
  安装grub stage1

  问题1方法(一)
  1,dd if=/dev/zero of=/dev/sda  count=1 bs=400
  这样我们就把grub 抹去了,不要破坏分区表;不要重启,重启就不能启动了

  2,用grub命令
  grub>root hd(0,0)
  grub>setup hd(1)
  grub >quit
  

  方法(二)
  grub-install  --root-dirctory=/path/to/boot's_parent_dir   /path/to/dev
  注解:/path/to/boot's_parent_dir 为/boot 的父目录

  

  模拟grub.conf 文件丢失的修复过程:
  1,mv /boot/grub/grub.conf   /root
  2,关机重启
  3,grub>find hd(0,0) /  有内核的磁盘,
  4,如果内核在hd(0,0)上;grub>root  hd(0.0)  ;如果不在就root hd(#,n)有内核的磁盘分区
  5,gurb>kernel /vmlinuz-versions  指定内核
  6,grub> initrd /initrd-versions  指定ramdisk
  7,grub>boot
  8,手动创建一个grub.conf 配置文件
  (4)内核启动
  内核初始化过程:
  1,设备探测
  2,驱动初始化(可能会从initrd中装置驱动程序)在redhat6中initrd 叫initramfs
  3,以只读的方式挂载/文件系统
  4,启动第一个进程init(PID 1)

  (5)内核被加载后,运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。(在redhat 6.0以后使用upstart ;并行启动程序。使用d-bus来完成通信的)
  cat /etc/inittab
  #
id:5:initdefault:---------默认为5级别

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.  
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
  x:5:respawn:/etc/X11/prefdm -nodaemon
  -------------------------------------------------------------
  id:runlevels:action:process
  id:标识符
  runlevels:在哪个级别下运行此行
            0:关机
            1:单用户模式
            2:multi user mode 不启用NFS
            3:multi user mode  text 模式(文本模式)
            4:保留,未启用
            5:multi user mode图形模式
            6;重启

  action:动作:什么情况下执行此行
           :initdefault :设定默认运行级别
           :sysinit        :系统初始化
           :wait           :只要切换到这个级别就运行一次
           :ctrlaltdel   :重启
           :respawn  :一旦程序终止,就会重新启动

  process:要运行程序
  
-----------------------------------------------------------
  (6)init进程执行rc.sysinit
  简单的说一下rc.sysinit脚本执行的任务:
  1,激活udve和selinux
  2,根据/etc/sysctl.conf文件。来设定内核参数
  3,设定系统时钟
  4,装载键盘映射
  5,启用交换分区
  6,设定主机名
  7,根文件系统检测,并以读写方式重新挂载
  8,激活RAID和LVM设备
  9,启用磁盘配额
  10,根据/etc/fstab ,检查并挂载文件系统
  11,清理过期的锁文件和PID文件
  (7)init进程执行rc.d/rc*.d   启动相应运行级别下服务
  #关闭或启动的优先级的优先次序,数字越小越优先被选中
  先关闭以K开头的服务,后启动以s开头的服务
  服务类的脚本 sysV :/etc/rc.d/init.d
     1, 能接受参数start|stop|restart|status

     2,# chkconfig: 345 25 75
# description: Mounts and unmounts all Network File System (NFS), \
#              SMB/CIFS (Lan Manager/Windows), and NCP (NetWare) mount points.

  #chkconfig runlevels   ss kk
   chkconfig    -    ss   kk  运行级别为- 表示没有s*链接,都是k*链接

  当chekconfig 命令来为此脚本在rc.d目录下创建链接时,runlevels 表示默认创建s*的链接
  除此之外,都创建为k*.;s后面的启动优先级为ss所表示的数字,k后面关闭优先级次序为k后面所表示的数字:
  #description:用于说明此脚本的简单功能,\ 可以续行

  -----------------
  命令chkconfig
  chkconfig   --list   列出当前系统上的所以服务
  [root@localhost init.d]# chkconfig --list
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
apmd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off

  ------------
  chkconfig  --list server_name查看一个服务
  chkconfig  --add  server_name 添加链接
  chkconfig   --del server_name  删除链接
  -----------------
  chkconfig  --level  runlevels  server_name {on|off}
  如:chkconfig  --level  245  acpid  off  在245运行级别下关闭acpid服务

  

  (8)执行/etc/rc.d/rc.local(系统启动的最后一个脚本)

  rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里
  
(9)执行/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.yunweiku.com/thread-457779-1-1.html 上篇帖子: Redhat 5.1 install PHP 5.3.6 下篇帖子: LINUX REDHAT第五单元文档
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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