Arch滚起来一时爽,滚坏了泪两行
Arch滚起来一时爽,一直滚啊一直爽,上一次滚出问题还是在笔记本上,《记一次搞死linux又医活的经历》。
在台式机上还是第一次,要说只能怪昨天的运气太差。不好好在家待着隔离,跑来办公室,想着爬个楼梯吧,零接触还健康,衣服就被门勾到,拉扯了一下,破了。然后发现自己出门的时候,钥匙没带,只能在实验室过夜了。想想那就当通宵加班吧,干点活,结果把电脑给搞坏了,于是通宵在修电脑,天亮还没好。人在囧途之办公室版本,电视都不敢这么演。
首先是某灯老连不上,于是yay搜一下,发现有新版本,赶紧装。装完却用不了,报错:
error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory
最终当然要解决 -,-
搞来搞起,始终运行不了。于是滚动升级整个系统。升完还一样用不了。那么就时光机,回退到老版本吧。因为我基本上隔一段时间,在滚系统之前,都会把整个系统打包。把之前的解压覆盖一下就完整了。十几年前,还在读硕士的时候,就干完笔记本换硬盘,NetBSD系统整个完整搬过去。
一切本以为如丝顺滑,时光机之后,重启一下。结果本来要出来登录界面的时候,屏幕在黑的。硬盘在闪,没显示东西。按键盘退到控制台无效。此时求我的内心阴影面积,家回不去,唯一的电脑坏了。这是要在办公室看天花板到天亮吗?
翻出来一张装linux的U盘,可以启动,于是就靠U盘chroot进去修电脑了。时光机试了几次,包括不同时间点,都是一个鬼样。我就在想是不是我解压之后,硬盘里的文件并不是完全覆盖,比如说某软件已经xx.2
,解压包里的是xx.1
,这样硬盘里就有两个版本,而各种软件可能一混乱起来,就导致有些不能用。
于是那个传说中的rm -rf /
,我差不多就是这么干了。全删了之后,我再解压一次,这次的时光机就是干净的了,然后重启。启动不了,因为我把/boot
也给干掉了,而这是独立分区,我在打包时光机的时候,没打包/boot
,这下子连启动都没有了,尴尬一笑。
那么就得重新装内核,搞启动了。
安装内核:
pacman -S linux
pacman -S linux-headers
然后是安装grub,然而下面这个代码始终报错,这也是我要写本文的原因,给自己一个记录,不然下次遇到要浪费时间在上面。
grub-install --efi-directory=/boot --target=x86_64-efi --bootloader-id=boot
报的错误是,这不是有效的efi系统,无法识别。这里一个神奇的地方在于,要把这个分区挂在/boot
下面。
我把分区挂在/boot/efi
。然后再跑:
grub-install --efi-directory=/boot/efi --target=x86_64-efi --bootloader-id=boot
就安装成功了。
当然还需要再拷贝一份:
cp /boot/efi/EFI/boot/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
然后这个EFI分区,在我的/etc/fstab
中,其实就是挂在/boot
下面。
在这样的前提下,配置grub才能成功:
grub-mkconfig -o /boot/grub/grub.cfg
然后再启动,还是一样,在进入系统之前,黑了,当然比之前的好一点,按Ctrl-Atl-Del还能重启。
这还能怎么样呢?因为/boot
被不小心干掉,所以不完全时光机了,因为重新装了新版本的内核,鬼知道会不会又有什么版本不兼容的事情发生。那只能一路滚到黑了。
于是又进入U盘,chroot
到硬盘的系统,滚动升级系统。升完重启,系统进去了,死马终于医活了。时隔搞坏系统,已经是十个小时过去了。
被困实验室,结果搞机通宵的尴尬一晚,就这样过去了。
往期精彩