Linux系统故障排查全攻略
立即解锁
发布时间: 2025-08-25 00:10:38 阅读量: 3 订阅数: 9 

# Linux 系统故障排查全攻略
## 1. 系统启动故障排查
### 1.1 GRUB 引导加载程序检查
当系统出现问题时,首先要查看系统的 `grub.conf` 文件是否存在错误。可以通过以下步骤操作:
1. 仔细检查 `/etc` 目录下的 `grub.conf` 文件内容,查看是否有错误条目。
2. 可以在重启前添加覆盖引导加载程序的操作系统条目。
3. 重启受影响的系统,测试引导加载程序是否正常。
### 1.2 `/etc` 文件实验问题
在 Linux 系统管理过程中,由于各种原因需要对系统配置文件进行更改。例如,为了让新内核在启动时能识别文件系统,可能会修改 `/etc` 目录下的配置文件。以 `fstab` 文件为例,不同内核对 SATA 硬盘的识别方式可能不同,有的内核将其识别为 `hda`,有的则识别为 `sda`。如果修改 `fstab` 文件后新内核无法工作,且旧内核因 `fstab` 文件中硬盘标识问题也无法正常启动,就会导致系统锁定。解决方法如下:
1. 重启进入救援环境。
2. 将受影响的 Linux 系统的 `fstab` 文件条目恢复到原始状态。若无法恢复,可从备份中还原该文件。
3. 重启系统,问题应得到解决。
### 1.3 跳过 `/mnt/sysimage` 挂载
在排查非 CentOS 系统(如 Ubuntu 或 Slackware 发行版)故障时,系统挂载可能无法按预期进行,此时需要手动挂载分区。具体操作如下:
使用 `fdisk -l` 命令列出受影响系统硬盘上的可用分区,示例输出如下:
```plaintext
Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009d89e
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 31131 249522176 8e Linux LVM
```
## 2. 查找受影响系统的根目录
在跳过救援环境自动挂载分区到 `/mnt/sysimage` 的情况下,找到受影响系统的根目录(`/`)非常重要。因为 Linux 发行版通常将重要的配置文件和块设备分别存放在 `/etc` 和 `/dev` 目录中,很多问题可能源于配置文件。查找根目录的步骤如下:
1. 在 `/mnt` 目录下创建一个名为 `temp` 的目录,作为受影响系统根目录的挂载点。
2. 根据 `fdisk -l` 命令的输出,开始逐个挂载分区。例如,使用以下命令尝试将 `/dev/hda1` 挂载到 `/mnt/temp`:
```bash
mount /dev/hda1 /mnt/temp
```
3. 检查分区内容。如果挂载的分区中不包含 `/etc` 和 `/dev` 目录,使用 `umount` 命令卸载该分区,以便其他分区使用挂载点。例如:
```bash
umount /mnt/temp
```
重复步骤 2 和 3,直到找到 `/etc` 和 `/dev` 目录,此时即找到了受影响 Linux 系统的根分区。修复系统问题后,在重启前需要卸载已挂载的分区,以确保文件更新成功保存。
### 2.1 挂载逻辑卷
如果 `fdisk -l` 命令的输出显示系统中存在 Linux LVM 或逻辑卷系统条目,则需要额外的步骤来挂载逻辑卷。具体操作如下:
1. 运行 `lvm vgscan` 命令搜索系统中所有可用的卷组。示例输出如下:
```plaintext
Found volume group "VolGroup00" using metadata type lvm2
```
这表明 `lvm vgscan` 找到了类型为 `lvm2` 的 `VolGroup00` 卷组,意味着可以开始搜索系统的根目录。
2. 使用 `lvm vgchange –ay` 命令激活系统中卷组的所有逻辑卷。该命令的 `vgchange` 可以更改逻辑卷的属性,`–ay` 选项将卷组中逻辑卷的可用性设置为 `yes`(`y`),默认情况下会影响所有卷组。示例输出如下:
```plaintext
2 logical volume(s) in volume group "VolGroup00" now active
```
3. 看到上述输出后,就可以像挂载其他存储设备(如 `hda1`)一样挂载逻辑卷。
4. 从选定的卷组中挂载一个卷。例如,在示例系统中,从 `/dev/VolGroup00` 中的逻辑卷开始,有 `LogVol00` 和 `LogVol01` 两个逻辑卷。首先将 `LogVol00` 挂载到之前创建的 `/mnt/temp` 目录:
```bash
mount /dev/VolGroup00/LogVol00 /mnt/temp
```
5. 最后,检查该目录是否为 Linux 系统的根目录。如果不是,尝试挂载下一个逻辑卷(如 `LogVol01`)。
### 2.2 单用户模式使用
在不使用救援环境的情况下,也可以通过进入单用户模式来排查 CentOS 系统故障。在单用户模式下,系统以运行级别 1 启动并尝试挂载分区,之后就可以像在救援环境中一样进行故障排查。例如,当 GNOME 桌面因新显卡驱动与 Xorg 不兼容而无法启动时,只需进入单用户模式,撤销对所需配置文件的修改,然后启动桌面即可。
进入单用户模式的步骤如
0
0
复制全文
相关推荐









