Linux操作系统引导过程:
1.开机自检(bios)
bios:
1.开机检测硬件是否有故障
2.指引硬件去哪里找操作系统(根据bios中设置的启动顺序去找 操作系统 1本地硬盘 2外界设备 3网卡)
进入bios:
2.mbr引导
mbr(硬盘) 512
1开机引导程序 446字节
2分区表 64字
3.grub菜单
grub:根据 grub.cfg配置文件 找到内核文件
交互
设置密码
修复自己
4.加载内核(kermel)
kermel:加载内核,把内核放入内存里
5.init进程初始化
init进程:
由Linux内核加载运行 /sbin/init 程序
init 进程是系统中第一个进程
init 进程的PID(进程标记)号永远为1
systemd和init的区别:
init:启动程序时,是串行 12345678 顺序启动
systemd:启动程序时,是并行 12345678 同时启动
先启动 systemd或init,再启动其他程序
启动程序
centor7 启动的第一个程序 systemd
centor6 启动的第一个程序 init
解决系统启动中的故障
修复mbr扇区故障
1.新建一块硬盘 将mbr备份
mkdir /backup mount /dev/sdb1 /backup dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
2.模拟破坏mbr
dd if=/dev/zero of=/dev/sda bs=512 count=1
3.进入急救模式
挂载硬盘还原
sh-4.2# mkdir /backupdir sh-4.2# mount /dev/sdb1 /backupdir sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda sh-4.2# exit
修复grub引导故障
在虚拟机重启的时候点esc键进入光驱系统 CD-ROM Drive
然后同上进入急救模式
构建grub菜单配置文件 最后退出并重启
sh-4.2# chroot /mnt/sysimage
bash-4.2# grub2-install /dev/sda
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
bash-4.2# exit
sh-4.2# reboot
修改密码
同上进入急救模式 更改环境 然后修改密码
sh-4.2# chroot /mnt/sysimage
bash-4.2# passwd root
systemd服务
服务程序
1本地服务程序,管理本机
systemd:管家式的程序,管理系统中其他程序
为了方便管理将系统中的程序按照一定的规则进行分类
被systemd程序管理
1系统必要的程序
2 yum rpm 安装的程序
3 编译安装的程序,需要手写配置文件后才可以被管理
/usr/lib/systemd/system/服务名.service 的文件
yum rpm 会自动生成 service 的文件
天生可以被systemd管理
编译需要手写该文件 手写服务名.service的文件
systemd 命令
设置运行级别
init 0 systemctl isolate poweroff.target systemctl poweroff poweroff 关机
init 1 systemctl isolate rescue.target 单用户模式(root自动登录), single, 维护模式
init 3 systemctl isolate multi-user.target 多用户模式,正常模式;文本界面
init 5 systemctl isolate graphical.target 多用户模式,正常模式;图形界面
init 6 systemctl isolate reboot.target systemctl reboot reboot 重启
编译安装手写配置文件被systemd管理
mkdir /data
cd /data
wget nginx.org/download/ng…
tar xf nginx-1.18.0.tar.gz
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
cd nginx-1.18.0/
./configure --prefix=/apps/nginx
make
make install
ln -s /apps/nginx/sbin/nginx /usr/local/bin
vim /lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server 单元描述
[Service]
Type=forking 启动时是以主进程加子进程启动 PIDFile=/apps/nginx/logs/nginx.pid 指定pid文件在什么地方 ExecStart=/apps/nginx/sbin/nginx 启动unit ExecReload=/apps/nginx/sbin/nginx -s reload 加载unit
ExecStop=/usr/bin/kill -s TERM ${MAINPID} 停止unit
[Install]
WantedBy=multi-user.target 依赖于混合模式
systemctl daemon-reload 重新加载systemd程序
systemctl start nginx 开启服务
systemctl status nginx 查看服务状态
systemctl stop nginx 停止服务
systemctl status nginx 查看服务
作用
unit
主要用来描述此软件的功能,man帮助,依赖关系等等
service
主要作用是,systemd 程序怎么具体管理该程序
怎么启动
怎么关闭
怎么调优 优化
install
在哪个运行级别启动