#
1.9 |
|
08-Nov-2022 |
kn |
Make "prepare filesystem" softraid aware, fix arm64 softraid install
On EFI platforms, 'installboot -p' on a softraid volume will only prepare the filesysem inside the volume and leave physical softraid chunks untouched which leaves you with unbootable chunks.
The current workaround is to prepare chunks manually (see regress).
Fix it in the same spirit the actual "install" already works in softraid.c.
This is what mlarkin has already been tested in a combined diff with the MD -> MI softraid merge bits from the previous commit.
Works fine on amd64, arm64 and sparc64 upgrades and installations.
OK jsing
|
#
1.8 |
|
07-Nov-2022 |
kn |
Merge duplicate MD code into MI sr_open_chunk()
It does not have the prettiest signature, but nicely folds identical copies into softraid.c, which then allows us to reuse sr_open_chunk() yet again in an upcoming diff to make -p softraid aware (fixes arm64 installations).
Regress keeps passing. Works fine on amd64, arm64 and sparc64. "looks fine" mlarkin for whom this unbreaks a fresh arm64 softraid install
|
#
1.7 |
|
05-Oct-2022 |
kn |
Skip softraid(4) keydisks
Keydisks appear as chunks internally (with special properties) and installboot(8) thus treated them like actual data chunks.
Most users probably don't hit this as their keydisk is detached and thus appears "offline" and gets skipped.
Installing to online keydisks may work but is neither expected nor intended to work, so properly skip them.
Odd setups like keydisk and CRYPTO chunk on the same physical disk would end up installing getting bootblocks installed twice.
Pointed out by Mikolaj Kucharski <mikolaj AT kucharski DOT name> who also provided the actual diff (minor wording tweaks by me)
OK jsing
|
Revision tags: OPENBSD_7_2_BASE
|
#
1.6 |
|
29-Aug-2022 |
kn |
softraid: make verbose messages -n/nowrite aware
Using installboot(8) in dry-run mode aka. -vn (verbose + nowrite) and first reading "would install" followed by an "installing" made me uneasy.
Luckily, nothing was written in dry-run mode, it's just that the softraid specific code fails to honour -n/nowrite.
So make sure it does and pull the printf out of `if (!nowrite)' so we see the "would install" messages in dry-run mode in the first place.
Output diff for root on CRYPTO softraid on biosboot(8/amd64) to illustrate:
-# installboot -nv sd1 +# ./obj/installboot -nv sd1 would install bootstrap on /dev/rsd1c using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot sd1: softraid volume with 1 disk(s) +sd1: would install boot loader on softraid volume /usr/mdec/boot is 6 blocks x 16384 bytes -sd0a: installing boot blocks on /dev/rsd0c, part offset 144 +sd0a: would install boot blocks on /dev/rsd0c, part offset 144 master boot record (MBR) at sector 0 partition 3: type 0xA6 offset 64 size 488392001 /usr/mdec/biosboot will be written at sector 64
OK jsing
|
Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE
|
#
1.5 |
|
08-Jun-2020 |
kn |
Provide clear errors when trying to install oversized boot loader
sparc64 installboot(8) on softraid(4) with too large files, e.g. unstripped builds, fails poorly with "installboot: softraid installboot failed".
This is due to the BIOCINSTALLBOOT ioctl(2) returing the default EINVAL rather than using softraid's sr_error() interface properly; additionally, installboot does not check for such message from the bio(4) layer.
Make the kernel generate "boot block too large" and "boot loader too large" messages for softraid devices and have installboot act upon them analogous to bioctl(8), by adapting its bio_status() into the new sr_status() helper.
Input, reminder to look at bioctl, same kernel diff from, OK jsing
|
Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
|
#
1.4 |
|
28-Jun-2019 |
deraadt |
When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|
#
1.7 |
|
05-Oct-2022 |
kn |
Skip softraid(4) keydisks
Keydisks appear as chunks internally (with special properties) and installboot(8) thus treated them like actual data chunks.
Most users probably don't hit this as their keydisk is detached and thus appears "offline" and gets skipped.
Installing to online keydisks may work but is neither expected nor intended to work, so properly skip them.
Odd setups like keydisk and CRYPTO chunk on the same physical disk would end up installing getting bootblocks installed twice.
Pointed out by Mikolaj Kucharski <mikolaj AT kucharski DOT name> who also provided the actual diff (minor wording tweaks by me)
OK jsing
|
Revision tags: OPENBSD_7_2_BASE
|
#
1.6 |
|
29-Aug-2022 |
kn |
softraid: make verbose messages -n/nowrite aware
Using installboot(8) in dry-run mode aka. -vn (verbose + nowrite) and first reading "would install" followed by an "installing" made me uneasy.
Luckily, nothing was written in dry-run mode, it's just that the softraid specific code fails to honour -n/nowrite.
So make sure it does and pull the printf out of `if (!nowrite)' so we see the "would install" messages in dry-run mode in the first place.
Output diff for root on CRYPTO softraid on biosboot(8/amd64) to illustrate:
-# installboot -nv sd1 +# ./obj/installboot -nv sd1 would install bootstrap on /dev/rsd1c using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot sd1: softraid volume with 1 disk(s) +sd1: would install boot loader on softraid volume /usr/mdec/boot is 6 blocks x 16384 bytes -sd0a: installing boot blocks on /dev/rsd0c, part offset 144 +sd0a: would install boot blocks on /dev/rsd0c, part offset 144 master boot record (MBR) at sector 0 partition 3: type 0xA6 offset 64 size 488392001 /usr/mdec/biosboot will be written at sector 64
OK jsing
|
Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE
|
#
1.5 |
|
08-Jun-2020 |
kn |
Provide clear errors when trying to install oversized boot loader
sparc64 installboot(8) on softraid(4) with too large files, e.g. unstripped builds, fails poorly with "installboot: softraid installboot failed".
This is due to the BIOCINSTALLBOOT ioctl(2) returing the default EINVAL rather than using softraid's sr_error() interface properly; additionally, installboot does not check for such message from the bio(4) layer.
Make the kernel generate "boot block too large" and "boot loader too large" messages for softraid devices and have installboot act upon them analogous to bioctl(8), by adapting its bio_status() into the new sr_status() helper.
Input, reminder to look at bioctl, same kernel diff from, OK jsing
|
Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
|
#
1.4 |
|
28-Jun-2019 |
deraadt |
When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|
#
1.6 |
|
29-Aug-2022 |
kn |
softraid: make verbose messages -n/nowrite aware
Using installboot(8) in dry-run mode aka. -vn (verbose + nowrite) and first reading "would install" followed by an "installing" made me uneasy.
Luckily, nothing was written in dry-run mode, it's just that the softraid specific code fails to honour -n/nowrite.
So make sure it does and pull the printf out of `if (!nowrite)' so we see the "would install" messages in dry-run mode in the first place.
Output diff for root on CRYPTO softraid on biosboot(8/amd64) to illustrate:
-# installboot -nv sd1 +# ./obj/installboot -nv sd1 would install bootstrap on /dev/rsd1c using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot sd1: softraid volume with 1 disk(s) +sd1: would install boot loader on softraid volume /usr/mdec/boot is 6 blocks x 16384 bytes -sd0a: installing boot blocks on /dev/rsd0c, part offset 144 +sd0a: would install boot blocks on /dev/rsd0c, part offset 144 master boot record (MBR) at sector 0 partition 3: type 0xA6 offset 64 size 488392001 /usr/mdec/biosboot will be written at sector 64
OK jsing
|
Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE
|
#
1.5 |
|
08-Jun-2020 |
kn |
Provide clear errors when trying to install oversized boot loader
sparc64 installboot(8) on softraid(4) with too large files, e.g. unstripped builds, fails poorly with "installboot: softraid installboot failed".
This is due to the BIOCINSTALLBOOT ioctl(2) returing the default EINVAL rather than using softraid's sr_error() interface properly; additionally, installboot does not check for such message from the bio(4) layer.
Make the kernel generate "boot block too large" and "boot loader too large" messages for softraid devices and have installboot act upon them analogous to bioctl(8), by adapting its bio_status() into the new sr_status() helper.
Input, reminder to look at bioctl, same kernel diff from, OK jsing
|
Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
|
#
1.4 |
|
28-Jun-2019 |
deraadt |
When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|
#
1.5 |
|
08-Jun-2020 |
kn |
Provide clear errors when trying to install oversized boot loader
sparc64 installboot(8) on softraid(4) with too large files, e.g. unstripped builds, fails poorly with "installboot: softraid installboot failed".
This is due to the BIOCINSTALLBOOT ioctl(2) returing the default EINVAL rather than using softraid's sr_error() interface properly; additionally, installboot does not check for such message from the bio(4) layer.
Make the kernel generate "boot block too large" and "boot loader too large" messages for softraid devices and have installboot act upon them analogous to bioctl(8), by adapting its bio_status() into the new sr_status() helper.
Input, reminder to look at bioctl, same kernel diff from, OK jsing
|
Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE
|
#
1.4 |
|
28-Jun-2019 |
deraadt |
When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|
#
1.4 |
|
28-Jun-2019 |
deraadt |
When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
03-Oct-2015 |
krw |
Nuke trailing whitespace to avoid cluttering possible upcoming diffs.
|
Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
|
#
1.2 |
|
16-Jan-2015 |
deraadt |
first batch of cleanup to programs based upon the namespace cleanups in net/pfvar.h sys/proc.h sys/ucred.h arpa/nameser.h change to PATH_MAX, reduce use of MIN() and MAX(), HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc etc ok millert guenther, some review by doug
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.1 |
|
19-Jan-2014 |
jsing |
Rework installboot and use a single directory with a single makefile. The directory per machine model is arguably cleaner, however it does not play well with distrib/special and instbin.
Discussed with deraadt@
|