内核加载失败这种破事儿,八成是grub或者systemd-boot这俩傻逼搞的飞机。
2025-02-21T17:45:42.png
1.插安装U盘开机狂按F12/F2进Live环境(快捷键视具体情况),选"Arch Linux install medium"
2.连上网:

BASH
iwctl # 无线用这个
station list
station wlan0 connect WIFI名
dhcpcd # 有线直接敲这个
ping baidu.com # 看见通了的提示再继续

3.查硬盘分区:

BASH
lsblk -f
fdisk -l

找到你系统盘,比如nvme0n1p2是根分区,nvme0n1p1是EFI分区

4.挂载祖宗十八代:

BASH
mount -o rw,relatime /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot/efi
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

5.由于我这边用不了pacman,提示pacman:error while loading shared libraries:libicuuc.so.76,所以这里要用静态版pacman强攻:

BASH
arch-chroot /mnt
curl -O https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static  #根据远程文件名,将保存输出到本地
wget -r https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static  #或者这个命令,由于我这边提示是文件夹,所以-r    #把整个目录下载下来,文件名是pacman-static
chmod +x ./pacman-static  # 进文件目录,加执行权限,这个文件现在就是你的上帝

6.然后直接核打击

BASH
# 先他妈修复钥匙环
./usr/bin/pacman-static -Sy --overwrite='*' --noconfirm archlinux-keyring

# 再操翻整个系统
./usr/bin/pacman-static -Syu --overwrite='*' --noconfirm

# 单独日icu库
./usr/bin/pacman-static -S icu --noconfirm --overwrite='*'

7.检查死透没:

BASH
ldd /usr/bin/pacman  # 看到libicuuc.so.76显示路径才算活过来
ls -l /usr/lib/libicuuc.so.76  # 确认文件存在

8.开始操刀:

BASH
pacman -Syu linux linux-headers --noconfirm # 强制更新内核
mkinitcpio -P # 这步看到生成成功才行
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
exit

9.卸载滚蛋:

BASH
umount -R /mnt
reboot

重点:全程在Live环境的chroot里操作,别他妈在Live系统本身执行!要是看到/mnt提示,说明你他妈没chroot进去!

最后修改:2025 年 02 月 22 日
如果觉得我的文章对你有用,请随意赞赏