TranslateProject/published/202211/20221023.0 ⭐️ How to Recover Arch Linux Install via chroot.md
2022-12-01 08:55:32 +08:00

113 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "How to Recover Arch Linux Install via chroot"
[#]: via: "https://www.debugpoint.com/recover-arch-linux/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15202-1.html"
如何通过 chroot 恢复 Arch Linux 安装
======
![](https://img.linux.net.cn/data/attachment/album/202211/01/213036fel3lq00iz0377v3.jpg)
> 这篇速成指南诠释了一些步骤,它对于恢复一个 Arch Linux 安装很有帮助。
作为一个滚动发布版本Arch Linux 有时会崩溃。那不是你自身的问题而是因为数百个其它的原因例如一个新内核与你的硬件或软件的兼容性。但是即使如此Arch Linux 仍然是比较优秀的,并且提供最新的软件包和应用程序。
但是,有些时候,它会给你带来麻烦,最后你只会看到一个闪烁的光标。
因此,在这种情况下,在你放弃希望前,你可能希望尝试恢复系统的安装以及数据,而不是重新格式化或重新安装。这篇指南在这些方面概述了一些步骤。
### 恢复 Arch Linux 安装
第一步是创建一个可启动的 Arch Linux 的<ruby>现场<rt>Live</rt></ruby> USB 。从下面的链接中下载 ISO 镜像文件,并创建一个可启动的 ISO 的启动盘。你可以查看 [这篇](https://linux.cn/article-15020-1.html) 关于如何使用 Etcher 创建可启动的 ISO 的启动盘的指南。记住,这一步骤需要在另一个工作稳定的系统上完成,很明显,这是因为你当前系统是不可用的。
> **[下载 arch linux][1]**
你需要知道在 **你的 Arch Linux 安装在哪个分区上**。这是关键的一步。如果你不知道,你可以使用 GParted 来找出来。或者在你的 Grub 菜单中查看,或者也可以运行下面的命令来找出来。这将列出你所有的磁盘分区、大小和标签。
```
sudo lsblk -o name,mountpoint,label,size,uuid
```
在完成后,插入 USB 设备,并从中启动。你应该会在现场 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 <package name>
```
在降级后(如果有一些软件包进行降级的话),你可以运行下面的命令来启动你的 Arch 系统。
```
exec /sbin/init
```
检查你的显示管理器的状态,并检查其是否有一些错误。有时,显示管理器会产生不能与 <ruby>X 服务器<rt>X Server</rt></ruby> 通信的问题。例如,如果你正在使用 Lightdm ,那么你可以通过下面的命令来检查它的状态。
```
systemctl status lightdm
```
或者,你可能希望通过下面的命令来启动它并检查错误。
```
lightdm --test-mode --debug
```
这里是一个 Lightdm 故障的示例,它导致了 Arch 系统不稳定工作。
![lightdm - test mode][2]
或者,使用 `startx` 来启动 X 服务器进行检查。
根据我的经验,如果你在上面的命令中看到这些错误,尝试安装另外一个显示管理器(例如 sddm并启动它可以消除错误。
- 根据你的系统的实际状态来尝试上面的步骤并解决问题。针对特定的显示管理器 Lightdm 的错误,我们有一份 [指南][3],你可能会想查看它。
- 如果你正在使用 sddm ,那么,试试 [这些排错步骤][4] 看看是否工作。
### 结语
每个系统环境都是不同的。上面的步骤不一定适合你。但是,它值得一试,根据我的经验,它是可行的。如果它可行,那么恭喜你。否则,在下面的评论区让我知晓你是如何进行的。
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/recover-arch-linux/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://archlinux.org/download/
[2]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg
[3]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/
[4]: https://wiki.archlinux.org/title/SDDM#Troubleshooting