大佬教程收集整理的这篇文章主要介绍了grub2和systemd,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
centos7全面升级了引导程序和系统管理程序,使用grub2替代了grub来引导操作系统,使用systemd替换了init管理系统程序,systemd的升级比较激进,从架构上变更init管理程序。微服务docker却希望使用docker domean管理微服务中的进程,这是一个问题。
grub2和grub之间区别主要是grub2把引导模块化了,每个驱动一个模块放置在/boot/grub2/i386-pc/目录下了。一次centos7的引导流程:post->grub2(mbr->第一个分区内部的数据->/boot/grub2/i386-pc中的驱动)->systemd。grub2的两个重要命令命令:
假如有--root-directory=/DIR,就会在/DIR目录下创建/boot/grub2,并且会把*.mod、*.lst、*.img从 /usr/lib/grub/i386-pc/ 目录复制到/DIR/boot/grub2
会把boot目录下的内核文件和initramfs文件对应组合起来,生成引导项。写入/DIR目录下的grub.cfg
fdisk/dev/sdc<<eof n p 1 2048 w eof
格式化分区@H_399_16@mkfs.xfs /dev/sdc1,这个分区类型取决你的系统采用的根分区类型,主要是因为想减少我们对grub.cfg文件的更改,减少定制防止出错。
grub2-install--root-directory=/mnt /dev/sdc安装grub2到sdc
cd /boot
cp vmlinuz-3.10.0-327.el7.x86_64initramfs-3.10.0-327.el7.x86_64.img /mnt/boot/复制内核和initramfs
cp grub2/grub.cfg /mnt/boot/grub2复制grub.cfg文件到sdc
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
@H_86_126@mvcomm.sh<<eof >vim >bash >cat >halt >mv >cp >q >eofumount /mnt这一步就完成了对新磁盘的创建,就可以移植到其它虚拟机内使用了。
init内有一个xinet程序,大家应该知道它的功能吧,帮助telnet、tftp等等进程监听端口。systemd就不需要这个进程了,因为它的运行模式很类似xinet,并且很过分的把所有的进程的监听和提供服务的进程拆分了,也就是把socket和进程分离。centos7开机之所以那么快主要就是因为这个原因,系统虽然启动了,端口监听也启动了但是真正提供服务的进程没有启动起来,只有端口被访问的时候才会启动。
systemd把所有的服务都定义成了对象,假如我们调用httpd服务,必须通过systemd调用,这就有一个问题了,centos6上的时候我们调用服务是通过脚本调用的,并且脚本我们可以随意定制调用服务的参数。而systemd是一个已经编译好的二进制程序,我们完全没有了议价能力只能使用systemd定义调用接口,我们只能使用有限的几个参数,这貌似有点问题,虽然systemd是开源的,但是定制成本远远大于我们写脚本。centos7我们依然可以使用service命令。
配置文件主要分为三部分:
1第一部分/usr/lib/system/system/,主要存储每个服务的启动停止脚本。
2第二部分/run/system/system/,系统执行过程中所产生的服务脚本,比上一个目录优先。
3第三部分别/etc/system/system,管理员建立的脚本,实现类似/etc/rc.d/rc#.d/sXX的功能,比上一个目录更优先。
这三部分文件我们都可以更改,更改后需要是systemctl deamon-reload命令重新加载文件使配置生效。
这个命令在centos7上具有非常强大的补全功能,双击tab可以显示大部分的命令。systemctl的命令格式
systemctl ctrlcommserver.unit
ctrlcomm主要使用的有start,stop,status,reload-or-try-restart,restart,enable,disable,is-enabled
server.unit的类型主要有:
socket 套接字
service 服务
device 设备
等等
这一节主要学习了grub2的安装和配置文件的生成,定制了一个以grub2引导的硬盘。其次就是systemd的部分原理和systemctl的使用,同时这也是重点
以上是大佬教程为你收集整理的grub2和systemd全部内容,希望文章能够帮你解决grub2和systemd所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。