chroot修复ArchLinux升级过程中死机 vmlinuz-linux not found
问题来源
笔者自己有个archlinux系统的笔记本,用于日常学习 今天更新系统工程中电脑死机重启之后grub报错
1 | vmlinuz-linux not found |
在grub模式下输入命令查找vmlinuz-linz发现没有了文件
1 | ls (hd0,msdos2)/boot |
经研究发现升级过程中,升级失败vm-linuz文件和initramfs-linux.img 没有生成
修复办法
研究了下需要自己重新生成这两个文件,笔者之前有一块机械硬盘是之前的老系统,插上硬盘后发现老的硬盘还可以使用所以决定用chroot来修复系统
- 启动老的系统进入命令行模式
- 查看系统的分区
1
sudo fdisk -l
- 挂载系统
1
2#我的根目录在硬盘的第二个分区里
sudo mount /dev/sdb2 /mnt - 挂载虚拟文件系统
1
2
3
4sudo mount -t proc /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /run /mnt/run - arch-chroot系统 重新升级
1
2
3
4
5
6
7
8sudo arch-chroot /mnt
pacman -S linux
#如果是grub引导失败
grub-install /dev/sdb
update-grub # or grub-mkconfig -o /boot/grub/grub.cfg - 退出chroot 重启去除挂载 重启验证
1
2
3exit
umount /mnt
reboot