@@ -39,28 +39,44 @@ VAI_get_address() {
3939
4040VAI_partition_disk () {
4141 # Paritition Disk
42- sfdisk " ${disk} " << EOF
43- ,$bootpartitionsize
44- ,${swapsize} K
45- ;
42+
43+ if [ -d /sys/firmware/efi ] ; then
44+ VAI_info_msg " Partitioning Disk for UEFI Boot"
45+ sfdisk " ${disk} " << EOF
46+ label: gpt
47+ ,100M,U,
48+ ,,L,
49+ EOF
50+ else
51+ VAI_info_msg " Partitioning Disk for BIOS Boot"
52+ sfdisk " ${disk} " << EOF
53+ label: dos
54+ ,,L,*
4655EOF
56+ fi
4757}
4858
4959VAI_format_disk () {
5060 # Make Filesystems
51- mkfs.ext4 -F " ${disk} 1"
52- mkfs.ext4 -F " ${disk} 3"
53- if [ " ${swapsize} " -ne 0 ] ; then
54- mkswap -f " ${disk} 2"
61+ if [ -d /sys/firmware/efi ] ; then
62+ mkfs.vfat -F32 " ${disk} 1"
63+ mkfs.ext4 -F " ${disk} 2"
64+ else
65+ mkfs.ext4 -F " ${disk} 1"
5566 fi
5667}
5768
5869VAI_mount_target () {
5970 # Mount targetfs
6071 mkdir -p " ${target} "
61- mount " ${disk} 3" " ${target} "
62- mkdir " ${target} /boot"
63- mount " ${disk} 1" " ${target} /boot"
72+
73+ if [ -d /sys/firmware/efi ] ; then
74+ mount " ${disk} 2" " ${target} "
75+ mkdir -p " ${target} /boot/efi"
76+ mount " ${disk} 1" " ${target} /boot/efi"
77+ else
78+ mount " ${disk} 1" " ${target} "
79+ fi
6480}
6581
6682VAI_install_xbps_keys () {
@@ -70,7 +86,12 @@ VAI_install_xbps_keys() {
7086
7187VAI_install_base_system () {
7288 # Install a base system
73- XBPS_ARCH=" ${XBPS_ARCH} " xbps-install -Sy -R " ${xbpsrepository} " -r /mnt base-system grub
89+ _grub=" grub"
90+ if [ -d /sys/firmware/efi ] ; then
91+ _grub=" ${_grub} grub-x86_64-efi"
92+ fi
93+
94+ XBPS_ARCH=" ${XBPS_ARCH} " xbps-install -Sy -R " ${xbpsrepository} " -r /mnt base-system ${_grub}
7495
7596 # Install additional packages
7697 if [ -n " ${pkgs} " ] ; then
@@ -80,6 +101,11 @@ VAI_install_base_system() {
80101}
81102
82103VAI_prepare_chroot () {
104+ # Mount efivars if this is an EFI system
105+ if [ -d /sys/firmware/efi ] ; then
106+ mount -t efivarfs none /sys/firmware/efi/efivars
107+ fi
108+
83109 # Mount dev, bind, proc, etc into chroot
84110 mount -t proc proc " ${target} /proc"
85111 mount --rbind /sys " ${target} /sys"
@@ -141,14 +167,13 @@ VAI_configure_grub() {
141167VAI_configure_fstab () {
142168 # Grab UUIDs
143169 uuid1=" $( blkid -s UUID -o value " ${disk} 1" ) "
144- uuid2=" $( blkid -s UUID -o value " ${disk} 2" ) "
145- uuid3=" $( blkid -s UUID -o value " ${disk} 3" ) "
146-
147- # Installl UUIDs into /etc/fstab
148- echo " UUID=$uuid3 / ext4 defaults,errors=remount-ro 0 1" >> " ${target} /etc/fstab"
149- echo " UUID=$uuid1 /boot ext4 defaults 0 2" >> " ${target} /etc/fstab"
150- if [ " ${swapsize} " -ne 0 ] ; then
151- echo " UUID=$uuid2 swap swap defaults 0 0" >> " ${target} /etc/fstab"
170+ if [ -d /sys/firmware/efi ] ; then
171+ uuid2=" $( blkid -s UUID -o value " ${disk} 2" ) "
172+ echo " UUID=$uuid1 /boot/efi vfat defaults 0 0" >> " ${target} /etc/fstab"
173+ echo " UUID=$uuid2 / ext4 defaults,errors=remount-ro 0 1" >> " ${target} /etc/fstab"
174+
175+ else
176+ echo " UUID=$uuid1 / ext4 defaults,errors=remount-ro 0 1" >> " ${target} /etc/fstab"
152177 fi
153178}
154179
@@ -195,11 +220,8 @@ VAI_end_action() {
195220
196221VAI_configure_autoinstall () {
197222 # -------------------------- Setup defaults ---------------------------
198- bootpartitionsize=" 500M"
199223 disk=" $( lsblk -ipo NAME,TYPE,MOUNTPOINT | awk ' {if ($2=="disk") {disks[$1]=0; last=$1} if ($3=="/") {disks[last]++}} END {for (a in disks) {if(disks[a] == 0){print a; break}}}' ) "
200224 hostname=" $( ip -4 -o -r a | awk -F' [ ./]' ' {x=$7} END {print x}' ) "
201- # XXX: Set a manual swapsize here if the default doesn't fit your use case
202- swapsize=" $( awk -F" \n" ' /MemTotal/ {split($0, b, " "); print b[2] }' /proc/meminfo) " ;
203225 target=" /mnt"
204226 timezone=" America/Chicago"
205227 keymap=" us"
@@ -256,7 +278,7 @@ VAI_main() {
256278 VAI_print_step " Configuring installer"
257279 VAI_configure_autoinstall
258280
259- VAI_print_step " Configuring disk using scheme 'Atomic' "
281+ VAI_print_step " Configuring disk"
260282 VAI_partition_disk
261283 VAI_format_disk
262284
@@ -307,4 +329,3 @@ if getargbool 0 auto ; then
307329 # Very important to release this before returning to dracut code
308330 set +e
309331fi
310-
0 commit comments