diff --git a/rc/bin/inst/bootplan9 b/rc/bin/inst/bootplan9 index c7eb185b4..702d5d5a6 100755 --- a/rc/bin/inst/bootplan9 +++ b/rc/bin/inst/bootplan9 @@ -1,5 +1,20 @@ #!/bin/rc +# look for esp and format it when not already done +esp=`{ls /dev/$disk/esp >[2]/dev/null} +if(~ $#esp 1 && ! ~ fstype $esp dos){ + echo + echo 'Here appears to be a unformated EFI system partition:' + echo ' ' $esp + echo + prompt 'Initialize FAT on EFI system partition' yes no + switch($rd) { + case yes + # 4k clusters to force FAT32 + disk/format -d -c 8 -l ESP $esp + } +} + # look for plan9 partition in the DOS partition table (if any) p9part=`{disk/fdisk /dev/$disk/data >[2]/dev/null [2]/dev/null >/dev/null x=$status if(~ $x '' '|'){ diff --git a/rc/bin/inst/bootsetup b/rc/bin/inst/bootsetup index 34d1c5b9c..e3f2a7cca 100755 --- a/rc/bin/inst/bootsetup +++ b/rc/bin/inst/bootsetup @@ -1,6 +1,6 @@ #!/bin/rc -# desc: create a boot floppy or configure hard disk to boot plan 9 +# desc: configure hard disk to boot plan 9 # prereq: copydist fats=() @@ -73,7 +73,7 @@ case go if(~ $need9fatformat yes){ log Initializing Plan 9 FAT partition. - logprog disk/format -r 2 -d -b /n/newfs/386/pbs $9fat + logprog disk/format -r 2 -d -b /n/newfs/386/pbs -l PLAN9 $9fat } if not { log Updating bootsector. diff --git a/rc/bin/inst/partdisk b/rc/bin/inst/partdisk index cea2136d8..bbe33fbbf 100755 --- a/rc/bin/inst/partdisk +++ b/rc/bin/inst/partdisk @@ -32,23 +32,25 @@ case go prompt $default 'Disk to partition' $disks disk=$rd - if(! ./hasmbr /dev/$disk/data) { - echo 'The disk you selected HAS NO master boot record on its first sector.' - echo '(Perhaps it is a completely blank disk.)' - echo 'You need a master boot record to use the disk.' - echo 'Should we install a default master boot record?' - echo - prompt 'Install mbr' y n - switch($rd) { - case y - disk/mbr -m /386/mbr /dev/$disk/data - pickdisk=done - } - } - diskedit=disk/fdisk if(disk/edisk -p /dev/$disk/data >/dev/null >[2=1]) - diskedit=disk/edisk + diskedit=disk/edisk + + if(~ $diskedit disk/fdisk && ! ./hasmbr /dev/$disk/data) { + echo 'The disk you selected HAS NO master boot record on its first sector.' + echo '(Perhaps it is a completely blank disk.)' + echo 'Shall we create a blank EFI partition table (GPT)' + echo 'or install traditional DOS partition table (MBR)?' + echo + prompt 'Install mbr or gpt' mbr gpt + switch($rd) { + case mbr + disk/mbr -m /386/mbr /dev/$disk/data + case gpt + disk/edisk -bw /dev/$disk/data + diskedit=disk/edisk + } + } echo echo 'This is '$diskedit'; use it to create a Plan 9 partition.'