git: 3a616b10d8f7 - main - kboot: Better default boot device
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 02 Mar 2023 18:18:30 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3a616b10d8f7bb0f1af7d6a971bdfbabdfecd896 commit 3a616b10d8f7bb0f1af7d6a971bdfbabdfecd896 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2023-03-02 17:55:06 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2023-03-02 18:12:09 +0000 kboot: Better default boot device Provide a better message when we can't find a boot device. Sponsored by: Netflix --- stand/kboot/main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/stand/kboot/main.c b/stand/kboot/main.c index 1cc4c0531772..e01507323bad 100644 --- a/stand/kboot/main.c +++ b/stand/kboot/main.c @@ -232,23 +232,22 @@ main(int argc, const char **argv) bootdev = getenv("bootdev"); if (bootdev == NULL) bootdev = hostdisk_gen_probe(); - if (bootdev == NULL) - bootdev="zfs:"; hostfs_root = getenv("hostfs_root"); if (hostfs_root == NULL) hostfs_root = "/"; #if defined(LOADER_ZFS_SUPPORT) - if (strcmp(bootdev, "zfs:") == 0) { + if (bootdev == NULL || strcmp(bootdev, "zfs:") == 0) { /* * Pseudo device that says go find the right ZFS pool. This will be * the first pool that we find that passes the sanity checks (eg looks * like it might be vbootable) and sets currdev to the right thing based * on active BEs, etc */ - hostdisk_zfs_find_default(); - } else + if (hostdisk_zfs_find_default()) + bootdev = getenv("currdev"); + } #endif - { + if (bootdev != NULL) { /* * Otherwise, honor what's on the command line. If we've been * given a specific ZFS partition, then we'll honor it w/o BE @@ -256,6 +255,8 @@ main(int argc, const char **argv) * boot than the default one in the pool. */ set_currdev(bootdev); + } else { + panic("Bootdev is still NULL"); } printf("Boot device: %s with hostfs_root %s\n", bootdev, hostfs_root);