发布信息

Linux系统启动故障修复指南:单用户模式、GRUB命令与救援模式应用案例详解

作者:软荐小编      2024-12-22 15:03:02     125

linux备份还原工具_linux系统备份还原软件_linux备份系统

linux系统备份还原软件_linux备份系统_linux备份还原工具

作者丨csghjnbj

来源丨运维学院(ID:云维派)

blog.chinaunix.net/uid-26567710-id-3050269.html

linux系统备份还原软件_linux备份系统_linux备份还原工具

我发现Linux系统启动过程中会出现一些故障,导致系统无法正常启动。这里我写了几个使用单用户模式、GRUB命令操作、Linux救援模式的故障修复案例,帮助大家了解如何解决此类问题。 。

1. 单用户模式

Linux系统提供了单用户模式(类似于Windows安全模式),可以在最小的环境下进行系统维护。在单用户模式(运行级别 1)下,Linux 启动到 root shell,网络被禁用,并且只有少数进程在运行。单用户模式可用于修改文件系统损坏、恢复配置文件、移动用户数据等。

下面列出了几种单用户模式下修复系统故障的典型案例:

情况一:忘记root密码

在单用户模式下linux系统备份还原软件,Linux不需要root密码(Red Hat系统不需要root密码,但SuSe需要,不同的Linux系统略有差异,本文以Fedora Core 6为例),这使得它非常容易使用。轻松更改 root 密码。了解当系统无法启动到多用户模式时如何进入单用户模式非常重要。

1. 系统启动过程中,会出现启动界面。按任意键进入 GRUB 菜单选项。 (如果以后想避免出现这个提示,可以直接进入GRUB菜单选项,删除配置文件grub.conf中的“hiddenmenu”项。)

2. 按“e”键编辑 GRUB 启动菜单选项,以及按“e”键后的 GRUB 屏幕。使用箭头键向下移动到内核行并按“e”键。

3、在行末光标处添加single,按Enter键返回上一界面,按“b”键启动。系统将自动进入单用户模式。如果要更改root密码,执行命令:sh-3.1# passwd root

更改成功后linux系统备份还原软件,执行exit命令退出并重新启动。

您可以纠正许多阻止系统在单用户模式下正常启动的问题,例如:

1. 禁用可能中断系统运行的服务。如果要禁用Samba服务,执行:sh-3.1# chkconfig smb off。系统下次启动时将不会启动 Samba 服务。

2. 更改系统默认运行级别。如果 X Window 无法启动或失败,可以编辑 /etc/inittab 文件,使用文本模式登录,将 initdefault 启动级别更改为 3:id: 3:initdefault:

情况二:硬盘扇区错乱

启动过程中最常遇到的问题是硬盘可能存在坏扇区或无序扇区(数据损坏)。这种情况往往是由于异常断电或者非正常关机造成的。

出现此问题时,系统启动时,屏幕会显示:

按root密码或ctrl+D:

此时输入root密码,系统会自动进入单用户模式。进入:

fsck -y /dev/hda6

(fsck是文件系统检测和修复命令,“-y”设置检测到的错误自动修复,/dev/hda6是发生错误的硬盘分区,请根据具体情况更改此参数)

系统修复完成后,只需使用“rebo​​ot”命令重新启动即可。

情况 3:GRUB 选项设置错误

“Error 15”表明系统找不到grub.conf中指定的内核。

GRUB 启动错误消息。我们观察到,由于输入错误,内核文件中的“vmlinuz”被输入为“vmlinux”,因此系统找不到内核可执行文件。

我们可以按任意键返回GRUB编辑界面并修改这个错误。按Enter键保存并按“b”键正常启动。当然,进入系统后不要忘记修改grub.conf文件中的错误。

这是许多 Linux 新手在修改 GRUB 设置时容易犯的错误。当出现此黑屏提示时,请注意错误信息并进行相应修复。

2.GRUB启动故障排除

我发现有时Linux启动后会直接进入GRUB命令行界面(只有“grub>”提示符)。这时,很多用户都会选择重新安装GRUB,甚至重装系统。

其实,一般来说,造成这种故障最常见的原因有两个:

如果是第一种情况,可以先通过GRUB命令引导系统,然后修复;如果是第二种情况,则需要使用Linux救援模式进行修复(本文稍后介绍)。

首先,我们需要了解GRUB引导系统的引导过程。 grub.conf文件中的主要配置选项如下:

(注意GRUB的配置文件是/boot/grub/grub.conf,/etc/grub.conf只是这个文件的软链接)

title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img

在:

因此,GRUB启动时的顺序是先加载/boot分区,然后依次加载内核和镜像文件。

案件

“标题 Fedora Core (2.6.18-1.2798.fc6)”部分被意外删除

此时系统启动后会自动进入“GRUB>”命令行。为了排除故障,我们可以依次进行以下操作:

1、找到/boot/grub/grub.conf文件所在分区GRUB> find /boot/grub/grub.conf(hd0, 0)

2.检查grub.conf文件错误GRUB>cat(hd0,0)/boot/grub/grub.conf。建议在系统安装和设置后备份 grub.conf 文件。如果有grub.conf.bak之类的备份文件,那么此时可以查看备份文件,与当前文件进行对比,发现错误:GRUB>cat(hd0,0)/boot/grub/ grub配置文件

3、确认错误后,首先通过命令行完成GRUB启动,进入系统后修复grub.conf文件错误:

1)指定/boot分区根目录(hd0,0)

2)指定内核加载内核 /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb Quiet

3)指定镜像文件initrd的位置 /boot/initrd-2.6.18-1.2798.fc6.img

