中国投资网 百科 教你不再为Linux系统无法正常启动而烦恼

教你不再为Linux系统无法正常启动而烦恼

Linux的启动过程中会出现一些故障,导致系统无法正常启动。本文列举了几个典型的使用单用户模式、GRUB命令操作和Linux rescue模式的故障修复案例,帮助读者了解此类问题的解决方法。

1.单用户模式

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

下面是单用户模式修复系统故障的几个典型案例:

案例1:硬盘扇区混乱

启动过程中最容易遇到的问题是硬盘可能出现坏轨或扇区混乱(数据损坏),这种情况多是由于非正常断电和非正常关机造成的。

这种问题发生时,当系统启动时,屏幕会显示:

按root密码或ctrl D:

此时输入root密码,系统会自动进入单用户模式。输入' fsck -y /dev/hda6'(fsck是文件系统检测和修复命令,'-y '设置检测到错误时自动修复,/dev/hda6是出现错误的硬盘分区。请根据具体情况更改此参数)。修复系统后,使用“reboot”命令重新启动系统。

案例2:忘记根密码

单用户模式下,Linux不需要root密码(红帽系统不需要root密码,SuSe需要。不同的Linux系统略有不同。本文以Fedora Core 6为例进行说明),这使得修改root密码变得非常容易。当系统无法引导进入多用户模式时,知道如何进入单用户模式非常重要。

1.在系统启动过程中,会出现如图1所示的屏幕。按任意键进入GRUB菜单选项。

图1进入GRBU菜单选项

如果您以后不想要这个提示,只需转到GRUB菜单选项并删除配置文件grub.conf中的“hiddenmenu”项

2.按“E”键编辑GRUB引导菜单选项。图2显示了按下“E”键后的GRUB屏幕。

图2 GRUB引导菜单选项

通过箭头键向下移动到内核行,按“E”键得到如图3所示的编辑界面:

图3内核行编辑界面

在尾部光标处加单,回车返回上一屏,按' B '引导,则系统自动进入单用户模式。如果要更改root密码,请执行以下命令:

sh-3.1#密码根

更改成功后,执行命令exit退出并重新启动。

在单用户模式下,我们可以纠正很多妨碍系统正常启动的问题,比如:1。禁用可能会停止系统运行的服务。如果Samba服务被禁用,执行:sh-3.1# chkconfig smb off,Samba服务将不会在下次系统引导时启动。

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

案例三。GRUB选项设置不正确

下图是系统管理员不想看到的控制台消息。“错误15”表明系统找不到grub.conf中指定的内核

图4 GRUB启动错误消息

我们观察到,由于输入错误,内核文件‘vmlinuz’被输入为‘vmlinux’,所以系统找不到内核的可执行文件。我们可以按任意键返回GRUB编辑界面,修改这个错误。输入并保存后,我们可以按‘B’键正常开机。当然,别忘了进入系统后修改grub.conf文件中的这个错误。

这是许多Linux新用户在修改GRUB设置时容易犯的错误。当出现这种黑屏提示时,请注意错误消息,您可以相应地修复它。

二、GRUB引导故障排除

有时候Linux会在启动后直接进入GRUB命令行界面(只有' GRUB '提示符)。这时候很多用户选择重装grub甚至重装系统。一般来说,这种故障的常见原因有两个:一是GRUB配置文件中的选项设置错误;二、GRUB配置文件丢失(还是有几个原因,比如内核文件或者镜像文件损坏或者丢失,误删了/boot目录等等。).如果是第一种情况,可以先通过GRUB命令引导系统,然后修复;在第二种情况下,应该使用Linux rescue模式来修复它(将在本文后面描述)。

首先,我们需要知道GRUB引导系统的引导过程。GRUB.conf文件中的主要配置选项如下(注意GRUB配置文件是/boot/grub/grub.conf,而/etc/grub.conf只是这个文件的软链接):

标题Fedora核心(2.6.18-1.2798.fc6)

