Linux云计算架构-Linux系统启动原理

清疚 2023-03-01 05:56 152阅读 0赞

文章目录

  • Linux云计算架构-Linux系统启动原理
      1. centos6启动原理
      1. centos7启动原理
      1. 管理服务

Linux云计算架构-Linux系统启动原理

1. centos6启动原理

在这里插入图片描述

  1. # centos6系统启动过程
  2. 1.加载bios的硬件信息,根据设定获取第一个可开机引导设置。
  3. 2.读取硬盘中MBRboot Loader(主引导程序),即grub引导。【MBR=主引导程序(boot loader)+分区表(Partition table)+MBR有效标识】
  4. 3.依据boot loader的设定,到引导分区加载KernelKernel会开始侦测硬件并加载驱动程序。
  5. 4.硬件驱动程序加载成功后,Kernel会主动执行init程序,init程序读取/etc/inittab文件获取run-level信息。
  6. 5.init执行/etc/rc.d/rc.sysinit文件来准备软件执行的作业环境 (如网络、时区等)。
  7. 6.init执行run-level下各个服务并启动(script方式)。【7个运行级别(0-6)】
  8. 7.init执行开机后自动运行脚本/etc/rc.d/rc.local文件。
  9. 8.init执行虚拟终端机控制程序mingetty来启动login程序,最后就等待用户登录。
  10. # centos6启动的相关配置文件
  11. /boot/grub/grub.conf # 主引导程序的配置文件
  12. /etc/inittab # 定义系统运行级别
  13. /etc/rc.d/rc.sysint # 系统初始化脚本
  14. /etc/rc.d/rc3.d/* # 在对应运行级别下,会执行对应目录下的服务的启动文件【S启动K关闭,数字为启动或关闭的顺序】
  15. /etc/rc.d/rc.local # 登录前自动运行脚本

2. centos7启动原理

在这里插入图片描述

  1. # centos7系统启动过程
  2. 1.UEFiBIOS初始化,运行POST开机自检
  3. 2.选择启动设备,引导装载程序,centos7grub2,centos6grub
  4. 3.加载装载程序的配置文件:/etc/grub.d/(根据此目录下文件设置 grub.cfg
  5. [root@server ~]# ll -d /etc/grub.d/
  6. drwx------. 2 root root 182 6 30 16:07 /etc/grub.d/
  7. # 用/etc/default/grub文件配置/boot/grub2/grub.cfg文件
  8. [root@server ~]# ll /etc/default/grub
  9. -rw-r--r--. 1 root root 279 6 30 16:08 /etc/default/grub
  10. [root@server ~]# ll /boot/grub2/grub.cfg
  11. -rw-r--r--. 1 root root 4287 6 30 16:09 /boot/grub2/grub.cfg
  12. 4.加载内核,加载initramfs初始化伪文件系统【虚拟文件系统,/boot/initramfs能通过boot loader加载到内存中。用于提供启动过程中的重要内核模块。】
  13. [root@server ~]# ll /boot/initramfs-*
  14. -rw-------. 1 root root 73998306 6 30 16:07 /boot/initramfs-0-rescue-e1e61b24281c4661a62720f8c084ca3d.img
  15. -rw-------. 1 root root 31879114 6 30 16:09 /boot/initramfs-3.10.0-957.el7.x86_64.img
  16. -rw-------. 1 root root 13575929 7 21 20:15 /boot/initramfs-3.10.0-957.el7.x86_64kdump.img
  17. 5.内核初始化,启动systemd程序【centos7systemd代替init
  18. 6.执行initrd.target所有单元,包括挂载/etc/fstab
  19. 7.initramfs根文件系统切换到磁盘根目录
  20. [root@server ~]# pwd
  21. /root
  22. 8.systemd执行默认target配置,配置文件/etc/systemd/system/default.target
  23. [root@server ~]# ll /etc/systemd/system/default.target
  24. lrwxrwxrwx. 1 root root 36 6 30 16:08 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
  25. 9.systemd执行sysinit.target初始化系统及basic.target准备操作系统
  26. [root@server ~]# ll /etc/systemd/system/ | grep wants
  27. drwxr-xr-x. 2 root root 4096 6 30 16:03 sysinit.target.wants
  28. drwxr-xr-x. 2 root root 57 6 30 16:05 basic.target.wants
  29. 10.systemd启动multi-user.target下的本机与服务器服务
  30. drwxr-xr-x. 2 root root 4096 7 3 07:40 multi-user.target.wants
  31. 11.systemd执行multi-user.target下的/etc/rc.d/rc.local
  32. drwxr-xr-x. 2 root root 4096 7 3 07:40 multi-user.target.wants
  33. 12.systemd执行multi-user.target下的getty.target及登录服务
  34. drwxr-xr-x. 2 root root 32 6 30 16:03 getty.target.wants
  35. 13.systemd执行graphical需要的服务
  36. drwxr-xr-x. 2 root root 133 6 30 16:35 graphical.target.wants
  37. [root@server ~]# ll /etc/systemd/system/ | grep wants
  38. drwxr-xr-x. 2 root root 57 6 30 16:05 basic.target.wants
  39. drwxr-xr-x. 2 root root 31 6 30 16:03 bluetooth.target.wants
  40. drwxr-xr-x. 2 root root 87 6 30 16:03 default.target.wants
  41. drwxr-xr-x. 2 root root 38 6 30 16:05 dev-virtio\x2dports-org.qemu.guest_agent.0.device.wants
  42. drwxr-xr-x. 2 root root 32 6 30 16:03 getty.target.wants
  43. drwxr-xr-x. 2 root root 133 6 30 16:35 graphical.target.wants
  44. drwxr-xr-x. 2 root root 35 6 30 16:03 local-fs.target.wants
  45. drwxr-xr-x. 2 root root 4096 7 3 07:40 multi-user.target.wants
  46. drwxr-xr-x. 2 root root 48 6 30 16:03 network-online.target.wants
  47. drwxr-xr-x. 2 root root 26 6 30 16:04 printer.target.wants
  48. drwxr-xr-x. 2 root root 31 6 30 16:03 remote-fs.target.wants
  49. drwxr-xr-x. 2 root root 217 6 30 16:05 sockets.target.wants
  50. drwxr-xr-x. 2 root root 4096 6 30 16:03 sysinit.target.wants
  51. drwxr-xr-x. 2 root root 44 6 30 16:03 system-update.target.wants
  52. drwxr-xr-x. 2 root root 34 6 30 16:03 timers.target.wants

3. 管理服务




































动作 centos6 centos7
启动 service 独立服务名 start systemctl start 独立服务名
停止 service 独立服务名 stop systemctl stop 独立服务名
重启 service 独立服务名 restart systemctl restart 独立服务名
状态 service 独立服务名 status systemctl status 独立服务名
重载或重启服务(先加载,再重启) systemctl reload 独立服务名

























动作 centos6 centos7
自启动 chkconfig name on systemctl enable name
禁用自启动 chkconfig name off systemctl disable name
查看所有服务的开机自启状态 chkconfig —list systemctl list-unit-files —type service
  1. # 服务状态
  2. loaded # Unit配置文件已处理
  3. active(running) # 一次或多次持续处理的运行
  4. active(exited) # 成功完成一次性的配置
  5. active(waiting) # 运行中,等待一个事件
  6. inactive # 不运行
  7. enabled # 开机启动
  8. disabled # 开机不启动
  9. static # 开机不启动,但可被另一个启用的服务激活
  10. # 系统的启动级别,及启动级别的切换。
  11. 0:关机 Init 0 systemctl poweroff
  12. 1:单用户模式,用于系统恢复。 Init 1 systemctl isolate rescue.target
  13. 2:不完全命令行模式,无网络
  14. 3:完全命令行模式,有网络,字符界面 Init 3 systemctl isolate multi-user.target
  15. 4:系统保留
  16. 5:图形化界面,有网络 init 5 systemctl isolate graphical.target
  17. 6:重启 init 6 systemctl reboot
  18. # 可以在不同级别下,设置服务是否随系统启动而运行。
  19. [root@server ~]# ll /usr/lib/systemd/system/*.target | grep runlevel
  20. lrwxrwxrwx. 1 root root 15 6月 30 16:03 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
  21. lrwxrwxrwx. 1 root root 13 6月 30 16:03 /usr/lib/systemd/system/runlevel1.target -> rescue.target
  22. lrwxrwxrwx. 1 root root 17 6月 30 16:03 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
  23. lrwxrwxrwx. 1 root root 17 6月 30 16:03 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
  24. lrwxrwxrwx. 1 root root 17 6月 30 16:03 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
  25. lrwxrwxrwx. 1 root root 16 6月 30 16:03 /usr/lib/systemd/system/runlevel5.target -> graphical.target
  26. lrwxrwxrwx. 1 root root 13 6月 30 16:03 /usr/lib/systemd/system/runlevel6.target -> reboot.target
  27. # 查询target目标态类型的运行级别
  28. [root@server ~]# systemctl list-unit-files --type target
  29. # 查询随着系统以某种运行级别启动时,所对应的服务的启动情况【依赖于某个系统运行级别所启动或关闭的服务】
  30. [root@server ~]# systemctl list-dependencies runlevel3.target
  31. [root@server ~]# systemctl list-dependencies runlevel5.target
  32. # 系统运行级别切换
  33. [root@server ~]# runlevel
  34. 3 5
  35. [root@server ~]# init 3
  36. # 设置默认目标态default.target【默认启动级别】
  37. # 设置默认目标态,即是将默认目标态用软连接指向对应启动级别的目标态
  38. [root@server ~]# ll /etc/systemd/system/default.target
  39. lrwxrwxrwx. 1 root root 36 6月 23 17:54 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
  40. [root@server ~]# systemctl set-default multi-user.target
  41. Removed symlink /etc/systemd/system/default.target.
  42. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
  43. [root@server ~]# ll /etc/systemd/system/default.target
  44. lrwxrwxrwx. 1 root root 41 7月 22 17:27 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
  45. # grub和grub2的区别
  46. 1.centos6的grub配置文件/boot/grub/grub.conf
  47. 2.centos7的grub2配置文件/boot/grub2/grub.cfg
  48. 3.grub和grub2都是用于加载内核,但grub2有一个默认启动项配置文件
  49. # centos7修改内核启动的顺序
  50. [root@server ~]# cat /etc/default/grub
  51. GRUB_TIMEOUT=5 # 默认5s后启动内核
  52. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
  53. GRUB_DEFAULT=saved # 默认使用的内核,0为第一个内核,1为第二个内核
  54. GRUB_DISABLE_SUBMENU=true
  55. GRUB_TERMINAL_OUTPUT="console"
  56. GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
  57. GRUB_DISABLE_RECOVERY="true"
  58. # 查询加载的内核
  59. [root@server ~]# uname -r
  60. 3.10.0-957.el7.x86_64
  61. # centos6修改内核启动顺序
  62. [root@server ~]# vim /boot/grub/grub.conf
  63. default=1
  64. [root@server ~]# reboot

如果不是很清楚服务应该怎样管理的,可以看看这篇博客:服务管理

发表评论

表情:
评论列表 (有 0 条评论,152人围观)

还没有评论,来说两句吧...

相关阅读