Proposal to enhance boot path selections
Paul Goyette <[email protected]> Sat, 10 May 2025 22:54:45 -0700 (PDT)
| Newsgroups | gmane.os.netbsd.ports.x86-64,gmane.os.netbsd.devel.kernel,gmane.os.netbsd.ports.i386 |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-1382393930-1746928291=:17718 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; format=flowed Content-ID: <[email protected]> It has been pointed out to me (privately) that the recent changes I made to the biosboot and efiboot code may introduce some confusion regarding which paths are searched for the boot code. Particularly, prior to the recent changes one might well use a "naked" boot command for a primary normal boot, and use /onetbsd (or /netbsd.old or anything with a leading slash) to request booting from a previous kernel. With the recent changes, specifying /onetbsd will only look for a kernel in /onetbsd and /onetbsd.gz (both being regular files); it will not look in /onetbsd/kernel or /onetbsd/kernel.gz as might be expected. If one is accustomed to booting with the leading slash it could be disconcerting (or worse) to not having ingrained muscle-memory boot the old kernel as expected. So, I propose that the attached patches be made to the path selection code. Simply stated, a leading slash '/' character in the specified boot name will no longer prevent treating the boot name as a kernel directory name. Other embedded slash characters (and multiple leading slashes) will still prevent using the specified name as a kernel directory name. So, for example, ``boot /old/netbsd'' will _not_ attempt to boot /old/netbsd/kernel or /old/netbsd/kernel.gz (with or without the leading slash.) I've tested this in qemu for both i38 and amd64 biosboot, and tested on bare-metal amd64[*] efiboot, and it works well. The changes are very localized and affect only the command_boot() code, and that code is affected only when an explicit argument is given to the boot command. A "naked" boot command is not affected by these changes. [*] For the bare-metal testing I made sure to have a second bootable media, just in case something broke. I did not have to resort to the backup. :-) +---------------------+--------------------------+----------------------+ | Paul Goyette (.sig) | PGP Key fingerprint: | E-mail addresses: | | (Retired) | 1B11 1849 721C 56C8 F63A | [email protected] | | Software Developer | 6E2E 05FD 15CE 9F2D 5102 | [email protected] | | & Network Engineer | | [email protected] | +---------------------+--------------------------+----------------------+ --0-1382393930-1746928291=:17718 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=BOOTNAMES.patch Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: ATTACHMENT; FILENAME=BOOTNAMES.patch SW5kZXg6IGJvb3QvYm9vdDIuYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jv b3QvYm9vdDIuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODYNCmRpZmYg LXUgLXAgLXIxLjg2IGJvb3QyLmMNCi0tLSBib290L2Jvb3QyLmMJNiBNYXkg MjAyNSAxODoxNjoxMiAtMDAwMAkxLjg2DQorKysgYm9vdC9ib290Mi5jCTEx IE1heSAyMDI1IDA1OjAxOjQzIC0wMDAwDQpAQCAtNDg5LDE0ICs0ODksMTgg QEAgY29tbWFuZF9ib290KGNoYXIgKmFyZykNCiAJaWYgKCFwYXJzZWJvb3Qo YXJnLCAmZmlsZW5hbWUsICZob3d0bykpDQogCQlyZXR1cm47DQogDQotCWlm IChmaWxlbmFtZSAhPSBOVUxMKSB7DQorCWlmIChmaWxlbmFtZSAhPSBOVUxM ICYmIGZpbGVuYW1lWzBdICE9ICdcMCcpIHsNCiAJCS8qIHRyeSBvbGQgbG9j YXRpb25zIGZpcnN0IHRvIGFzc2lzdCBhdGYgdGVzdCBiZWRzICovDQogCQlz bnByaW50ZihwYXRoLCBzaXplb2YocGF0aCkgLSA0LCAiJXMiLCBmaWxlbmFt ZSk7DQogCQlib290aXQyKHBhdGgsIHNpemVvZihwYXRoKSwgaG93dG8pOw0K IA0KLQkJLyogbm93IHRyZWF0IGdpdmVuIGZpbGVuYW1lIGFzIGEgZGlyZWN0 b3J5ICovDQotCQlpZiAoc3RyY2hyKGZpbGVuYW1lLCAnLycpID09IE5VTEwp IHsNCi0JCQlzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCkgLSA0LCAiJXMv a2VybmVsIiwgZmlsZW5hbWUpOw0KKwkJLyoNCisJCSAqIG5vdyB0cmVhdCBn aXZlbiBmaWxlbmFtZSBhcyBhIGRpcmVjdG9yeSB1bmxlc3MgdGhlcmUNCisJ CSAqIGlzIGFscmVhZHkgYW4gZW1iZWRkZWQgcGF0aC1uYW1lIHNlcGFyYXRv ciAnLycgcHJlc2VudA0KKwkJICovDQorCQlpZiAoc3RyY2hyKGZpbGVuYW1l ICsgMSwgJy8nKSA9PSBOVUxMKSB7DQorCQkJc25wcmludGYocGF0aCwgc2l6 ZW9mKHBhdGgpIC0gNCwgIiVzL2tlcm5lbCIsDQorCQkJICAgIGZpbGVuYW1l KTsNCiAJCQlib290aXQyKHBhdGgsIHNpemVvZihwYXRoKSwgaG93dG8pOw0K IAkJfQ0KIAl9IGVsc2Ugew0KSW5kZXg6IGVmaWJvb3QvYm9vdC5jDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3JjL3N5 cy9hcmNoL2kzODYvc3RhbmQvZWZpYm9vdC9ib290LmMsdg0KcmV0cmlldmlu ZyByZXZpc2lvbiAxLjI5DQpkaWZmIC11IC1wIC1yMS4yOSBib290LmMNCi0t LSBlZmlib290L2Jvb3QuYwkzMCBBcHIgMjAyNSAwNjoyNDo0NyAtMDAwMAkx LjI5DQorKysgZWZpYm9vdC9ib290LmMJMTEgTWF5IDIwMjUgMDU6MDE6NDMg LTAwMDANCkBAIC00NjQsMTQgKzQ2NCwxOCBAQCBjb21tYW5kX2Jvb3QoY2hh ciAqYXJnKQ0KIAlpZiAoIXBhcnNlYm9vdChhcmcsICZmaWxlbmFtZSwgJmhv d3RvKSkNCiAJCXJldHVybjsNCiANCi0JaWYgKGZpbGVuYW1lICE9IE5VTEwp IHsNCisJaWYgKGZpbGVuYW1lICE9IE5VTEwgJiYgZmlsZW5hbWVbMF0gIT0g J1wwJykgew0KIAkJLyogdHJ5IG9sZCBsb2NhdGlvbnMgZmlyc3QgdG8gYXBw ZWFzZSBhdGYgdGVzdCBiZWRzICovDQogCQlzbnByaW50ZihwYXRoLCBzaXpl b2YocGF0aCkgLSA0LCAiJXMiLCBmaWxlbmFtZSk7DQogCQlib290aXQyKHBh dGgsIHNpemVvZihwYXRoKSwgaG93dG8pOw0KIA0KLQkJLyogbm93IHRyZWF0 IGdpdmVuIGZpbGVuYW1lIGFzIGEgZGlyZWN0b3J5IG5hbWUgKi8NCi0JCWlm IChzdHJjaHIoZmlsZW5hbWUsICcvJykgPT0gTlVMTCkgew0KLQkJCXNucHJp bnRmKHBhdGgsIHNpemVvZihwYXRoKSAtIDQsICIlcy9rZXJuZWwiLCBmaWxl bmFtZSk7DQorCQkvKg0KKwkJICogbm93IHRyZWF0IGdpdmVuIGZpbGVuYW1l IGFzIGEgZGlyZWN0b3J5IHVubGVzcyB0aGVyZQ0KKwkJICogaXMgYWxyZWFk eSBhbiBlbWJlZGRlZCBwYXRoLW5hbWUgc2VwYXJhdG9yICcvJyBwcmVzZW50 DQorCQkgKi8NCisJCWlmIChzdHJjaHIoZmlsZW5hbWUgKyAxLCAnLycpID09 IE5VTEwpIHsNCisJCQlzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCkgLSA0 LCAiJXMva2VybmVsIiwNCisJCQkgICAgZmlsZW5hbWUpOw0KIAkJCWJvb3Rp dDIocGF0aCwgc2l6ZW9mKHBhdGgpLCBob3d0byk7DQogCQl9DQogCX0gZWxz ZSB7DQo= --0-1382393930-1746928291=:17718--