NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/54776: install media does not contain support for LVM



2019年12月19日(木) 17:25 Martin Husemann <martin%duskware.de@localhost>:
>
> The following reply was made to PR port-amd64/54776; it has been noted by GNATS.
>
> From: Martin Husemann <martin%duskware.de@localhost>
> To: "Eric S. Hvozda" <hvozda%ack.org@localhost>
> Cc: gnats-bugs%netbsd.org@localhost
> Subject: Re: port-amd64/54776: install media does not contain support for LVM
> Date: Thu, 19 Dec 2019 09:20:18 +0100
>
>  On Wed, Dec 18, 2019 at 10:09:17PM -0500, Eric S. Hvozda wrote:
>  >
>  > > On Dec 18, 2019, at 12:45 PM, Martin Husemann <martin%duskware.de@localhost> wrote:
>  > >
>  > > My bet would be missing /dev device nodes.
>  >
>  > I will check this tomorrow and report back...
>
>  I looked, and they seem to be created on demand by the userland tools
>  (and not MAKEDEV, which is invoked differently for the /dev-on-tmpfs setup
>  the ISO uses).

It looks to me that _create_control() somehow failed in your
situation. I suspect nbsd_get_dm_major() code which gets called by
_control_device_number() to determine major#.
Note that these functions are NetBSD specific part in lvm2 code.

external/gpl2/lvm2/dist/libdm/ioctl/libdm-nbsd-iface.c
 ...
 198 /* Open control device if doesn't exist create it. */
 199 static int _open_control(void)
 200 {
 201         char control[PATH_MAX];
 202         uint32_t major = 0, minor = 0;
 203
 204         if (_control_fd != -1)
 205                 return 1;
 206
 207 #ifdef RUMP_ACTION
 208         rump_init();
 209 #endif
 210         snprintf(control, sizeof(control), "%s/control", dm_dir());
 211
 212         if (!_control_device_number(&major, &minor))
 213                 log_error("Is device-mapper driver missing from kernel?");
 214
 215         if (!_control_exists(control, major, minor) &&
 216             !(control, major, minor)) <-------- here
 217                 goto error;
 218
 219         if ((_control_fd = open(control, O_RDWR)) < 0) {
 220                 log_sys_error("open", control);
 221                 goto error;
 222         }
 223
 224         return 1;
 225
 226 error:
 227         log_error("Failure to communicate with kernel
device-mapper driver.");
 228         return 0;

>
>  Need to dig deeper...
>
>  Martin
>


Home | Main Index | Thread Index | Old Index