Linux正在发动进程中会涌现一些毛病,招致零碎无奈畸形发动,白文罗列了多少个使用单用户形式、GRUB通知操作、Linux营救形式的垂范毛病修补案例协助观众群理解该类成绩的处理。
一、单用户形式
Linux需要了单用户形式(相似Windows保险形式),能够正在最小中停止零碎。正在单用户形式(运转级别1)中,Linux指导进入根shell,网络被禁用,只要多数历程运转。单用户形式能够用于修正资料零碎保护、复原配置资料、移户数据等。
以次罗列了多少个单用户形式修补零碎毛病的垂范案例:
案例一:硬盘扇区
正在发动进程中最简单遇到的成绩就是硬盘能够有坏道或者扇区(数据保护)的状况,这种状况多因为异样断流、没有畸形关灯招致。
此种成绩发作,正在零碎发动的时分,银幕会显现:
Press root password or ctrl+D:
这时输出root明码零碎主动进入单用户形式,输出“fsck -y /dev/hda6”(fsck为资料零碎检测修补通知,“-y”设定检测到谬误主动修补,/dev/hda6为发作谬误的硬盘分区,请根据详细状况更改此参数),零碎修补实现后,用通知“reboot”从新发动即可。
案例二:root明码忘却
正在单用户形式中,Linux没有需求root明码(Red Hat零碎没有需求root明码,但SuSe则需求,没有同Linux零碎稍有差异,白文以FedoraCore 6为例),这使更改root明码无比简单。理解当零碎指导进入多用户形式失利时,如何进入单用户形式,无比主要。
1、 正在零碎发动进程中,会涌现图1所示画面,按恣意键,进入GRUB菜单选项。
图1 进入GRBU菜单选项
若指望当前无此提醒,间接进入GRUB菜单选项,芟除配置资料grub.conf中“hiddenmenu”项即可。
2、 按“e”键编者GRUB指导菜单选项,图2显现为按“e”键后的GRUB银幕。
图2 GRUB指导菜单选项
经过箭镞键下移到kernel行,并按“e”键,失去图3中显现的编者界面:
图3 kernel行编者界面
正在光标处增添single,按回车键前往前一度银幕,按“b”键停止指导,则零碎主动进入单用户形式,假如要改观root明码,则施行通知:
sh-3.1# passwd root
更改顺利后,施行通知exit加入重启即可。
咱们能够正在单用户形式中去改正零碎畸形发动的很多成绩,比方:1、 禁用能够停止零碎运转的服务如禁用Samba服务,则施行:sh-3.1# chkconfig smb off下次零碎指导就没有会发动Samba服务了。
2、 更改零碎缺省运转级假如X Window无奈发动或者许涌现毛病,能够编者/etc/inittab资料,采纳文本形式登录,更改initdeult指导级别为3:id:3:initdeult:
案例三、GRUB选项安装谬误
下图是一度零碎治理员没有指望看到的掌握台消息,“Error 15”显现零碎无奈找出grub.conf三拇指定的内核。
图4 GRUB指导谬误消息
咱们视察发觉由于打字谬误,内核资料的“vmlinuz”打成了“vmlinux”,因为零碎无奈找出内核的可施行资料。咱们能够按恣意键回到GRUB编者界面,修正此谬误,回车销毁后按“b”键即可畸形指导,千万没有要忘却进入零碎后修正grub.conf资料中此处谬误。
这是很多初学Linux的用户正在修正GRUB安装时很简单犯的谬误,涌现此黑屏提醒时留意视察报错消息,即可对准于性修补。
二、GRUB指导毛病扫除
有时Linux发动后会间接进入GRUB通知行界面(只要“grub”提醒符),这时很多用户就取舍了从新装置GRUB以至从新装置零碎。实在正常而言此毛病的缘由最罕见的有两个:一是GRUB配置资料当选项安装谬误;二是GRUB配置资料迷失(再有多数缘由,如内核资料或者镜像资料保护、迷失,/boot节目误芟除等),假如是第一种状况,能够率先经过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
内中“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/grub/grub.conf零碎装置安装好后,要将grub.conf资料备份,假如有备份资料如grub.conf.bak,则这时能够检查备份资料,与以后资料比拟,发觉谬误:GRUBcat (hd0,0)/boot/grub/grub.conf.bak
3、确认谬误后,先经过通知行形式实现GRUB指导,进入零碎后再行修补grub.conf资料谬误:1)指名/boot分区root (hd0,0)
2)指名内核加载kernel /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分区发动boot (hd0,0)
通知行形式能够正在GRUB菜单形式中经过按“c”键调用,也能够用来测试正编译的内核(安装kernel、initrd指导新内核及镜像资料)。增多对于GRUB指导以及Linux零碎指导学问的理解将对于该类毛病扫除大有协助。
三、Linux营救形式使用
当零碎连单用户形式都无奈进入时或者涌现GRUB通知行也没有能处理的指导成绩,咱们就需求运用Linux营救形式来停止毛病扫除了。方法如次:
1、将Linux装置光盘(假如运用CD光盘,则放入第一张指导光盘)放入光驱,安装固件CMOS/BIOS为光盘指导,当Linux装置画面涌现后,正在“boot:”提醒符后输出“linux rescue”回车进入营救形式。(想理解营救形式细致消息,还能够按F5键检查)
图5 进入营救形式
2、零碎会检测软件,指导光盘上的Linux,顺次提醒你取舍营救形式下运用的言语(取舍默许的英文即可,依据作者测试,全体Linux零碎取舍中文会涌现乱码);键盘安装用默许的“us”就好;网络安装能够依据需求,大全体毛病修补没有需求网络联接,可没有停止此项安装,取舍“No”。
3、接上去零碎将试图查找根分区,涌现以次提醒:图6 荷载安装
默许正在营救形式,硬盘的根分区将荷载到光盘Linux的/mnt/sysimage节目下,默许选项“continue”示意荷载权限为读写:“Read-only”为只读,假如涌现检测失利能够取舍“skip”跳过。此处,由于要对于零碎停止修补,因为需求有读写权限,正常取舍默许选项“continue”。
进入下一步后,零碎提醒施行“chroot /mnt/sysimage”通知,能够将根节目荷载到咱们硬盘零碎的根节目中去。
案例一:双零碎发动修补
当咱们装置双零碎,先装置Linux再装置Windows;或者许曾经装置好双零碎的Windows保护,正在从新装置Windows后,销毁 GRUB的MBR(Master Boot Record,主指导记载)会被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形式及营救形式(施行两次exit通知):sh-3.1# exit零碎重启后,将复原GRUB指导的双零碎发动。
案例二:零碎配置资料迷失修补
零碎正在指导时期,很主要的一度进程就是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# 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的指导进程,才可以对于毛病停止无效的判别和解决。