UEFI启动的archlinux在安装的时候必须特别注意几个问题,稍不注意就会在安装完以后出现GRUB提示符无法启动。
实际上ARCH的UEFI启动器安装对初学者并不友好,有几个坑:
一个是挂载分区的时候,务必确保自己分区被挂载上,要通过“lsblk”命令查看自己的分区挂载情况,确保自己的分区挂载正确。
360G的硬盘分了5个区,规划分别是
分区名字 | 分区大小 | 对应分区 |
---|---|---|
efi分区 | 500M | /dev/sda1 |
boot分区(/boot) | 2G | /dev/sda2 |
根分区(/) | 100G | /dev/sda3 |
家目录分区(/home) | 250G | /dev/sda4 |
交换分区(swap) | 8G | /dev/sda5 |
分好区后查看分区信息
fdisk -l
如图:
正确挂载后查看挂载信息:
lsblk
一个较为完整的分区挂载实例:
二是单独给EFI分区的时候,要确保足够大,至少300M。如果还单独给BOOT分区了,BOOT分区必须大于1G。 对于挂载分区问题,要严格按顺序来 先将预定的根分区挂载到 /mnt 然后在 /mnt 下面建立 /mnt/boot /mnt/home 等二级目录 再将对应的分区挂载上去 对于有三级目录的,必须挂载好二级目录,然后新建三级目录 /mnt/boot/efi 再将对应分区挂载上去。
以上面的分区为例:
挂载之前先将分区格式化
UEFI启动,在分区和格式化的时候要将EFI分区设置为EFI分区、fat32文件系统格式。
对EFI分区,格式化命令如下:
mkfs.fat -F32 /dev/sda1
再将其他数据分区格式化为ext4文件系统格式(可以选其他文件系统格式,如ext3之类的,具体看自己的需求)
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4
交换分区单独设置并且挂载
mkswap /dev/sda5
swapon /dev/sda5
先挂一级目录,一级目录无需建立,直接挂载
mount /dev/sda3 /mnt
建立二级目录
mkdir /mnt/boot
mkdir /mnt/home
挂载二级目录
mount /dev/sda2 /mnt/boot
mount /dev/sda4 /mnt/home
建立三级目录
mkdir /mnt/boot/efi
挂载三级目录
mount /dev/sda1 /mnt/boot/efi
还有一种情况,新手对分区不是很清楚,那有个简单的解决办法: 分三个区,EFI分区 根分区 交换分区 挂载根分区后,直接使用 mkdir -p /mnt/boot/efi 命令建立好启动目录,然后将EFI分区挂载到这个目录。
分别为:
分区名字 | 分区大小 | 对应分区 |
---|---|---|
efi分区 | 500M | /dev/sda1 |
根分区(/) | 351G | /dev/sda2 |
交换分区(swap) | 8G | /dev/sda3 |
格式化过程就不写了,设置交换分区
mkswap /dev/sda3
swapon /dev/sda3
挂一级目录
mount /dev/sda2 /mnt
然后直接建三级目录
mkdir -p /mnt/boot/efi
挂载三级目录
mount /dev/sda1 /mnt/boot/efi
挂载之后必须通过lsblk查看挂载情况。
三是务必注意grub-install命令和grub-mkconfig命令输出情况。
grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck
加–recheck是检查错误,请务必保证输出为下图所示(我这里引用了其他人的图片,请务必保证–efi-directory=/boot/efi这一段中的/boot/efi大小写与你的实际情况一致):
最后一段no error reported代表没有检测到错误,但是这并不代表grub启动安装成功,还有重要的配置:
grub-mkconfig -o /boot/grub/grub.cfg
输出下面的信息才算安装成功: