[步骤] Linux 救援模式软件的安装 (把系统目录当作根目录前)

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

步骤三:在救援模式确定系统的根 “/” 目录分区

(步骤略)


补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定

步骤四:在救援模式将系统的根 “/” 分区挂载到救援模式的 /mnt 目录

# mount <root spartition> /mnt

步骤五:在救援模式将系统的光驱挂载到救援模式的 /mnt/mnt 目录

# mount /dev/sr0 /mnt/mnt

步骤六:重新安装 mount 软件

# rpm -ivh --root=/mnt /mnt/mnt/Module-Basesystem/x86_64/util-linux-2.39.3-150600.2.1.x86_64.rpm

(补充:这里以安装 util-linux-2.39.3-150600.2.1.x86_64.rpm 软件包为例)

步骤七:重启系统

7.1 从当前系统的根 “/” 目录切换回救援模式的根 “/” 目录

bash-4.3# exit

7.2 重启系统

tty1:rescue:~ # reboot

[排错] 解决 Linux 无法进入系统且 Linux 进入救援模式以后挂载系统目录时乱码

报错代码:

Linux 无法进入系统,进入拯救模式后乱码

原因分析:

mount 命令损坏,导致系统在启动的过程中无法挂载所有需要挂载的分区,例如 /boot 目录、根 “/” 分区等

解决方法:

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

步骤三:在救援模式确定系统的根 “/” 目录分区

(步骤略)


补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定

步骤四:在救援模式将系统的根 “/” 分区挂载到救援模式的 /mnt 目录

# mount <root spartition> /mnt

步骤五:在救援模式将系统的光驱挂载到救援模式的 /mnt/mnt 目录

# mount /dev/sr0 /mnt/mnt

步骤六:重新安装 mount 软件

# rpm -ivh --root=/mnt /mnt/mnt/Module-Basesystem/x86_64/util-linux-2.39.3-150600.2.1.x86_64.rpm

(补充:这里以安装 util-linux-2.39.3-150600.2.1.x86_64.rpm 软件包为例)

步骤七:重启系统

7.1 从当前系统的根 “/” 目录切换回救援模式的根 “/” 目录

bash-4.3# exit

7.2 重启系统

tty1:rescue:~ # reboot

[内容] Linux console 口显示日志的设置

正文:

内容一:日志消息的优先级

级别关键字描述 内容
0 EMERG 致命级 (KERN_EMESG) 紧急,系统本身已经无法再运行必须马上拯救
1 ALERT 警戒级 (KERN_ALERT) 警报,系统出现了重大错误必须马上处理的情况
2 CRIT 临界级 (KERN_CRIT) 严重,系统出现了严重的情况
3ERR 错误级 (KERN_ERR) 错误,系统出现了错误的情况
4 WARNING告警级 (KERN_WARN) 警告,系统出现了需要警告的情况
5 NOTICE 注意级 (KERN_NOTICE) 注意,系统出现了需要注意的情况
6 INFO 通知级 (KERN_INFO) 信息,系统出现了一些情况
7 DEBUG 调试级 (KERN_DEGUG) 调试,系统出现了程序或服务调试的情况

内容二:查看 console 口显示日志的设置

# cat /proc/sys/kernel/printk
4       4       1       7


补充:
1) 第 1 个 4 代表只有比等级为 4 的日志更紧急的日志会显示在 console 口
2) 第 2 个 4 代表当某条日志没有等级时默认会将其日志等级设置为 4
3) 第 3 个 1 代表会显示在 console 口上的日志的最高紧急度 (在这个文件中 1 已经是所有等级中紧急度最高的等级了)
4) 第 4 个 7 代表当系统启动时,启动时所产生的日志默认的紧急等级

内容三:修改 console 口显示日志的等级

3.1 修改 console 口显示日志的等级

# sysctl -w kernel.printk=3

或者:

# echo "3" > /proc/sys/kernel/printk

(补充:这里以设置把等级为 3 或者更紧急的日志显示在 console 口为例)

3.2 查看修改 console 口显示日志的等级

# cat /proc/sys/kernel/printk
3       4       1       7


补充:
1) 第 1 个 3 代表只有比等级为 4 的日志更紧急的日志会显示在 console 口
2) 第 2 个 4 代表当某条日志没有等级时默认会将其日志等级设置为 4
3) 第 3 个 1 代表会显示在 console 口上的日志的最高紧急度 (在这个文件中 1 已经是所有等级中紧急度最高的等级了)
4) 第 4 个 7 代表当系统启动时,启动时所产生的日志默认的紧急等级

参考文献:

https://linuxconfig.org/introduction-to-the-linux-kernel-log-levels

[步骤] Linux 进入救援模式后的操作建议

步骤一:查看系统日志判断是什么原因导致系统进入了紧急模式

# journalctl -xb

步骤二:判断软件的哪些文件发生了改变或者有缺失

# rpm -Va

步骤三:查看关键的模块是否还在

3.1 查看所需要的模块是否还在

3.1 查看所有的模块是否还在
# depmod -a
3.2 查看所需要的模块是否还在
# lsmod | grep bonding

(补充:这里以查看 bonding 模块是否还在为例)

3.2 尝试加载所需要的模块

# modprobe bonding

(补充:这里以尝试加载 bonding 模块为例)

步骤四:尝试配置临时 IP 地址和临时网关

4.1 查看当前网卡是否接入网络

# ethtool eth0

(补充:这里以查看 eth0 网卡是否接入网路为例)

4.2 尝试配置临时 IP 地址

# ifconfig eth0 192.168.0.2/24

或者:

# ip a add 192.168.0.2/24 dev eth0

(补充:这里以给 eth0 网卡添加临时 IP 地址 192.168.0.2/24 为例)

4.3 尝试配置临时网关

# route add default gw 192.168.0.1

或者:

# ip route add default via 192.168.0.1

4.4 查看配置的临时 IP 地址和临时网关

4.4.1 查看配置的临时 IP 地址
# ip a s
4.4.2 查看配置的临时网关
# route -n