linux启动不了,开不了机解决方法
如果在你不小心对你的linux做了删除或者更改某个文件导致linux启动不了的时候,以下将介绍重新启动linux方法。
方法一:linux进入单用户模式
-
操作系统启动加载内核之前按e,若出现选项就选第一个直到出现下图所示:
image.png
-
按上下方向键选择第二个名为kernel .....的东西,然后按e出现下图(可能你会不一样但是不用在意):
image.png -
直接在末尾加入
single
或者Linux single
或者1
或者S
-
按Enter保存,再按b运行
方法二:救援模式1。如果你已经进入单用户模式那么接下来的方法你可以当作是娱乐娱。如果连单用户模式都进不去的话接下来就是进入救援模式1(当然还会有2):
- 接着方法一的步骤2,此时末尾加入的是:
init=/bin/bash
- 然后就是按Enter保存,按b运行
- 此时发现系统进入了(没有的话此方法二不适合你请略过),要是进入了的话你会发现此时系统会是个只读模式
- 如果你系统在上次重启是正常的那么直接跳到步骤5,该步骤为fsck检查系统 :
fsck -a /dev/hdaX
处理根分区 X是根分区号 比如hda2
fsck -R -A -a
处理其他分区 - 系统只读的话那可不行,那么把系统挂载成read-write的吧:
mount /proc
mount / -o remount,rw
swapon -a
打开任何的交换分区
source /etc/profile
加载用户环境
在修复好系统后将系统重新挂载成ro的,就能够安全重启了。
mount / -o remount,ro
方法三:救援模式2。终极解决方法。
-
将Linux安装光盘(如果使用CD光盘,则放入第一张引导光盘)放入光驱,设置固件CMOS/BIOS为光盘引导,当Linux安装画面出现后,在“boot:”提示符后输入
linux rescue
回车进入救援模式。(想了解救援模式详细信息,还可以按F5键查看) -
系统会检测硬件,引导光盘上的Linux环境,依次提示你选择救援模式下使用的语言(建议选择默认的英文即可,根据笔者测试,部分Linux系统选择中文会出现乱码);键盘设置用默认的“us”就好;网络设置可以根据需要,大部分故障修复不需要网络连接,可不进行此项设置,选择“No”。
-
接下来系统将试图查找根分区。
默认在救援模式,硬盘的根分区将挂载到光盘 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
sh-3.1# exit
系统重启后,将恢复GRUB引导的双系统启动。 -
案例二:系统配置文件丢失修复
系统在引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。此时,只有通过救援模式才可以解决此类问题。
(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中已是迈向了成功修复的第一步,接下来就交给你们自己来还原或解决被删除或则被更改的某些文件吧