📔

笔记:Arch Linux滚动更新崩溃修复下载最新的Arch Linux iso镜像

Published
Last Updated
修改:2023-12-25
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-linuxinitramfs-linux.img 以及initramfs-linux-fallback.img文件。
退出chroot环境并重启系统:
$ exit $ reboot
正常启动到grub菜单界面,选择Advanced options for Arch Linux 选项进入,下一步选择Arch Linux, with Linux linux (fallback initramfs) 进入。
参考链接:
  1. https://bbs.archlinux.org/viewtopic.php?id=286193
  1. https://bbs.archlinux.org/viewtopic.php?id=143337