记录archlinux第一次滚挂并解决


用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上的问题,还是挺有纪念意义的!


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
  目录