-
Notifications
You must be signed in to change notification settings - Fork 0
arch guide troubleshooting
先识别真实布局:
lsblk -f
blkidext4 根分区示例:
mount /dev/<Arch根分区> /mnt
mount /dev/<ESP> /mnt/boot
arch-chroot /mntBtrfs 默认子卷示例:
mount -o subvol=@ /dev/<Arch根分区> /mnt
mkdir -p /mnt/home /mnt/boot
mount -o subvol=@home /dev/<Arch根分区> /mnt/home
mount /dev/<ESP> /mnt/boot
arch-chroot /mnt子卷名不是固定标准。挂载失败时先运行:
mount /dev/<Arch根分区> /mnt
btrfs subvolume list /mnt
umount /mnt在 chroot 中检查:
test -d /sys/firmware/efi && echo UEFI
findmnt /boot
ls -R /boot/EFI | head -80
efibootmgr -v如果 Live ISO 以 Legacy 模式启动,efibootmgr 无法正确创建 UEFI 启动项。应重新以 UEFI 模式启动 U 盘再修复
GRUB 修复:
pacman -S --needed grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfg固件丢弃 NVRAM 启动项时才增加:
grub-install --target=x86_64-efi --efi-directory=/boot --removable先确认内核和 initramfs 存在:
ls -lh /boot/vmlinuz-* /boot/initramfs-*.img
ls -l /etc/grub.d/10_linux如果 /etc/grub.d/10_linux 没有执行权限,恢复后重新生成菜单:
chmod +x /etc/grub.d/10_linux
grub-mkconfig -o /boot/grub/grub.cfg该现象曾与 archinstall 的 UKI/GRUB 组合有关,参见 archinstall#4097。新版本可能已改变行为,所以必须先检查现状,不能无条件执行 chmod
如果 initramfs 不存在或生成失败:
mkinitcpio -P依次检查:
test -f /boot/EFI/Microsoft/Boot/bootmgfw.efi && echo 'Windows EFI found'
grep '^GRUB_DISABLE_OS_PROBER' /etc/default/grub
os-prober确保 /etc/default/grub 包含:
GRUB_DISABLE_OS_PROBER=false再生成配置:
grub-mkconfig -o /boot/grub/grub.cfg如果 ESP 根本没有 Microsoft 目录,先确认挂载的是正确 ESP,不要凭空创建 Windows 启动文件
典型症状:
-
mkinitcpio -P报No space left on device - 内核升级失败
- initramfs 缺失或大小异常
先取证:
df -h /boot
du -h -d 3 /boot | sort -h | tail -30
ls -lh /boot不要删除 /boot/EFI/Microsoft。可以按实际情况处理旧内核、孤立 initramfs 或不需要的 fallback preset;删除前先确认对应软件包和当前启动方式
重新生成前确认至少有足够空间:
mkinitcpio -P长期方案是扩大 ESP 或采用不会把全部内核产物塞进小型共享 ESP 的布局,而不是每次升级都手动清文件
从 Linux 缩小 NTFS 后出现 UNMOUNTABLE_BOOT_VOLUME,应优先使用 Windows 安装/恢复环境运行:
chkdsk C: /f
Arch Live 中的 ntfsfix 只能修复部分基础问题,并会安排 Windows 下次启动检查,不能替代 chkdsk:
ntfsfix /dev/<Windows分区>如果只是提示 hibernated/unsafe state:
- 回到 Windows
- 关闭快速启动
- 执行完整关机
- 再回 Arch 挂载
不要用 remove_hiberfile 强行修改仍需恢复的 Windows 会话
archinstall 日志位于:
/var/log/archinstall/install.log
保留失败现场并先复制日志:
archinstall share-log公开日志前检查主机名、用户名、磁盘标识和网络信息。凭据配置不应上传
常见分类:
| 阶段 | 优先检查 |
|---|---|
| 下载软件包失败 | 网络、时间、镜像状态 |
| 分区失败 | 设备是否被挂载、NTFS 是否休眠、分区表是否损坏 |
| 引导安装失败 | UEFI 启动模式、ESP 挂载点、ESP 空间 |
| 首次登录失败 | 普通用户是否创建、显示管理器、显卡驱动 |
Niri 是合成器而不是完整桌面环境。先切换 TTY,检查用户 session:
systemctl --user status niri.service
journalctl --user -b -u niri.service --no-pager
journalctl -b -p warning..alert --no-pager确认基础 profile 安装的终端和启动器存在:
command -v niri alacritty fuzzel安装 dotfiles 后,Niri 的组件分工和快捷键见 Niri 使用指南
- 先保存
lsblk、findmnt、efibootmgr和日志输出 - 明确当前是 Live ISO 还是 chroot
- 明确
/boot指向哪个分区 - 一次只改一个变量,改后立即验证
- 不执行来源不明的批量删除、格式化或重装命令