请教关于使用 tar 还原系统的问题(主要是关于 grub 引导)

查看 20|回复 0
作者:jqtmviyu   
问题描述
使用 tar 命令还原系统搞不定 grub 引导,启动报错
尝试解决
正在看 arch wiki 和各种教程, 看得头大, 搞了一个晚上都没搞定
有概念但不清楚:
1.分区 uid 发生变化,需要修改 grub 相关信息
2.需要重建 grub 引导
3.需要重新挂载分区, 分区 uid 也发生变化
过程
[ol]
  • 用 tar 备份/
  • 格盘重装其他系统
  • 不满意删掉想还原
  • liveCD 下重新分区, 分区格式和原来一样,但调整了大小
  • 挂载分区, 用 tar 还原,创建排除备份的文件夹
  • 搞不定启动
    [/ol]
    系统为 arch(endeavouros)
    分区情况为:
    /dev/sda1 ==> /boot/efi     fat32/esp
    /dev/sda2 ==> /                          xfs
    /dev/sda3 ==> /home                  xfs
  • 备份命令

    tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/run /
  • 还原过程

    # 挂分区并还原
    mount /dev/sda2 /mnt
    mkdir /mnt/home
    mount /dev/sda3 /mnt/home
    mkdir /mnt/boot/efi
    mount /dev/sta1 /mnt/boot/efi
    tar xvpzf /path/to/backup.tar.gz -C /mnt --numeric-owner
    # 修复引导
    sudo arch-chroot /mnt
    grub-install —target=x86_64-efi —efi-directory=/boot/efi
    grub-mkconfig -o /boot/grub/grub.cfg
    # 修复挂载分区 uuid
    blkid
    # 更新三个分区的 uuid
    vim /etc/fstab
    # 新建排除备份的文件夹
    mkdir proc
    mkdir mnt
    mkdir sys
    mkdir run
    exit
    sudo umount /mnt/home
    sudo unmout /mnt/boot/efi
    sudo unmout /mnt
    reboot
    启动报错
    /boot/grub/x86_64-efi/normal.mod not found
    grub rescue
    临时进入系统
    set
    cmdpath=(hd3,gpt3)/EFI/BOOT
    prefix=(hd0,gpt3)/boot/grub
    root=hd0,gpt3
    ls
    ls (hd0,gpt2)/boot/grub
    set root=hd0,gpt2
    set prefix=(hd0,gpt2)/boot/grub
    insmod normal
    normal
    进入系统后
    sudo pacman -S grub
    sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
    sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EndeavourOS
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    # 检查 cfg,发现是 gpt2 了
    但为什么重启还是同样错误, root 还是 gpt3????
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部