记录archlinux第n次修复引导区

  • Post author:
  • Post category:linux




摘要

给U盘装了archlinux后,没注意把固态上archlinux的/etc/fstab分区挂载配置文件修改了,以为是grub又坏了,干脆把挂载在/boot下的EFI 系统格式化了,孙子云:“置之死地而后生。” 从头开始



准备

插网线,喝热水



过程

  1. 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会报非本用户错误

  1. 重新生成引导区
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
  1. 重新生成分区挂载配置文件

    先删除原来的分区挂载配置文件,不然无法挂载分区,系统无法启动,再生成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
  1. 设置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 版权协议,转载请附上原文出处链接和本声明。