1. 如何防止滚挂
警告
- 在Arch下安装软件包时,未更新系统前,不要更新软件包数据库
使用pacman -Syu package_name, 而不要使用(pacman -Sy package_name)
我通过-Syy进行了强制更新软件包数据库,然后才开滚,挂了。(不知道这是不是滚挂的原因)
- 最好养成经常查看官网的习惯,比如每次更新前先查阅官网或是订阅官网RSS看看这次有没有特殊更新,如果遇到重要更新要仔细按照官方指示来做,避免执行不当的命令。
- 订阅 Arch Linux 首页的行为 RSS. 除非是明确要求,否则不要用 pacman --force
- 养成每天开机必滚的习惯
- 经常备份
- 准备一个livecd
2. 已经挂了怎么办
如果是太久没滚,然后滚挂了,降内核
- 内核的安装包会缓存在/var/cache/pacman/pkg下面,以"linux-版本号"开头
- 使用命令pacman -Udd xxx来安装
- 如果提示有文件存在错误,删除掉提示的文件
- uname -a 可查看当前内核版本
3. 如果Arch长时间没有跟随官方滚动升级, 怎么办?
把这一段时间以来的官方新闻都看一下。然后开滚:
4. 其它注意
避免某些 Pacman 命令
避免 部分更新,不要运行 pacman -Sy 而是运行 pacman -Syu.
一般情况下,避免使用 pacman 的 --force 选项,尤其要避免 pacman -Syu --force 这种可能更新多个软件包的指令。--force 忽略文件冲突,可能导致文件丢失!如果系统按正常维护,Arch 开发者会给出明确的指导,在 Arch 主页会有通知。
避免使用 -d 选项,pacman -Rdd package 会在删除软件包时跳过依赖关系检查。如果删除了系统必要的依赖关系,可能导致系统损坏。
5. 我的经历
系统从2021年7月到2021年12月一直没更新
2021年12月11日,尝试更新,启动后报错:"Failed to start Load Kernel Modules"
通过命令"file boot/vmlinuz-linux", 可查看当前引导所引导的内核版本,发现是旧内核。
所以问题就出在,内核已升级,但引导系统依然在找旧内核。不知道为什么会出现这个问题。
通过命令重新设置引导就好了
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
网友评论