浏览代码

fix uefi boot: missing grub config

Noah Vogt 2 年之前
父节点
当前提交
6853aaf349
共有 2 个文件被更改,包括 8 次插入5 次删除
  1. 2 1
      arch.sh
  2. 6 4
      chroot.sh

+ 2 - 1
arch.sh

@@ -29,6 +29,7 @@ PVALUE=$(echo "${DRIVE}" | grep "^nvme" | sed 's/.*[0-9]/p/')
 timedatectl set-ntp true
 
 if [ "$EFI" = "yes" ]; then
+    UEFI_LETTER="1"
     SWAP_LETTER="2"
     ROOT_LETTER="3"
     cat <<EOF | fdisk -W always /dev/"${DRIVE}"
@@ -54,7 +55,7 @@ n
 
 w
 EOF
-mkfs.fat -F32 /dev/"${DRIVE}${PVALUE}1"
+mkfs.vfat -F32 /dev/"${DRIVE}${PVALUE}${UEFI_LETTER}"
 
 else
     cat <<EOF | fdisk -W always /dev/"${DRIVE}"

+ 6 - 4
chroot.sh

@@ -24,6 +24,7 @@ systemctl enable NetworkManager
 ls /sys/firmware/efi/efivars && EFI=yes
 
 if [ "$EFI" = "yes" ]; then
+    UEFI_LETTER="1"
     SWAP_LETTER="2"
     ROOT_LETTER="3"
 else
@@ -50,13 +51,14 @@ sed -i 's/#GRUB_ENABLE_CRYPTODISK/GRUB_ENABLE_CRYPTODISK/' /etc/default/grub
 echo "swap /dev/${DRIVE}${PVALUE}${SWAP_LETTER} /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256" >> /etc/crypttab
 
 if [ "$EFI" = "yes" ]; then
-    pacman -S grub efibootmgr
+    pacman --noconfirm --needed -S efibootmgr
     mkdir /boot/efi
-    mount /dev/"${DRIVE}${PVALUE}1" /boot/efi
-    grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi
+    mount /dev/"${DRIVE}${PVALUE}${UEFI_LETTER}" /boot/efi
+    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub /dev/"${DRIVE}" --recheck
 else
     grub-install --target=i386-pc /dev/"${DRIVE}" --recheck
-grub-mkconfig -o /boot/grub/grub.cfg
 fi
 
+grub-mkconfig -o /boot/grub/grub.cfg
+
 rm drive tzfinal.tmp