提示:GRUB支持tab键命令补全功能

4.从/boot分区(hd0,0)开始启动

命令行模式可以通过在GRUB菜单模式下按“c”键来调用,也可以用于测试新编译的内核(设置内核、initrd引导新内核和映像文件)。加深对 GRUB 引导和 Linux 系统引导知识的理解对于解决此类问题大有帮助。

3.Linux救援模式应用

当系统连单用户模式都无法进入或者出现GRUB命令行无法解决的启动问题时,我们就需要使用Linux救援模式来排除故障。

步骤如下:

1、将Linux安装光盘(如果使用光盘,则放入第一张启动光盘)放入光驱,设置固件CMOS/BIOS为从光盘启动,当出现Linux安装界面时,在“boot”后输入:”提示“linuxrescue”并回车进入救援模式。 (如果想了解更多救援模式,也可以按F5键查看)

2、系统会检测硬件,启动光盘上的Linux环境,并提示选择救援模式使用的语言(建议选择默认英文,根据笔者测试,部分Linux系统会选择中文时造成乱码);使用键盘设置默认“us”即可;网络设置可以根据需要进行设置。大多数故障修复不需要网络连接。您不需要进行此设置并选择“否”。

3、接下来系统会尝试寻找根分区,并会出现挂载提示。默认设置为救援模式。硬盘根分区将被挂载到光盘Linux环境的/mnt/sysimage目录下。默认选项“继续”表示安装权限。对于读写:“Read-only”表示只读。如果检测失败,可以选择“跳过”来跳过。这里,因为系统需要修复,所以需要读写权限。一般情况下,选择默认选项“继续”。

进入下一步后,系统提示执行“chroot /mnt/sysimage”命令,将根目录挂载到我们硬盘系统的根目录下。

案例一:双系统启动修复

当我们安装双系统环境时,先安装Linux,再安装Windows;或者双系统环境下安装的Windows损坏。重装Windows后,保存GRUB的MBR(主引导记录)会被Windows系统自动删除。安装程序被NTLDR覆盖,导致Linux系统无法启动。

1、如果要恢复双系统启动,首先使用上述方法进入救援模式,执行chroot命令如下:sh-3.1# chroot /mnt/sysimage

2、将根目录切换到硬盘系统根目录,然后执行grub-install命令重新安装GRUB: sh-3.1# grub-install /dev/hda “/dev/hda”是硬盘名称,比如使用SCSI硬盘或者Linux安装在第二个IDE硬盘上,这个设置需要做相应的调整。

3、然后依次执行exit命令,退出chroot模式和rescue模式(执行exit命令两次): sh-3.1# exit 系统重启后,将恢复GRUB引导的双系统启动。

案例2:修复丢失的系统配置文件

系统启动过程中,一个非常重要的过程是init进程读取其配置文件/etc/inittab,启动系统的基本服务程序和默认运行级服务程序来完成系统的启动。如果 /etc/inittab 被意外删除或错误修改,Linux 将无法正常启动。此时,此类问题只能通过救援模式来解决。

/etc/inittab 文件丢失启动错误示例

1.有办法恢复备份文件。进入救援模式。执行chroot命令后,如果有该文件的备份(强烈建议对系统中的重要数据目录,如/etc、/boot等进行备份),则直接复制备份文件。返回,退出并重新启动。

如果是配置文件修改错误,比如典型的/boot/grub/grub.conf和/etc/passwd文件修改错误,也可以直接更正并恢复。

假设有备份文件/etc/inittab.bak,在救援模式下执行:

sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab

2.无需备份文件的恢复方法。如果某些配置文件丢失或者软件被意外删除且没有备份,可以通过重新安装软件包来恢复。

首先查找/etc/inittab属于哪个RPM包(即使文件丢失,仍然可以找到结果,因为有RPM数据库):

sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

退出 chroot 模式:

sh-3.1# exit

挂载存放RPM包的安装光盘(救援模式下通常挂载在/mnt/source目录下):

sh-3.1# mount /dev/hdc /mnt/source

Fedora系统的RPM包存放在光盘的Fedora/RPMS目录下。其他Linux系统的存储位置类似,这里就不一一列举了;

另外,由于待修复的硬盘系统根目录位于/mnt/sysimage下,因此需要使用--root选项指定其位置。

覆盖安装/etc/inittab文件的RPM包:

sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

rpm 命令选项“--replacepkgs”意味着覆盖安装。执行完成后,文件已恢复。

如果只想提取RPM包中的/etc/inittab文件进行恢复,可以进入救援模式后执行命令:

sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittab sh-3.1# cp etc/inittab /mnt/sysimage/etc

注意,执行该命令时,文件不能直接恢复到/etc目录下。只能解压到当前目录,恢复的文件名路径必须填写完整的绝对路径。成功解压文件后,将其复制到根分区所在的/mnt/sysimage目录中的相应位置。

救援模式是维护Linux的有力武器。本文通过以上两个例子来讲解其应用方法,希望能给读者一些启发。要解决Linux系统启动失败的问题,必须充分了解Linux的启动过程,才能有效地判断和处理故障。

签到送书活动

活动介绍:

活动奖品:技术书籍×7

主办单位:清华大学出版社

本书适合作为Python程序员的开发指南。也可作为高等院校计算机专业、软件工程专业等专业的Python教材。也可以作为Python爱好者的指导书籍。

扫描以下二维码登录并参与

linux系统备份还原软件_linux备份还原工具_linux备份系统

本公众号的所有博文均已整理到一个目录中。请在公众号回复“m”即可获取!

相关内容 查看全部