操作系统:Arch Linux x86_64
主机:81Y3 IdeaPad L3 15IML05
内核:6.8.1-arch1-1
~ λ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 2G 0 part /boot
├─nvme0n1p2 259:2 0 12G 0 part [SWAP]
├─nvme0n1p3 259:3 0 100G 0 part /
└─nvme0n1p4 259:4 0 362.9G 0 part /home
我已经将UEFI更新到最新版本"EJCN31WW"
EFI分区信息:
File System: fat32
Flags: boot, esp
GRUB配置文件:
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3"
GRUB_CMDLINE_LINUX=""
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL_INPUT=console
GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_DISABLE_RECOVERY=true
我尝试过丢失 UEFI 设置,但没有成功。
我注意到,如果我进入引导菜单并在第一次打开时选择 grub,它将立即引导 grub。
所以,我认为这可能是由以下原因引起的(我可能错了 XD):
- EFI 分区太大 (2Gb)。
- EFI 分区的格式不正确。
- 它尝试启动 grub,但失败了。
解决办法是什么?
这是启动分区树:
/boot
├── EFI
│ └── GRUB
│ └── grubx64.efi
├── grub
编辑2:
~ λ efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,2001,2002,2003
Boot0000* GRUB HD(1,GPT,dbf925d5-a5c8-4bc3-8327-abdccf9b4036,0x800,0x400000)/\EFI\GRUB\grubx64.efi
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
区块ID:
~ λ doas blkid
/dev/nvme0n1p3: UUID="ce1f67f3-1e62-45ad-b5c3-2b0bfedbe19b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e320fb70-dd33-4e4a-9cf2-48ea4d91630d"
/dev/nvme0n1p1: UUID="F7CC-1B87" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="dbf925d5-a5c8-4bc3-8327-abdccf9b4036"
/dev/nvme0n1p4: UUID="0c764fa9-8209-4e80-bdd5-a11c56bf2bde" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="86879a61-1e57-489f-9210-528ed4f8760b"
/dev/nvme0n1p2: UUID="badec528-15b0-4cd5-8e7f-eb6452fb4de3" TYPE="swap" PARTUUID="7e028323-a22e-45d2-96a2-2615c8879aa7"
文件系统表
~ λ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/nvme0n1p3
UUID=ce1f67f3-1e62-45ad-b5c3-2b0bfedbe19b / ext4 rw,relatime 0 1
# /dev/nvme0n1p1
UUID=F7CC-1B87 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/nvme0n1p5
UUID=0c764fa9-8209-4e80-bdd5-a11c56bf2bde /home ext4 rw,relatime 0 2
# /dev/nvme0n1p2
UUID=badec528-15b0-4cd5-8e7f-eb6452fb4de3 none swap defaults 0 0
dmesg 的固件错误
~ λ doas dmesg
...
[ 0.000000] [Firmware Bug]: TSC ADJUST: CPU0: -1306247588 force to 0
...
从技术角度来看,引导对我来说看起来不错。
我认为这正在发生:
显示器的分辨率瞬间改变为另一个分辨率。由于这是启动过程的早期阶段,因此没有其他方法可以打开和关闭显示器。
我的猜测是,您看到的启动图像(例如 Lenovo 徽标等)的分辨率与 grub 菜单的分辨率不同。大多数图片的分辨率为 800x600。
因为当您停止“花哨”的图片引导并直接以正确的大小引导 grub 菜单时,您不会得到任何更改。
我认为它是这样的:
所以我的第一个建议是将 grub 分辨率降低到 800x600 并测试一些空白是否消失。您也可以尝试在调试模式下启动,这样就不会显示图片和徽标。
回答您的问题:
所以,我认为这可能是由以下原因引起的(我可能错了 XD):
没关系。如果你想节省一些空间,512GB就足够了
EFI 分区的格式不正确。
确实如此,否则引导将不会成功。如果是这种情况,您将看到 EFI shell。
它尝试启动 grub,但失败了。
然后你会看到一个 shell 并且无法启动。
我没有找到答案,所以最后我进入了BIOS设置。
选择传统启动,
并首先尝试 UEFI,
效果很好。
但当我选择 UEFI 而不是传统启动时,它仍然无法工作。我认为联想附带的固件有问题。
谢谢