TMD, 记录白费,失败了,无法恢复系统!
在虚拟机中运行的Arch Linux操作系统滚动更新后崩溃无法正常启动,报错:
error: file '/boot/vmlinuz-linux' not found.
下载与已有操作系统架构一致的最新Arch Linux镜像文件,如
archlinux-2023.10.14-x86_64.iso
,由于我是在VirtualBox中运行Arch Linux,所以不需要制作Live USB,而是直接将该镜像文件添加到虚拟机Optical Drive
设备,启动虚拟机后按F12
进入启动设备选择菜单,按c
键选择从CD-ROM
启动,进入镜像提供的启动选择界面后,按默认选项如Arch Linux install medium (x86_64, BIOS)
进入。正常进入命令行界面后运行命令
lsblk
查看已有操作系统所在的磁盘设备及其分区,如我的是/dev/sda1,再运行命令mount /dev/sda1 /mnt
挂载该分区,并且运行$ cp -r /usr /tmp/ $ mount -o bind /tmp/usr /mnt/usr
若只运行mount /dev/sda1 /mnt而没有运行上述命令,在运行arch-chroot /mnt时可能会报错:
chroot: cannot run command '/bin/bash': Exec format error
运行:
arch-chroot /mnt
无报错后成功进入chroot环境,已有操作系统所在分区将会作为新的
/
路径。查看
/boot
目录下的文件,运行命令ls -l /boot
发现其中只有grub
子目录,的确缺少vmlinuz-linux
文件。运行命令:
pacman -S linux
发现报错:
invalid or corrupted package (PGP signature)
运行命令:
rm -R /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
重新运行:
pacman -S linux
安装成功后,运行
ls /boot
再次查看/boot目录下的文件,发现多了vmlinuz-linux
、initramfs-linux.img
以及initramfs-linux-fallback.img
文件。退出chroot环境并重启系统:
$ exit $ reboot
正常启动到grub菜单界面,选择
Advanced options for Arch Linux
选项进入,下一步选择Arch Linux, with Linux linux (fallback initramfs)
进入。参考链接: