0%

archlinx升级过程中死机-vmlinuz-linux not found

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. 启动老的系统进入命令行模式
  2. 查看系统的分区
    1
    sudo fdisk -l
    fdisk
  3. 挂载系统
    1
    2
    #我的根目录在硬盘的第二个分区里
    sudo mount /dev/sdb2 /mnt
  4. 挂载虚拟文件系统
    1
    2
    3
    4
    sudo mount -t proc /proc /mnt/proc
    sudo mount --rbind /sys /mnt/sys
    sudo mount --rbind /dev /mnt/dev
    sudo mount --rbind /run /mnt/run
  5. arch-chroot系统 重新升级
    1
    2
    3
    4
    5
    6
    7
    8
    sudo arch-chroot /mnt
    pacman -S linux

    #如果是grub引导失败
    grub-install /dev/sdb
    update-grub # or grub-mkconfig -o /boot/grub/grub.cfg


  6. 退出chroot 重启去除挂载 重启验证
    1
    2
    3
    exit 
    umount /mnt
    reboot