教你不再为Linux系统无法正常启动而烦恼
Linux在启动😹过程中【guò chéng zhōng】🦑会出现【huì chū xiàn】一些故📉障,导致系📥统无法正常启🛷动😹,本文列举了几个应用单用户【dān yòng hù】🚬模式、GRUB命令操【mìng lìng cāo】作【zuò】、Linux救援模式的典【shì de diǎn】型故障【xíng gù zhàng】修复案🌄例帮助读者了【dú zhě le】解此类问题的解决💻。
一、单用户模式
Linux提供了单用户⏯模式【mó shì】(类似Windows安全模【ān quán mó】🚅式),可以在【kě yǐ zài】最小环【zuì xiǎo huán】境中进🙇行系统维护。在单用🔇户模式【mó shì】(运行级别【bié】1)中,Linux引导进【yǐn dǎo jìn】入根shell,网络被【wǎng luò bèi】📵禁用💎,只有少数进程💾运行。单用户⏯模式可【mó shì kě】以用来🥚修改文件系统【jiàn xì tǒng】损坏、还原配置文件🚯、移动用【yí dòng yòng】🚢户数据【hù shù jù】等💀。
以下列举了几🧞个单用户模式【hù mó shì】🎄修复系【xiū fù xì】📐统故障的典型案例【àn lì】:
案例一:硬盘扇区错乱
在启动📖过程中最容易遇到的【yù dào de】〽问题就是硬盘【shì yìng pán】💥可能有坏【huài】道或😤扇区错【shàn qū cuò】乱(数据损坏【huài】)的情况🐓,这种情况多由🚨于异常断电【duàn diàn】、不正常关机导致【zhì】。
此种问【cǐ zhǒng wèn】题发生,在系统🐈启动的时候😚,屏幕会【píng mù huì】显示【xiǎn shì】✝:
Press root password or ctrl+D:
此时输入root密码系【mì mǎ xì】统自动【tǒng zì dòng】进入单🛁用户模【yòng hù mó】式💿,输入“fsck -y /dev/hda6”(fsck为文件【wéi wén jiàn】😼系统检测修复命令【mìng lìng】,“-y”设定检测到错误自动🛄修复,/dev/hda6为发生错误的🕛硬盘分🚒区【qū】,请依据🤠具体情况更改 此参数),系统修🈯复完成【fù wán chéng】后,用命令【yòng mìng lìng】“reboot”重新启动即可【dòng jí kě】💜。
案例二:root密码忘记
在单用🏟户模式【hù mó shì】 中🆕,Linux不需要✉root密码【mì mǎ】📧(Red Hat系统不需要✉root密码【mì mǎ】📧,但SuSe则需要【zé xū yào】😟,不同【bú tóng】🏀Linux系统稍有差别,本文以Fedora Core 6为例讲解【jiě】),这使更【zhè shǐ gèng】改root密码非【mì mǎ fēi】🥂常容易。了解【jiě】当系统引导进入多用户模式【hù mó shì】失败时【bài shí】,如何进🥦入单用【rù dān yòng】🔠户模式【hù mó shì】,非常重要😟。
1、 在系统启动过♊程中【chéng zhōng】,会出现图🧛1所示画面🐚,按任意【àn rèn yì】键,进入【jìn rù】GRUB菜单选项【xiàng】👥。
图1 进入GRBU菜单选项
若希望🧣以后无此提示【cǐ tí shì】,直接进【zhí jiē jìn】入GRUB菜单选项🕦,删除配置文件【zhì wén jiàn】grub.conf中🌧“hiddenmenu”项即可【xiàng jí kě】🙆。
2、 按🕥“e”键编辑【jiàn biān jí】GRUB引导菜【yǐn dǎo cài】🌨单选项😰,图2显示为【xiǎn shì wéi】按🕥“e”键后的GRUB屏幕。
图2 GRUB引导菜单选项
通过箭【tōng guò jiàn】🌖头键下移到【yí dào】👬kernel行【háng】,并按“e”键,得到图🕚3中显示的编辑界面:
图3 kernel行编辑界面
在尾行🈸光标处添加🌦single,按【àn】回车键返回【jiàn fǎn huí】前一个【qián yī gè】屏幕,按【àn】“b”键进行【jiàn jìn háng】🥊引导🤖,则系统自动进【zì dòng jìn】入单用户模式🎩,如果要改变root密码,则执行👺命令【mìng lìng】:
sh-3.1# passwd root
更改成🎤功后,执行命【zhí háng mìng】令exit退出重启即可【qǐ jí kě】🧑。
我们可🏽以在单用户模🐦式中去纠正阻止系统正常启🌠动的很🥣多问题,比如:1、 禁用可【jìn yòng kě】能中止【néng zhōng zhǐ】系统运【xì tǒng yùn】行的服【háng de fú】务🎟如禁用Samba服务【fú wù】🎟,则执行:sh-3.1# chkconfig smb off下次系【xià cì xì】🐗统引导就不会【jiù bú huì】启动Samba服务【fú wù】了🚹。
2、 更改系统缺省【tǒng quē shěng】运行级如果X Window无法启【wú fǎ qǐ】动或者🔹出现故➿障,可以编【kě yǐ biān】🈹辑/etc/inittab文件,采用文【cǎi yòng wén】本方式【běn fāng shì】🍢登录【dēng lù】🌐,更改initdefault引导级别为🚬3:id:3:initdefault:
案例三、GRUB选项设置错误
下图是一个系🥃统管理【tǒng guǎn lǐ】员不希【yuán bú xī】望看到的控制【de kòng zhì】台信息👭,“Error 15”显示系统无法🈳找到🕕grub.conf中指定的内核【de nèi hé】。
图4 GRUB引导错误信息
我们观察发现因为打字错误【zì cuò wù】🎗,内核文【nèi hé wén】🛠件的“vmlinuz”打成了“vmlinux”,所以系🚮统无法🌇找到【dào】内核的可执行文【zhí háng wén】件。我们可🥤以按任意键回【yì jiàn huí】到【dào】GRUB 编辑界【biān jí jiè】🏝面,修改【gǎi】此🌔错误【cuò wù】🎗,回车保🉐存后按🛩“b”键即可【jiàn jí kě】正常引导,当然不【dāng rán bú】✉要忘记【yào wàng jì】进入系统后修改【gǎi】grub.conf文件中此处错📈误🎗。
这是很多初学Linux的用户在修改👹GRUB设置时📍很容易【hěn róng yì】犯的错📬误【wù】,出现此【chū xiàn cǐ】🕛黑屏提示时注【shì shí zhù】意观察报错信息【xī】,即可针【jí kě zhēn】🈲对性修复🎄。
二、GRUB引导故障排除
有时Linux启动后会直接【huì zhí jiē】⏯进入GRUB命令行🛰界面(只有🍝“grub>”提示符),此时很多用【duō yòng】➗户就选择🍯了重新安装GRUB甚至重新安装系统【xì tǒng】。其实📌 一般而🏟言此故障的原⭕因最常【yīn zuì cháng】见的有【jiàn de yǒu】两个:一是【yī shì】GRUB配置文👝件中选【jiàn zhōng xuǎn】项设置【xiàng shè zhì】错误;二是【èr shì】GRUB配置文👝件丢🛅失(还有少【hái yǒu shǎo】🚬数原因【shù yuán yīn】,如内核🤼文件或【wén jiàn huò】🌙镜像文【jìng xiàng wén】件损坏、丢🛅 失,/boot目录误👜删除等🍜),如果是【rú guǒ shì】💚第一种【dì yī zhǒng】情况【qíng kuàng】,可以首🔮先通过GRUB命令引【mìng lìng yǐn】导系统【xì tǒng】后修复;若是第【ruò shì dì】二种情况【qíng kuàng】,则要使用➗Linux救援模式修复了(本文后 续有描🕍述)。
首先【shǒu xiān】,我们需【wǒ men xū】要了解【yào le jiě】🏕GRUB启动系统的引【tǒng de yǐn】🚣导过程,grub.conf文件中主要的💅配置选项如下🐎(注意,GRUB配置文【pèi zhì wén】件为/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”段指定【duàn zhǐ dìng】🌨了【le】📴GRUB引导的系统【xì tǒng】🥂:“root”段指定【duàn zhǐ dìng】🌨了【le】📴/boot分区【fèn qū】所在的位置【zhì】:“kernel”段指定【duàn zhǐ dìng】🌨了【le】内核👝文件【jiàn】所在位置【zài wèi zhì】🧚,内核加载💝 时权限🕶属性为【shǔ xìng wéi】只读(“ro”)以及指🔃定根分区【fèn qū】所在位置【zài wèi zhì】🧚(root=LABEL=/);initrd指定了【zhǐ dìng le】📴镜像文【jìng xiàng wén】🤼件【jiàn】所在位置【zài wèi zhì】🧚。所以GRUB在引导时顺序为首🕶 先加载💝/boot分区【fèn qū】,然后依次载💝入内核与镜像文【jìng xiàng wén】🤼件【jiàn】。
案例【àn lì】:“title Fedora Core (2.6.18-1.2798.fc6)”段被误删除🆕
此时💧,系统启【xì tǒng qǐ】🌥动后会🐱自动进入【rù】“GRUB>”命令行🛄,为排除故障我们可以【men kě yǐ】依次做【yī cì zuò】如下操作:
1、查找🌊/boot/grub/grub.conf文件所在分区【zài fèn qū】GRUB> find /boot/grub/grub.conf(hd0,0)
2、查看【chá kàn】grub.conf文件【jiàn】💶错误GRUB>cat (hd0,0)/boot/grub/grub.conf建议系统安装设置好后,要将【yào jiāng】grub.conf文件【jiàn】💶备份,如果有【rú guǒ yǒu】备份文件【jiàn】💶如【rú】 grub.conf.bak,则此时可以查【kě yǐ chá】看备份【kàn bèi fèn】💎文件【jiàn】💶,与当前🤚文件【jiàn】比🖍较📽,发现错🦊误:GRUB>cat (hd0,0)/boot/grub/grub.conf.bak
3、确认错【què rèn cuò】🏄误后【wù hòu】🙌,先通过命令行方式完成GRUB引导【yǐn dǎo】🕑,进入系【jìn rù xì】🎞统后再【tǒng hòu zài】行修复grub.conf文件错误:1)指定/boot分区🤯root (hd0,0)
2)指定内【zhǐ dìng nèi】核加载🌸kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet 3)指定镜💽像文件【xiàng wén jiàn】所在位置initrd /boot/initrd-2.6.18-1.2798.fc6.img
提示:GRUB支持tab键命令补全功能
4、从/boot分区启🐮动【dòng】boot (hd0,0)
命令行【mìng lìng háng】模式可【mó shì kě】以在【yǐ zài】🌏GRUB菜单模📬式中通过按【guò àn】“c”键调用,也可以🖐用于测【yòng yú cè】🥍试新编译的内核(设置kernel、initrd引导新💮内核及【nèi hé jí】🏚镜像文件)。增加对GRUB引导以【yǐn dǎo yǐ】🍼及Linux系统引【xì tǒng yǐn】导知识🎧的了解【de le jiě】将对此类故障排除大🐄有帮助。
三、Linux救援模式应用
当系统【dāng xì tǒng】😳连单用🉐户模式【hù mó shì】🏼都无法进入时🏰或出现【huò chū xiàn】GRUB命令行也不能解决的引导问题,我们就【wǒ men jiù】需要使用Linux救援模式来进🖍行故障【háng gù zhàng】排除了🌰。步骤如下【xià】:
1、将😊Linux安装光盘【pán】📤(如果使用CD光盘【pán】📤,则放入第一张引导光【yǐn dǎo guāng】🕜盘【pán】📤)放入光【fàng rù guāng】🏕驱,设置固【shè zhì gù】件【jiàn】📹CMOS/BIOS为光盘【wéi guāng pán】📤引导【yǐn dǎo】,当Linux安装画面出现🐅后, 在“boot:”提示符后输入【hòu shū rù】🤹“linux rescue”回车进【huí chē jìn】入救援⤵模式。(想了解🙃救援模式详细信息,还可以【hái kě yǐ】🔫按F5键查看)
图5 进入救援模式
2、系统会检测硬✋件,引导光【yǐn dǎo guāng】盘上的【pán shàng de】Linux环境,依次提💗示你选择救援🔦模式下【mó shì xià】使用的语言【yǔ yán】(建议选【jiàn yì xuǎn】💰择默认【zé mò rèn】🚒的英文即可,根据笔者测试【zhě cè shì】🌲,部分😽Linux系统选 择中文会出现乱码【luàn mǎ】);键盘设置【shè zhì】🕢用默认的“us”就好;网络设👿置【zhì】可以根据需【gēn jù xū】要,大部分【dà bù fèn】😽故障修复不需要网络连接,可不进🌭行此项【háng cǐ xiàng】📏设置【shè zhì】🕢,选择“No”。
3、接下来系统将🎬试图查【shì tú chá】找根分🐎区,出现以下提示:图【tú】6 挂载设😁置【zhì】
默认在【mò rèn zài】救援模💧式,硬盘的🐪根分区【gēn fèn qū】将挂载到光盘【dào guāng pán】⛩Linux环境的/mnt/sysimage目录下🦇,默认选项【xuǎn xiàng】“continue”表示挂【biǎo shì guà】📞载权限为读 写【xiě】:“Read-only”为只读,如果出现检测失败可以选择【yǐ xuǎn zé】“skip”跳过【tiào guò】🍩。此处,因为要对系统【duì xì tǒng】进行修复🚻,所以需💼要有读💪写【xiě】权限,一般选😫择默认【zé mò rèn】选项【xuǎn xiàng】 “continue”。
进入下一步后🍩,系统提示执行【shì zhí háng】“chroot /mnt/sysimage”命令🕷,可以将【kě yǐ jiāng】🏍根目录挂载到我们硬【wǒ men yìng】🎆盘系统【pán xì tǒng】的根目录中去。
案例一:双系统启动修复
当我们🌞安装【ān zhuāng】双🌷系统环境【jìng】🐴,先安装【ān zhuāng】Linux再安装【ān zhuāng】Windows;或者已🐻经安装【ān zhuāng】好双系统环境【jìng】🐴的【de】Windows损坏🏤,在重新【zài chóng xīn】安装【ān zhuāng】Windows后,保存 GRUB的【de】MBR(Master Boot Record,主引导【zhǔ yǐn dǎo】记录🤜)会被Windows系统的【de】🤘自举程【zì jǔ chéng】🛀序【xù】NTLDR所覆盖,造成【zào chéng】⏯Linux系统无法引导。
1、如果要🤳恢复双【huī fù shuāng】系统引导,首先用【shǒu xiān yòng】上述方🥡法进入🌂救援模🤺式【shì】,执行【zhí háng】chroot命令如下:sh-3.1# chroot /mnt/sysimage
2、将根目录【gēn mù lù】切换🐖到硬盘【dào yìng pán】系统的【xì tǒng de】根目录【gēn mù lù】中【zhōng】😡,然后执行grub-install命令重【mìng lìng chóng】👲新安装GRUB:sh-3.1# grub-install /dev/hda“/dev/hda”为硬盘🛺名称➗,如使用SCSI硬盘或【yìng pán huò】💩Linux安装在第二块👪IDE硬盘,此项设置要做相应调整【zhěng】。
3、然后依🍫次执行【cì zhí háng】exit命令【mìng lìng】❗,退出【tuì chū】chroot模式🤛及救援【jí jiù yuán】模❎式🤛(执行两次【cì】exit命令【mìng lìng】❗):sh-3.1# exit系统重启后,将恢复🚡GRUB引导的双系统【shuāng xì tǒng】启动。
案例二:系统配置文件丢失修复
系统在🤓引导【dǎo】期间,很重要【hěn chóng yào】💪的一个【de yī gè】🕧过程就是init进程读取其配【qǔ qí pèi】置文件【zhì wén jiàn】/etc/inittab,启动🆒系统基本服务程序及【chéng xù jí】默【mò】🐻认运行级别的服务程序完成🌘系统引🎍 导【dǎo】,如果/etc/inittab误删除【wù shān chú】或修改【huò xiū gǎi】🙇错误,Linux将无法💎正常启动🆒,如图7所示。此时,只有通【zhī yǒu tōng】🤖过救援模式才【mó shì cái】可以解决此类问题【wèn tí】🌈。
图7 /etc/inittab文件丢【wén jiàn diū】🔽失引导错误示例【lì】♏
1、有备份【bèi fèn】🌍文件【wén jiàn】的🔖恢复办法进入【fǎ jìn rù】救援模式【yuán mó shì】🌭,执行【zhí háng】🍲chroot命令后,如果有此文件【wén jiàn】的🔖备份【bèi fèn】(强烈建【qiáng liè jiàn】💇议系统中的重🍴要数据目录【mù lù】📣,如/etc、/boot等要进行🍲 备份【bèi fèn】),直接将【zhí jiē jiāng】备份【bèi fèn】文件【wén jiàn】拷贝🐬回去【huí qù】,退出重【tuì chū chóng】启即可🧛。如果是配置文件【wén jiàn】修改🎺错误【cuò wù】👂,如比较典型的/boot/grub/grub.conf及/etc /passwd的文件【wén jiàn】修改🎺错误【cuò wù】👂,也可以【yě kě yǐ】直接修🈸正恢复。假设有备份【bèi fèn】🌍文件【wén jiàn】📨/etc/inittab.bak,则在救援模式【yuán mó shì】🌭下执行【xià zhí háng】🐷:sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab
2、 没有备【méi yǒu bèi】份文件🏆的恢复📯办法如【bàn fǎ rú】🚍果一些【guǒ yī xiē】配置文件丢失或软件【huò ruǎn jiàn】误删除,且无备【qiě wú bèi】😙份🎳,可以通过重新安装软件包来【jiàn bāo lái】⛴恢复
关键词:Linux系统
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0