CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了grub2和systemd大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  centos7全面升级了引导程序和系统管理程序,使用grub2替代了grub来引导操作系统,使用systemd替换了init管理系统程序,systemd的升级比较激进,从架构上变更init管理程序。微服务docker却希望使用docker domean管理微服务中的进程,这是一个问题。 一 grub2   grub2和grub之间区别主要是grub2把引导模块化了,每个驱动一个模块放置在/bo

centos7全面升级了引导程序和系统管理程序,使用grub2替代了grub来引导操作系统,使用systemd替换了init管理系统程序,systemd升级比较激进,从架构上变更init管理程序。微服务docker却希望使用docker domean管理微服务中的进程,这是一个问题。

grub2

grub2grub之间区别主要是grub2把引导模块化了,每个驱动一个模块放置在/boot/grub2/i386-pc/目录下了。一次centos7的引导流程:post->grub2(mbr->一个分区内部的数据->/boot/grub2/i386-pc中的驱动)->systemdgrub2的两个重要命令命令:

grub2-install --root-directory=/DIR /dev/SD*

  1. 假如有--root-directory=/DIR,就会在/DIR目录下创建/boot/grub2,并且会把*.mod*.lst*.img /usr/lib/grub/i386-pc/ 目录复制到/DIR/boot/grub2

  2. boot.img写入@H_399_16@mBR中,把core.img写进设备的第一个扇区。

grub2-mkconfig -o /DIR

会把boot目录下的内核文件initramfs文件对应组合起来,生成引导项。写入/DIR目录下的grub.cfg

制作一个grub2引导的磁盘

  1. 添加一个新的硬盘到centos7

  2. 硬盘分区

fdisk/dev/sdc<<eof
n
p
1
2048

w
eof
  1. 格式化分区@H_399_16@mkfs.xfs /dev/sdc1,这个分区类型取决你的系统采用的根分区类型,主要是因为想减少我们对grub.cfg文件的更改,减少定制防止出错。

  2. @H_941_14@mount /dev/sdc1 /mnt挂载sdc1分区

  3. grub2-install--root-directory=/mnt /dev/sdc安装grub2sdc

  4. cd /boot

  5. cp vmlinuz-3.10.0-327.el7.x86_64initramfs-3.10.0-327.el7.x86_64.img /mnt/boot/复制内核和initramfs

  6. cp grub2/grub.cfg /mnt/boot/grub2复制grub.cfg文件sdc

  7. vim /mnt/boot/grub2/grub.cfg更改第一次linux16为以下格式

linux16 /boot/vmlinuz-3.10.0-327.el7.x86_64 root=/dev/sda1rw init=/bin/bash selinux=0

  1. 移植一些命令,这里我写了一个脚本,写在附件里。@H_399_16@mvcomm.sh

@H_86_126@mvcomm.sh<<eof >vim >bash >cat >halt >mv >cp >q >eof
  1. umount /mnt这一步就完成了对新磁盘的创建,就可以移植到其它虚拟机内使用了。

systemd

init内有一个xinet程序,大家应该知道它的功能吧,帮助telnettftp等等进程监听端口。systemd就不需要这个进程了,因为它的运行模式很类似xinet,并且很过分的把所有的进程的监听和提供服务的进程拆分了,也就是把socket和进程分离。centos7开机之所以那么快主要就是因为这个原因,系统然启动了,端口监听也启动了但是真正提供服务的进程没有启动起来,只有端口被访问的时候才会启动。

systemd把所有的服务都定义成了对象,假如我们调用httpd服务,必须通过systemd调用,这就有一个问题了,centos6上的时候我们调用服务是通过脚本调用的,并且脚本我们可以随意定制调用服务的参数。而systemd一个已经编译好的二进制程序,我们完全没有了议价能力只能使用systemd定义调用接口,我们只能使用有限的几个参数,这貌似有点问题,systemd是开源的,但是定制成本远远大于我们写脚本。centos7我们依然可以使用service命令。

systemd配置文件

配置文件主要分为三部分:

1第一部分/usr/lib/system/system/,主要存储每个服务的启动停止脚本。

2第二部分/run/system/system/,系统执行过程中所产生的服务脚本,比上一个目录优先。

3第三部分别/etc/system/system管理员建立的脚本,实现类似/etc/rc.d/rc#.d/sXX功能,比上一个目录更优先。

这三部分文件我们都可以更改,更改后需要是systemctl deamon-reload命令重新加载文件使配置生效。

systemctl命令的使用

这个命令在centos7上具有非常强大的补全功能,双击tab可以显示大部分的命令。systemctl的命令格式

systemctl ctrlcommserver.unit

ctrlcomm主要使用的有startstopstatusreload-or-try-restartrestartenabledisableis-enabled

server.unit的类型主要有:

socket 套接

service 服务

device 设备

等等

总结

这一节主要学习了grub2的安装和配置文件生成,定制了一个grub2引导的硬盘。其次就是systemd的部分原理和systemctl的使用,同时这也是重点

大佬总结

以上是大佬教程为你收集整理的grub2和systemd全部内容,希望文章能够帮你解决grub2和systemd所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:systemd