内核加载失败这种破事儿,八成是grub或者systemd-boot这俩傻逼搞的飞机。
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进去!
1 条评论
作者的布局谋篇匠心独运,让读者在阅读中享受到了思维的乐趣。