摘要
给U盘装了archlinux后,没注意把固态上archlinux的/etc/fstab分区挂载配置文件修改了,以为是grub又坏了,干脆把挂载在/boot下的EFI 系统格式化了,孙子云:“置之死地而后生。” 从头开始
准备
插网线,喝热水
过程
- U盘启动进去后挂载根分区和启动分区,arch-chroot到根分区
lsblk
mkfs.vfat -F32 /dev/${/boot} # ${/boot} 启动分区
mount /dev/${/} /mnt # ${/} 根分区
mount /dev/${/boot} /mnt/boot
arch-chroot /mnt
以上操作只能在启动盘进行,如果用完整的archlinux系统,则没有arch-chroot以及pacstrap命令
如果使用chroot代替arch-chroot命令后,执行pacman会报非本用户错误
- 重新生成引导区
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
查看有没有Linux的入口
cat /boot/grub/grub.cfg
如果没有入口
ls /boot
查看是否有下列文件
initramfs-linux.img
intel-ucode.img
vmlinuz-linux
如果没有,重装linux
pacman -S linux
如果报错
GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.cinnamon.SettingsDaemon was not provided by any .service files
因为pacman检测到非原来用户执行,则可以执行下面命令
mkinitcpio -p linux
重新加载内核模块,生成文件
再执行
grub-mkconfig -o /boot/grub/grub.cfg
ls /boot
可以看到有了三个文件
退出/mnt根分区,回到启动盘
initramfs-linux.img
intel-ucode.img
vmlinuz-linux
exit
-
重新生成分区挂载配置文件
先删除原来的分区挂载配置文件,不然无法挂载分区,系统无法启动,再生成fstab文件
rm -rf /mnt/etc/fstab
genfstab -U /mnt >> /mnt/etc/fstab
查看生成的硬盘UUID和分区命名,一致即可
ls -l /dev/disk/by-uuid
cat /mnt/etc/fstab
exit
poweroff
-
设置UEFI
本人电脑为DELL
- 进入BIOS
- 选择Boot Sequence
- Add Boot Option
- File Name 为 /boot/EFI/grub下的grubx64.efi
- Boot Option Name 非空
- Apply,Exit
结束
修grub的周期大概是3个月一次,各种坏掉的原因都有,记录下方便下次解决。
版权声明:本文为weixin_44334901原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。