因双系统Windows更新丢失引导

啊,这个重新建一个就好了,但经常发生,因为和windows共用一个EFI,容易坏正常

开整!

连接网络,同步时间

timedatectl set-ntp true

同步时间挺重要的,毕竟修复的时候可能会用到下载之类的操作

fdisk -l

查看一下分区

识别出你的/分区和boot分区

重新挂载一下分区号(sdx)换成你自己的,别照着我抄哦!

mount /dev/sdx /mnt              这是根分区
mount /dev/sdx /mnt/boot            这是boot

然后Arch-chroot /bin/bash进去free -m检查下

如果还不行,建议重装这些包(EFI/GPT引导方式的)

pacman -S intel-ucode os-prober grub efibootmgr     等

重新部署grub

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

生成配置文件

grub-mkconfig -o /boot/grub/grub.cfg

感觉可以了就重启

reboot

亲身经历,windows更新经常吃掉我的引导!

但解决起来并不麻烦!

一劳永逸的解决办法:

创建独立的ESP分区,不和windows同流合污!

操作如下:

1.创建一个300-500M的分区

cfdisk /dev/盘号

分完之后挂载,首先创建文件夹

mkdir /mnt/boot/efi

mount /dev/分区名 /mnt/boot/efi

如果之前挂载的boot,要重新下载内核和grub什么的(保险起见)

这边用prcstrap脚本,你也可以用手动的pacman,但是要先arch-chroot进入硬盘系统

prcstrap /mnt grub efibootmgr linux-firmware

进入硬盘系统,配置grub

arch-chroot

 

grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=引导名

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

退出然后重启就好了

exit

reboot

扩展知识:efibootmgr清理引导

输入efibootmgr,提示类似如下

Boot0001* ArchLinux

Boot0002* UOS

Boot0003* windows

 

Boot后面编号代表了最后系统引导的编号

删除UOS引导,就是如下指令,中间编号

efibootmgr -b 0002 -B

排序指令如下,将引导顺序改为windows Arch UOS

efibootmgr -o 0003 0001 0002

好了,本期内容到此结束!