修复Linux中引导问题

时间:2020-03-05 15:27:07  来源:igfitidea点击:

对于许多系统,我们每天都可以使用它,但是由于某种原因,Linux可能无法启动,因此我们需要知道如何在这些情况下进行操作。
某些Linux发行版不提供安全模式和自动修复工具,但是我们可以看到恢复模式,其中提供了一些选项,可以保留文件并可以修复问题。
使用Linux live CD或者USB还有另一种可能性,这将有助于使用工具或者命令。

在本教程中,将介绍如何解决Linux中可能遇到的一些常见启动问题。

1)修复Grub2

Ubuntu和许多其他Linux发行版都使用GRUB2引导加载程序。
如果GRUB2发生故障(例如,如果我们在安装Ubuntu后安装了Windows或者覆盖了MBR),则我们将无法启动到Linux系统。

与原始GRUB引导加载程序相比,GRUB 2修复引导问题的能力已大大提高。

当grub2引导失败时,它会显示一个屏幕,显示“ grub>”或者“ grub rescue”提示,该提示允许从那里运行许多命令。

但是其中将介绍一种修复GRUB 2引导问题的简单方法。

我们应该使用LiveCD。
当我们将以实时模式启动时,请打开终端并输入以下命令:

# update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.10.0-19-generic
Found initrd image: /boot/initrd.img-4.10.0-19-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

现在,我们可以重新启动系统。
如果操作无法解决,请以liveCD模式启动并按如下所示安装“ boot-repair”软件包

# apt-add-repository ppa:yannubuntu/boot-repair && apt-get update
# apt-get install -y boot-repair && boot-repair

当启动引导修复程序时,我们将遵循以下步骤使用“建议的修复程序”。
该操作可能需要几分钟,因此请耐心等待。
之后,我们可以重新启动系统。

2)重设忘记的登录密码

可能发生在引导过程之后,由于忘记了密码或者我们更改了键盘语言并且输入的字符与我们所知道的字符不匹配而导致无法登录系统的情况。
唯一的办法是重设密码。

要重置密码,请以恢复模式启动并访问终端。
在下面输入命令:

# mount -o remount,rw /

上面的命令以读取/写入模式挂载根分区。
现在更改密码

# passwd username
Enter new UNIX password: 
Retype new UNIX password:

如果我们使用的是SELinux,请在下面输入以下命令以更新其参数

# touch /.autorelabel

现在,我们通常可以重新启动系统并输入新密码

3)无法登录:无法启动会话

重新启动时,系统屏幕可能会变黑,然后登录屏幕很快又回来。
出现此问题的原因是图形环境在软件包安装或者升级过程中遇到了一些问题。
或者可能是因为计算机上空间不足或者LightDM或者Xauthority出现问题。

要解决此问题,请键入“ Ctl-Alt-F1”,然后输入终端登录名。
现在输入以下命令:

# dpkg-reconfigure lightdm

4)查看日志系统启动消息

让我们讨论一些应该查找引导问题的地方。

日志日志

该日志由jourlnad守护程序实现,该守护程序处理内核,initrd,服务等生成的所有消息。
它可以查看与系统启动有关的所有错误消息,并可以尝试解决它。
要查看当前引导中与引导相关的消息,请使用“ -b”开关:

# journalctl -b
-- Logs begin at Mon 2015-06-26 16:27:12 WAT, end at Mon 2015-06-26 19:18:50 WAT
Jun 26 16:27:12 ubuntu-pc kernel: Linux version 4.10.0-19-generic (buildd@lcy01
Jun 26 16:27:12 ubuntu-pc kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0
Jun 26 16:27:12 ubuntu-pc kernel: KERNEL supported cpus:
Jun 26 16:27:12 ubuntu-pc kernel: Intel GenuineIntel
Jun 26 16:27:12 ubuntu-pc kernel: AMD AuthenticAMD
Jun 26 16:27:12 ubuntu-pc kernel: Centaur CentaurHauls
Jun 26 16:27:12 ubuntu-pc kernel: Disabled fast string operations

要查看上一次引导的日志,请使用带有“ -b”标志的“ -1”相对指针

# journalctl -b -1

由于应用程序,我们可能会遇到一些问题。
日记功能使我们可以轻松利用日记的高级功能,并对不同的应用程序组件进行广泛的分析和关系调试。

Dmesg-缓冲区日志

大多数引导消息都存储在环形缓冲区中,我们可以使用Dmesg命令来打印此数据。

此数据还将发送到syslogd或者klogd(如果正在运行)。
由于环形缓冲区的大小是固定的,因此无法容纳太多数据,dmesg仅显示最新的内核消息。

来自dmesg的数据将转储到/var/log/message,因此它也是检查任何引导错误的地方。

使用以下命令读取dmesg的内容:

$sudo dmesg
or
$sudo cat /var/log/dmesg.log

5)控制台启动错误

有时,它会在重新启动时发生,系统会出现恐慌,或者显示一些错误消息,例如“未找到初始化”,阻止正常启动,然后作为第一步,我们可以尝试传递init =/bin/bash(Grub引导加载程序)或者Linux init =/bin/bash(如果是Lilo引导程序)。

这将直接启动我们进入Bash shell提示符。
然后,我们可以重新挂载“ /”文件系统,并检查/var/log/messages中是否有任何错误。
我们可以使用以下命令将“ /”重新安装为读/写。
内核恐慌可能是由于不良的CPU或者主板或者不良的内存引起的。

# mount -o remount,rw /

如果上述步骤不起作用,则下一个选择是

1)从Linux First CD(引导CD)引导。

2)在Linux启动提示下输入“ boot rescue”。

3)在显示bash shell提示后,键入“ chroot/mnt/sysimage”。

a)检查任何磁盘错误

# fsck -y /dev/sda2

或者

# fsck.ext3 /dev/sda2

检查“ fdisk -l/dev/hda”以检查我们有多少个分区

b)如果使用Grub引导加载程序,请键入“/sbin/grub-install --root-directory =/boot”。
如果使用Lilo引导程序,请键入“ cd/etc; lilo”。