如何通过 chroot 恢复 Arch Linux 系统
创始人
2024-03-02 11:26:26
0

这个快速指南解释了恢复 Arch Linux 安装的一些方便步骤。

作为一个滚动发布的版本,Arch Linux 中有时会出现一些问题。不是因为你自己的行为,而是数以百计的其他原因,如新内核与你的硬件或软件的兼容性。但是,Arch Linux 仍然很棒,它提供了最新的软件包和应用。

但有时,它也会给你带来麻烦,你最终只能看到一个闪烁的光标,其他什么都没有。

所以,在这种情况下,与其重新格式化或重新安装,不如在放弃希望之前尝试恢复安装和数据。本指南概述了这个方向的一些步骤。

恢复 Arch Linux 安装

第一步是用 Arch Linux 创建一个可启动的 现场 Live USB。从 这个链接 下载 .ISO 并创建一个可启动的 USB。你可以查看这个 如何使用 Etcher 创建可启动的 USB 的指南。记住这一步需要另一个稳定的工作系统,因为你目前的系统不能使用。

你需要知道你的 Arch Linux 安装在哪个分区上。这是一个非常重要的步骤。如果你不知道,你可以用 GParted 来查找。或者在你的 GRUB 菜单中查看,或者你可以运行下面的命令来了解。这将列出你所有的磁盘分区及其大小、标签:

sudo lsblk -o name,mountpoint,label,size,uuid

完成后,插入 USB 盘并从它启动。你应该在现场介质中看到 Arch Linux 的提示符。

现在,用下面的方法挂载 Arch Linux 分区。记得把 /dev/sda3 改成你对应的分区。

mount /dev/sda3 /mnt
arch-chroot /mnt

arch-chroot 命令将在终端挂载你的 Arch Linux 分区,所以用你的 Arch 凭证登录。现在,在这个阶段,根据你的需要,你有以下选择。

  • 你可以通过 /home 文件夹来备份你的数据。如果,故障排除方式无效的话。你可以把文件复制到外部 USB 或其他分区。
  • 核查日志文件,特别是 pacman 日志。因为,不稳定的系统可能是由升级某些软件包引起的,如图形驱动或任何其他驱动。根据日志,如果你需要的话,可以降级任何特定的软件包。

你可以使用下面的命令来查看 pacman 日志文件的最后 200 行,以找出任何失败的项目或依赖性删除。

tail -n 200 /var/log/pacman.log | less

上面的命令给出了你的 pacman.log 文件末尾的 200 行来验证。现在,仔细检查哪些软件包在你成功启动后被更新了。

并记下软件包的名称和版本。你可以尝试逐一降级软件包,或者如果你认为某个特定的软件包产生了问题。使用 pacman -U 开关来降级。

pacman -U 

如果有的话,你可以在降级后运行以下命令来启动你的 Arch 系统。

exec /sbin/init

检查你的显示管理器的状态,是否有任何错误。有时,显示管理器会产生一个问题,无法与 X 服务器通信。例如,如果你正在使用 Lightdm,那么你可以通过以下方式检查它的状态。

systemctl status lightdm

或者,可以通过下面的命令启动它,并检查出现了错误。

lightdm --test-mode --debug

下面是一个 Lightdm 失败的例子,它导致了一个不稳定的 Arch 系统。

lightdm - test mode

或者通过使用 startx 启动 X 服务器来检查。

startx

根据我的经验,如果你在上述命令中看到错误,尝试安装另一个显示管理器并启用它,如 sddm。它可能会消除这个错误。

根据你的系统状态,尝试上述步骤,并进行故障排除。对于特定于显示管理器 lightdm 的错误,我们有一个 指南,你可以看看。

如果你使用的是 sddm,那么请查看 这些故障排除步骤

总结

每个安装环境都是不同的。上述步骤可能对你不起作用。但它值得一试,根据经验,它是有效的。如果它起作用,那么,对你来说是好事。无论哪种方式,请在下面的评论区中告诉我结果如何。


via: https://www.debugpoint.com/2021/07/recover-arch-linux/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

AI 能取代哪些人类工作?...
IT之家 2 月 9 日消息,本周 OpenAI 推出了其 Dee...
2025-02-09 13:15:21
不到24小时,开源版Dee...
机器之心报道 机器之心编辑部 OpenAI 被开源包围了。 ...
2025-02-06 08:43:00
捕捉到的错误类型:Unca...
这个错误通常是由于导入的模块没有正确导出的原因引起的。解决方法有以...
2025-01-12 15:31:39
不转换为varchar2数...
在Oracle数据库中,可以使用DBMS_LOB包来处理CLOB数...
2025-01-12 15:00:35
不知道为什么他在maria...
检查表格结构和数据类型是否正确,确保使用正确的日期格式。以下是示例...
2025-01-12 09:31:46
不知道如何在查询的选择子句...
在查询的选择子句中使用varchar变量的方法是通过动态SQL。动...
2025-01-12 07:01:33

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...