根(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

“title”部分指定GRUB引导的系统:“root”部分指定/boot分区的位置;“kernel”部分指定内核文件的位置;加载时内核的权限属性为只读(' ro ')和根分区的位置(root=LABEL=/);Initrd指定图像文件的位置。因此,GRUB在引导时首先加载/boot分区,然后依次加载内核和镜像文件。

案例:‘Title 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文件时出错grubcat (HD0,0)/boot 0)/boot/grub/grub.conf建议在系统安装后备份grub.conf文件。如果有grub.conf.bak之类的备份文件,此时可以查看备份文件。与当前文件相比,您发现一个错误:grubcat (HD0,0)/boot/。

3.确认错误后,先通过命令行完成GRUB引导,进入系统后修复grub.conf文件。错误:1)指定/boot分区根目录(hd0,0)

2)指定kernel/boot/vmlinuz-2 . 6 . 18-1.2798 . fc6 root=label=/rhgbquiet 3)指定镜像文件initrd/boot/initrd-2 . 6 . 18-1.2798 . fc6 . img的位置。

提示:GRUB支持tab命令补全。

4.从/boot分区引导(HD0,0)

命令行模式可以在GRUB菜单模式下按‘C’键调用,也可以用来测试新编译的内核(设置kernel,initrd引导新的内核和镜像文件)。增加GRUB引导和Linux引导的知识,对这样的故障排除会有很大的帮助。

三、Linux救援模式的应用

当系统甚至无法进入单用户模式或者出现GRUB命令行无法解决的引导问题时,我们需要使用Linux rescue模式进行故障排除。步骤如下:

1.将Linux安装光盘(如果使用光盘,放入第一张引导光盘)放入光驱,将固件CMOS/BIOS设置为CD boot。当Linux安装屏幕出现时,在“boot:”提示符下输入“linux rescue”并进入救援模式。(救援模式详情也可以按F5查看。)

图5进入救援模式

2.系统会检测硬件,引导光盘上的Linux环境,然后提示你选择救援模式下使用的语言(建议选择默认的英语。据笔者测试,部分Linux系统在选择中文时会出现乱码);只需使用键盘设置的默认“us”即可;网络可以根据需要设置,大部分故障维修都不需要网络连接,没有这个设置可以选择‘否’。

3.接下来,系统将尝试查找根分区,并将出现以下提示:图6挂载设置

在默认的救援模式下,硬盘的根分区将被挂载在CD-ROM Linux环境的/mnt/sysimage目录中。默认选项“继续”意味着装载权限是读写的:“只读”是只读的。如果检测失败,您可以选择“跳过”来跳过。这里因为系统需要修复,所以需要有读写权限。通常,会选择默认选项“继续”。

进入下一步后,系统提示您执行命令‘ch root/mnt/sysimage’将根目录挂载到我们硬盘系统的根目录中。

案例1:双系统启动修复

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

1.如果要恢复双系统引导,先按上述方法进入救援模式,执行以下命令:sh-3.1# chroot /mnt/sysimage。

2.将根目录切换到硬盘系统的根目录,然后执行grub-install命令重新安装grub:sh-3.1 # grub-install/dev/hda '作为硬盘名称。如果您使用SCSI硬盘或Linux在第二个IDE硬盘上安装,则应相应调整此设置。

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

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

在系统引导过程中,一个重要的过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序和默认运行级服务程序,完成系统引导。如果/etc/inittab被错误地删除或修改,Linux将无法正常启动,如图7所示。这时候这种问题只能通过救助模式来解决。

图7 /etc/inittab文件丢失引导错误示例

1.如果有备份文件,进入救援模式。chroot命令执行后,如果有该文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等。应该备份),只需将备份文件复制回来,退出,重启即可。如果是配置文件修改错误,比如典型的/boot/grub/grub.conf和/etc /passwd的文件修改错误,也可以直接纠正恢复。假设有一个备份文件/etc/inittab.bak,将在救援模式下执行:sh-3.1 # ch root/mnt/sysimagesh-3.1 # CP/etc/inittab . bak/etc/inittab。

2.无备份文件的恢复方法。如果丢失了一些配置文件或者误删了软件,没有备份,可以通过重新安装软件包来恢复。

本文来自网络,不代表本站立场,转载请注明出处:https:

教你不再为Linux系统无法正常启动而烦恼

中国投资网后续将为您提供丰富、全面的关于教你不再为Linux系统无法正常启动而烦恼内容,让您第一时间了解到关于教你不再为Linux系统无法正常启动而烦恼的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。