所以我只是尝试安装archlinux很多次,但无法启动它,我搜索了我的问题,发现很多人都有同样的问题,我尝试了很多东西,但不幸的是我没有成功。在这里询问我的问题是我最后的手段,所以我希望有人可以帮助我,我希望在解决我的问题后我能学到一两件事。
(对不起,我的英语不好)。
因此,我将首先分享我安装 archLinux 的步骤:
使用 USB 驱动器启动实时系统
使用此命令验证我是否以 EFI 模式启动
ls /sys/firmware/efi/efivars
(这给了我一堆乱码,这意味着我处于 efi 模式,如 arch 的官方安装指南中所述)使用以下命令对磁盘进行分区
fdisk /dev/nvme0n1
:- 使用选项创建 GPT 分区表
g
- 512M:EFI分区----->(/dev/nvme0n1p1)
- 4G:交换分区------>(/dev/nvme0n1p2)
- 其余:根分区-------->(/dev/nvme0n1p3)
- 将更改写入磁盘
- 使用选项创建 GPT 分区表
使用以下命令格式化创建的分区:
mkfs.fat -F32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
挂载分区:
mount /dev/nvme0n1p3 /mnt
swapon /dev/nvme0n1p2
在以下位置安装必要的软件包
/mnt
:pacstrap /mnt base linux linux-firmware
生成
fstab
文件:genfstab -U /mnt >> /mnt/etc/fstab
chroot 到 /mnt:
arch-chroot /mnt
产生
initramfs
:mkinitcpio -P
安装 grub 和其他一些软件包:
pacman -S grub efibootmgr os-prober base-devel mtools dosfstools...
创建
EFI
启动目录并挂载:mkdir /boot/EFI && mount /dev/nvme0n1p1 /boot/EFI
安装
Grub bootloader
:grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
产生
Grub Config
:grub-mkconfig -o /boot/grub/grub.cfg
Exit
chroot,卸载分区umount -a
,reboot
!所有命令均已成功提示,没有错误
注意:跳过一些步骤,例如设置时区、主机名、主机、添加用户等。
重新启动后,arch 不会启动,而 uefi 菜单只有enter setup
它可以让我进入 BIOS。
我在这里错过了什么吗?或者我做错了什么???请帮助!!!
andddd 提前致谢 <3
编辑:
我重新安装了 grub 引导加载程序,并使用步骤 12 和 13 中的相同命令重新生成了 grub 配置
重新启动计算机之前
的输出efibootmgr -v
是
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0000,0001
Boot0000* grub_uefi HD(1,GPT,d20bff6e-6f1e-c549-9f1b-505a302fd42c,0x800,0x100000)/File(\EFI\grub_uefi\grubx64.efi)
Boot0001* UEFI: Generic Flash Disk 8.07, Partition 1 ...Gibberish..BO
但重启后输出是:
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001
Boot0001* UEFI: Generic Flash Disk 8.07, Partition 1 ...Gibberish..BO
答案1
我认为你只是忘记了efi_directory
grub 配置文件的文件夹
尝试这个:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
您不需要重新安装系统,只需重新安装系统并arch-chroot /mnt
再次运行并生成 grub 配置即可。记得也要跑
grub-mkconfig -o /boot/grub/grub.cfg
另一件事步骤11:
创建EFI启动目录并挂载: mkdir /boot/EFI && mount /dev/nvme0n1p1 /boot/EFI
您必须在生成之前完成此部分fstab
,以便系统需要正确启动......
如果有帮助,请给我们一些反馈。grub
直接在内核上更改了一些配置,os-prober
默认情况下不再使用(如果您尝试运行双引导系统)