记录 Arch Linux 第一次滚挂

用 arch 没有多久,但是遇到的问题可真不少,但是在解决这些问题的过程中也确确实实了解到了许多东西。最开始是直接在自己的笔记本上装 arch,后来发现目前对于腾讯系软件依赖还是太大,wine 虽然可以用,但效果确实不太好,尤其是腾讯会议,基本没法用。后来装了双系统,win10+arch,又觉得总是重启挺麻烦的,干脆又回到了最初的起点… 还是在 vmware 上装 arch 实在一些。

今天,2021 年 3 月 9 日,我第一次遇到了滚动更新挂掉了的情况,稍微记录一下吧。

这次滚动更新,升级 linux 内核到了 5.11.4.arch1-1,结果我重启后提示上面的东西。

Loading Linux linux ...
error: file '/boot/vmlinuz-linux' not found.
loading initial ramdisk ...
error: you need to load the kernel first.

首先,我看到 vmlinuz,还以为是和 vmware 出现了不兼容问题,顿时觉得人生无望… 短暂失神后,我先去了 Archlinux Wiki 中在 vmware 上安装客户机词条下面,没有找到相关的错误。然后去了 Archlinux 中文论坛,想着应该还会有人遇到这样的错误,结果还是一无所获。不得已,开始百度。一百度还真找到了!

在 grub 界面下按 c 进入 grub 命令行模式,然后输入 ls 查看所有硬盘分区,选择比较长的那个,ls (hd0,xxxx) 查看,如果输出是根分区 / 了,那就找对了。然后输入 cat (hd0,xxxx)/etc/fstab,还记得 fstab 这个文件吗?它保存了磁盘的挂载信息,可以让你每次开机都会自动挂载分区到对应的磁盘。找到根分区对应的磁盘,记住它。

set root=(hd0,xxxx)
set prefix=(hd0,xxxx)/boot/grub
linux /boot/vmlinuz-linux root=/dev/sda1

在输入上面第三条命令时,我这里报错了,说是未找到 vmlinuz-linux。按理说,如果分区找对了的话,是不会出现这样的提示的。我又检查了一下,确定前面的都没有错(也不可能找错分区,我这里就两个,另外一个特别特别小,忘记是干什么的了…)。

到这里,导致报错的原因十分明显了: vmlinuz-linux 这个文件在更新后因为某些缘故被删除了 。并不是挂载出现了问题,而是更新删除了一个文件。

于是,我抱着试试的态度,恢复了最近的一次快照,再次进行了滚动更新,更新后重启,依旧是这样。看来可以排除是下载过程出现错误了。

既然滚动更新总是出错,那我干脆就自己再下载一遍 linux 内核好了。于是,我再次恢复快照、滚动更新,更新完成后,输入 sudo pacman -S linux,等待下载完成后重启,哈哈,大功告成!

这个错误之后可能还会遇见,虽然现在看起来特别低级,但毕竟是第一次遇到滚挂的情况,也是第一次在尝试教程无果后,靠自己去解决 linux 上的问题,还是挺有纪念意义的!