83 lines
2.9 KiB
Plaintext
83 lines
2.9 KiB
Plaintext
packages() {
|
|
if [ "$EFI" == "1" ]; then
|
|
addpkg grub-x86_64-efi efibootmgr
|
|
else
|
|
addpkg grub
|
|
fi
|
|
}
|
|
|
|
config() {
|
|
if [ "${ENC}" == "1" ]; then
|
|
if ! grep -q "GRUB_ENABLE_CRYPTODISK" /etc/default/grub; then
|
|
echo "GRUB_ENABLE_CRYPTODISK=y" >> /etc/default/grub
|
|
fi
|
|
uuid=$(blkid -o value -s UUID ${TARGET_PHY_ID}-part${TARGET_PART})
|
|
if ! grep -q rd.luks.uuid /etc/default/grub; then
|
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\"rd.luks.uuid=${uuid} /" /etc/default/grub
|
|
fi
|
|
else
|
|
if ! grep -q "#GRUB_ENABLE_CRYPTODISK" /etc/default/grub; then
|
|
echo "#GRUB_ENABLE_CRYPTODISK=y" >> /etc/default/grub
|
|
fi
|
|
fi
|
|
|
|
|
|
if ! grep -q rd.lvm.vg /etc/default/grub; then
|
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\"rd.lvm.vg=vg_${TARGETNAME_UNDERSCORE} /" /etc/default/grub
|
|
fi
|
|
|
|
if ! [ "${KEY_LANG}" == "en" ]; then
|
|
if [ "${EFI}" == "1" ]; then
|
|
set -x
|
|
VGUUID=$(vgdisplay |grep UUID|awk '{print $3}')
|
|
LVUUID=$(lvdisplay "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-root" |grep UUID|awk '{print $3}')
|
|
rl=$(basename $(readlink "${TARGET_PHY_ID}-part${TARGET_PART}"))
|
|
TMP=$(lsblk -o NAME,UUID -l|grep "${rl}" | awk '{print $2}')
|
|
CRYPTUUID=${TMP//-/}
|
|
grub-kbdcomp -o ${KEY_LANG}.gkb ${KEY_LANG}
|
|
tar cf memdisk.tar ${KEY_LANG}.gkb
|
|
|
|
echo "set root=(memdisk)" >> /boot/grub/early-grub.cfg
|
|
echo "set prefix=($root)/" >> /boot/grub/early-grub.cfg
|
|
echo "terminal_input at_keyboard" >> /boot/grub/early-grub.cfg
|
|
echo "keymap /dvorak.gkb" >> /boot/grub/early-grub.cfg
|
|
echo "cryptomount -u 1234abcdef1234abcdef1234abcdef" >> /boot/grub/early-grub.cfg
|
|
echo "set root='cryptouuid/1234abcdef1234abcdef1234abcdef'" >> /boot/grub/early-grub.cfg
|
|
echo "set prefix=($root)/grub" >> /boot/grub/early-grub.cfg
|
|
echo "configfile grub.cfg" >> /boot/grub/early-grub.cfg
|
|
|
|
mkdir -p /boot/grub/
|
|
grub-mkimage -c /boot/grub/early-grub.cfg -o grubx64.efi -O x86_64-efi -m memdisk.tar memdisk tar at_keyboard keylayouts configfile
|
|
cp -f grubx64.efi /boot/efi/EFI/void/grubx64.efi
|
|
|
|
rm -rf grubx64.efi memdisk.tar ${KEY_LANG}.gkb
|
|
fi
|
|
if ! grep -q rd.console.keymap /etc/default/grub; then
|
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\" rd.vconsole.keymap=${L2} /" /etc/default/grub
|
|
fi
|
|
fi
|
|
|
|
|
|
uuid=$(blkid -o value -s UUID /dev/mapper/vg_${TARGETNAME_UNDERSCORE}-swap)
|
|
if [[ "${HIBERNATE}" == "1" ]]; then
|
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\"resume=UUID=${uuid} /" /etc/default/grub
|
|
fi
|
|
|
|
if ! grep -q "dark-gray/black" /etc/default/grub; then
|
|
echo "GRUB_COLOR_NORMAL=\"dark-gray/black\"" >> /etc/default/grub
|
|
echo "GRUB_COLOR_HIGHLIGHT=\"green/black\"" >> /etc/default/grub
|
|
fi
|
|
|
|
|
|
if [ "${EFI}" == "1" ]; then
|
|
grub-install
|
|
#efibootmgr --create --disk "${TARGET_PHY_ID}-part1" --loader /EFI/void/grubx64.efi --label "Voidlinux" --verbose
|
|
else
|
|
grub-install "${TARGET_PHY_ID}"
|
|
fi
|
|
lv=$(xbps-query linux|grep pkgver|awk '{print $2}')
|
|
lv1="${lv//-/}"
|
|
lv2="${lv1%_*}"
|
|
xbps-reconfigure -f "${lv2}"
|
|
}
|