修复 Linux 引导问题的 5 个技巧

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

在本教程中,我将向您展示如何解决您在 Linux 中可能遇到的一些常见引导问题。

1)修复Grub2

Ubuntu 和许多其他 Linux 发行版使用 GRUB2 引导加载程序。如果 GRUB2 中断,例如,如果您在安装 Ubuntu 后安装了 Windows或覆盖了 MBR,您将无法启动到 Linux 系统。

GRUB 2 修复引导问题的能力比原来的GRUB bootloader有了很大的改进。当 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 2017-06-26 16:27:12 WAT, end at Mon 2017-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

要查看上次启动的日志,请使用 带有 标志的-1 相对指针 -b

# journalctl -b -1

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

Dmesg - 缓冲区日志

大多数启动消息都存储在环形缓冲区中,您可以使用Dmesg 命令打印这些数据。此数据也会发送到 syslogd 或 klogd(如果它正在运行)。由于环形缓冲区大小是固定的,它不能容纳太多数据,dmesg 只显示最近的内核消息。

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

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

$ sudo dmesg
或者$ sudo cat /var/log/dmesg.log

5) 控制台启动错误

有时它会在重新启动时发生,系统会出现恐慌或显示诸如“ init not found ”之类的错误消息,从而阻止正确启动,然后作为第一步,您可以尝试通过 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”。

结论

像 Ubuntu 或 Knoppix 这样的 LiveCD 可以很好地完成救援启动的工作,但也有更小、更快的救援启动盘。在这种情况下,知道如何编辑单个 GRUB 节,使用 GRUB 命令行,但您需要能够识别问题。通过使用这些技术,您可以从各种引导问题中恢复并引导至您的正常安装。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值