Hi misc@, This is to sum up this previous thread:
Keydisk crypto softraid boot *works PERFECTLY well in UEFI* boot mode with OpenBSD 6.2, and so does password crypto softraid. The issue I had actually encountered was not softraid related, but related to how to make an USB memory stick OpenBSD-UEFI-bootable, and I got that clarified now and posted that separately to misc@ . At the bottom of the previous post, I wrote three questions, and I can answer those now: > 1) Is the UEFI boot loader for USB keydisk crypto softraid really > stable? > > 2) Is the UEFI boot loader good for any crypto softraid? To 1) and 2): Yes it's stable. > 3) Since this one is a big question, I'll make a separate email of it: > > If this machine's BIOS does not support NVME SSD boot, how can I > create an OpenBSD USB boot disk that would boot OpenBSD from the > NVME SSD-stored crypto softraid for me? > > This could be done either by > > * The OpenBSD kernel being stored on the USB stick, loading from > it, and then using the NVME SSD as both root disk, swap disk, > and dump disk, or, This was discussed with Stuart in a separate misc@ thread this month, and he says it can be done but requires custom kernel compiletime defines. > * The OpenBSD boot loader would load the OpenBSD kernel from the > NVME SSD. I just described this in the other thread. Tinker 2018-02-01 17:42 GMT+08:00 : > > Hi, > > This is experiences from an upgrade from 6.0 to 6.2. > > I know MBR USB keydisk boot worked on 6.0. This is an attempt to > upgrade to 6.2 with UEFI. > > A potential error source I have is that that I'm also switching boot > medium from SATA to NVME. NVME as boot medium does not affect the > OpenBSD installer, so within the scope of the OpenBSD installer, the > switch to NVME is without impact, however yet the installer does > complain, see below. > > The issue is that I don't get the machine to boot with a keydisk crypto > softraid boot partition. > > Reproduction steps: > > * Write install62.fs to a USB memory stick > > * Set the machine to UEFI boot mode (machine has no safe boot setting) > > * Boot machine from USB memory stick. > > OpenBSD kernel boots and the disks are sd0 = NVME SSD, sd1 = boot > USB stick, sd2 = keydisk USB stick > > * Go to the shell by using the (S) option. > > * Reset sd0 and sd1 by: > > dd if=/dev/random of=/dev/sd0c bs=1M count=100 > dd if=/dev/random of=/dev/sd2c bs=1M count=100 > fdisk -igy -b 960 sd0 > fdisk -igy sd2 > > * To ensure that any previous BSD disklabel is properly forgotten by > OpenBSD, reboot, and get back in the S option. > > * Set up BSD disklabels: > > disklabel -E sd0 > a a (to add an "a" partition) > (enter for the default offset) > (enter to occupy all disk) > RAID (to make a softraid) > w > q > > disklabel -E sd2 > a a (to add an "a" partition) > 1024 (to start 512KB into disk) > 1024 (to create an 512KB-sized partition) > RAID (to create a softraid) > w > q > > * Set up USB keydisk softraid: > > bioctl -C force -c C -l /dev/sd0a -k /dev/sd2a softraid0 > > And its output is: > > sd3 at scsibus3 targ 1 lun 0: SCSI2 0/direct fixed > sd3: XXXXXXMB, 512 bytes/sector, XXXXXXXXXX sectors > > And so sd3 is the softraid. > > * Proceed with OpenBSD installer via "/install". > > The interaction at the disk-related install steps is done as follows: > > Available disks are: sd0 sd1 sd2 sd3 > Which disk is the root disk? ('?' for details) [sd0] sd3 > No valid MBR or GPT. > Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [gpt] > Setting OpenBSD GPT partition to whole sd3...done > The allocated layout for sd3 is: > # (SNIP) > Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] c > > a a (to add an "a" partition in the softraid) > offset: [1024] (enter to use default offset) > size: [XXXXXXXXXXX] (enter to fill all disk) > FS type: (enter to make it a 4.2BSD filesystem) > mount point: [none] / (to make it root partition) > Rounding size to bsize (128 sectors): XXXXXXXXXX > > w > > q > > * Following through the installer to completion. > > Unfortunately at completion the installer outputs this error > message: > > Failed to install boot blocks. > You will not be able to boot OpenBSD from sd3. > > This message is output by the install script when installboot > returns failure. > > To fix this, I tried any of the following three: > > installboot -r /mnt sd0 > > installboot sd0 /mnt/usr/mdec/biosboot /usr/mdec/boot > > installboot -r /mnt sd0 /mnt/usr/mdec/biosboot /usr/mdec/boot > > * On some attempts here, I checked that the UEFI boot partition was > correct by: > > mount /dev/sd0i /mnt2 > ls /mnt2/efi/boot > > And indeed bootia32.efi and bootx64.efi are there. > > * Sync, reboot. > > > Problems: > > * The problem at reboot is that the BIOS not acknowledges any UEFI- > bootable disks at all. The BIOS shows this by jumping into the BIOS > menu at boot, and not listing any bootable devices. (This BIOS only > lists prospective bootable devices, which has a quite wide > definition, however I think it does not list any identified disk.) > > Also the BIOS' "go into the UEFI shell of the harddrive" menu option > does not work. > > If putting the BIOS in MBR ("legacy") mode, it lists the SSD and one > or more (didn't check) USB memory stick, but the boot attempt leads > to either empty screen, or I think, a boot failure message. > > > * The OpenBSD installer USB memory stick is UEFI-booted. I tried to > boot from it to try to boot the SSD from the OpenBSD boot console > that way. > > I need to re-check this one but the boot loader shows something like > "disk: hd0 hd1* hd2*", and doing any "boot hd1a:/bsd", > "boot hd2a:/bsd", "boot hd1:/bsd", "boot hd2:/bsd". > > If I recall right, at one attempt instead it showed > "disk: hd0* hd1 hd2* sr0", however doing "boot sr0a:/bsd", if I > remember right, failed with "unknown KDF type 2" message or maybe > totally. > > I would need to re-check this point more to get accurate data. > > > > I tried redoing all this in MBR mode to see if that would work out: > > * I'd set the BIOS to UEFI mode at OpenBSD install time, as the > OpenBSD installer USB memory stick is UEFI > > * Do the partitioning the same as above but with the fdisk part as > "fdisk -iy sd0", "fdisk -iy sd2" instead. > > * Do the installation the same as above but instead of GPT (the > preselected "gpt" option), specify MBR (by "M"). > > * At installer completion, the same error message is shown as above, i.e.: > > Failed to install boot blocks. > You will not be able to boot OpenBSD from sd3. > > * I tried to fix it with the same installboot steps as above. > > * At reboot, change the BIOS to boot from MBR (legacy mode). > > The OpenBSD boot loader fails as follows: > > Using drive 0, partition 3. > Loading...... > probing: pc0 com0 com1 mem[635K 3295M 247M XXXXM a20=on] > disk: fd0 hd0+ sr0* > >> OpenBSD/amd64 BOOT 3.33 > unknown KDF type 2 > open(sr0a:/etc/boot.conf): Operation not permitted > boot> > unknown KDF type 2 > open sr0a:/bsd: Operation not permitted > failed(1), will try /bsd > > > This leads me to ask: > > 1) Is the UEFI boot loader for USB keydisk crypto softraid really > stable? > > 2) Is the UEFI boot loader good for any crypto softraid? > > 3) Since this one is a big question, I'll make a separate email of it: > > If this machine's BIOS does not support NVME SSD boot, how can I > create an OpenBSD USB boot disk that would boot OpenBSD from the > NVME SSD-stored crypto softraid for me? > > This could be done either by > > * The OpenBSD kernel being stored on the USB stick, loading from > it, and then using the NVME SSD as both root disk, swap disk, > and dump disk, or, > > * The OpenBSD boot loader would load the OpenBSD kernel from the > NVME SSD. > > Please let me know what you think. > > Thanks! > Tinker