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) 进入。参考链接:
