
| 单元类型 | 扩展名 | 说明 |
|---|---|---|
| Service | .service | 描述一个系统服务 |
| Socket | .socket | 描述一个进程间通信的套接字 |
| Device | .device | 描述一个内核识别的设备文件 |
| Mount | .mount | 描述一个文件系统的挂载点 |
| Automount | .automount | 描述一个文件系统的自动挂载点 |
| Swap | .swap | 描述一个内存交换设备或交换文件 |
| Path | .path | 描述一个文件系统中文件或目录 |
| Timer | .timer | 描述一个定时器(用于实现类似cron的调度任务) |
| Snapshot | .snapshot | 用于保存一个systemd的状态 |
| Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
| Slice | .slice | 描述居于Cgroup的一组通过层次组织的管理系统进程 |
| Target | .target | 描述一组systemd的单元 |
文件路径: /lib/systemd/system/ 和 /usr/lib/systemd/system/
| 运行级别 | Systemd的target | 说明 |
|---|---|---|
| 0 | shutdown.target | 关机状态,使用该级别时将会关闭主机 |
| 1 | rescue.target | 单用户模式,不需要密码验证即可登录系统,多用于系统维护 |
| 2 | multi-user.target | 不支持网络的多用户模式。默认等同于3 |
| 3 | multi-user.target | 字符界面的完整多用户模式,大多数服务器主机运行在此级别 |
| 4 | multi-user.target | 系统未使用。默认等同于3 |
| 5 | graphical.target | 图形界面的多用户模式,提供了图形桌面操作环境 |
| 6 | reboot.target | 重新启动,使用该级别时将会重启主机 |
# 虚拟机新添加一块磁盘,然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /backup
# 创建挂载点目录
mount /dev/sdb1 /backup/
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
# 备份 MBR;bs=512 MBR 默认 512 大小;count=1 复制一份
ls -hl /backup/sda.mbr.bak
# 查看备份文件信息
dd if=/dev/zero of=/dev/sda bs=512 count=1
# 模拟 MBR 被破坏的故障
reboot
# 重启系统
重启进入系统前确保,已勾选连接选项
重启系统后选择第三项,进入急救模式
键盘按下
↑,选择语言模式为简体中文
保持默认,回车
键盘按下
→取消网络设置,回车
选择
Continue,回车
按下回车,输入如下命令
mkdir /tempdir # 重新创建挂载点目录 mount /dev/sdb1 /tempdir # 挂载分区 dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1 # 从之前备份的 MBR 恢复 reboot # 重启
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
重启后进入登录界面,修复完毕
进入系统前确保,已勾选连接选项
开机进入系统,以此执行如下命令
cd /boot/grub # 进入到 grub 目录 mv grub.conf grub.conf.bak # 同目录下执行 mv 命令相当于重名操作,模拟 grub 损坏 init 0 # 关闭系统
- 1
- 2
- 3
- 4
- 5
- 6
右键系统,电源,选择打开电源时进入固件,即 BIOSS 模式,
提一句,这里右键很容易选错虚拟机,启动前确认一下
键盘按下
→选择boot,按下↓选中CD-ROM Drive按下Shift +调整至第一位,按下F10报错退出
进入安装选择界面,使用同样的方式进入急救模式到 shell 页面,输入如下命令
chroot /mnt/sysimage # 从急救系统切换到代修复的 Linux 根目录 cd /boot/grub # 切换到 grub 目录 mv grub.conf.bak grub.conf # 同样使用 mv 命令重命名恢复 grub.conf exit # 退出 reboot # 重启
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
重启后,仍然进入安装界面,因为:BIOSS 设置
CD-ROM Drive为启动项第一位,需要重新以固件模式启动并恢复BIOSS 设置
将
+Hard Drive调整至第一位,F10保存退出
重启后等待时间较长,需要重新扫描 grub,等待后进入登录界面,修复完毕
进入系统前确保,已勾选连接选项
因为系统没有启动问题,无法进入安装界面,所以用 BIOSS 启动并将
CD-ROM Drive设置到第一位,F10保存退出
重启后进入安装界面,使用同样的方式进入急救模式
进入 shell 界面,输入如下命令,关机后记得恢复 BIOSS 设置,将
+Hard Drive调整至第一位,F10保存退出chroot /mnt/sysimage # 从急救系统切换到代修复的 Linux 根目录 passwd root # 修改 root 密码 exit # 退出 reboot # 重启
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录
正常开机,在读秒期内,键盘按下
E键
再次按下
E键
↓选择第二项,键盘按下E键
后面加上数字
1,回车
键盘按下
B键,进入单用户模式
进入单用户模式,使用
passwd命令重置 root 密码
重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录
故障原因
故障现象
解决思路
# 虚拟机新添加一块磁盘,然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /kgc
# 创建挂载点目录
mount /dev/sdb1 /kgc
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
# 损坏 sdb1 分区
mount /dev/sdb1 /kgc
# 重新挂载分区 mount:you must specify the filesystemtype
fsck -y -t ext4 /dev/sdb1
# 使用 fsck 命令修复 sdb1 指定修复分区格式为 ext4
mount /dev/sdb1 /kgc
# 再次尝试挂载
mount | tail -1
# 查看分区挂载情况
故障原因
故障现象
解决思路
# 虚拟机新添加一块磁盘(磁盘容量给小点 0.1 ),然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /data
# 创建挂载点目录
mount /dev/sdb1 /data
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
df -i /data
# Ifree 剩余节点空间
vim /killInode.sh
# 编写脚本文件自动生成,把剩余空间填充完
#! bin/bash
i=1
while [ $i -le 26197 ]
do
touch /data/file$i
let i++
done
cd /
# 切换到根目录
./killInode.sh &
# 执行脚本文件 & 后台执行
# 若提示无权限,则执行 chmod /killInode.sh 755 分配执行权限
df -i /data
# 查看剩余空间,显示全部占用
cp /etc/passwd /data
# 复制文件到 data 无法复制,空间全部占用
rm -rf /data/file?
# 删除部分文件
cp /etc/passwd /data
# 重新复制,复制成功
df -i /data
# 再次查看剩余空间
badblocks -sv /dev/sdb
# 扫描磁盘坏道 Pass completed, 0 bad blocks found.
systemctl 控制类型 服务名称
# CentOS7
service 服务名称 控制类型
# CentOS6
runlevel 命令(6)
systemctl 工具(7)
基于CentOS 6
将系统的运行级别永久设置为多用户字符终端,对应的运行级别是3
将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是5
修改配置文件:vim /etc/inittab
id:3:initdefault: (修改id就是运行级别)
基于CentOS 7
将系统的运行级别永久设置为多用户字符终端,对应的运行级别是 3
将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是 5
systemctl set-default multi-user.target
# 设置字符页面
systemctl set-default graphical.target
# 设置图形页面
linux 系统中,有一些特殊程序,启动后会持续在后台运行,等待用户或其他软件调用,这种程序称为服务
基于CentOS 6
基于CentOS 7
ntsysv 系统服务管理工具
ntsysv
# 用于管理当前运行级别中的服务
ntsysv --level 2345
# 对指定运行级别中的服务进行管理
# 有*号代表开机自启动
查看系统服务的开机启动状态
chkconfig --list
# 服务名称
设置系统服务的开机启动状态
chkconfig --level 2345 服务名称 on
# 将服务设置为开机启动
chkconfig --level 2345 服务名称 off
# 将服务设置为开机不启动
查看系统服务的开机启动状态
systemctl is-enabled 服务名称
设置系统服务的开机启动状态
systemctl enable 服务名称
# 将服务设置开机自启动
systemctl disable 服务名称
# 将服务设置开机不启动
systemctl enable 服务名称 --now
# 将服务启动并设置开机自启动
systemctl disable 服务名称 --now
# 将服务关闭并设置开机不启动
systemctl enable 服务名称 服务名称 服务名称
# 批量设置将服务设置开机自启动
查看系统中所有以激活的系统服务
systemctl list-units --type=service
玄子Share-引导过程与服务控制 2024-03-23