Bug #1565

vinum root mount cannot be found

Added by rumcic about 5 years ago. Updated over 4 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:alexh% Done:

0%

Category:-
Target version:-

Description

Vinum cannot read the configuration off of partitions ATM during boot since it
starts accessing (or more precisely tries to) the slices and partitions before
they are registered with devfs (before I can see things like "da0: type 0xa5,
start 63, end = 312581807, size 312581745 : OK" in dmesg which is printed by
ckeck_part() which is called by mbrinit() in sys/kern/subr_diskmbr.c).

Talked with Simon (corecode) on IRC and according to him, it seems vinuminit
needs to be run after disk probing (which currently does not).

P.S.: Also while playing around with vinum, produced the following patchset
which maybe could be useful?
1. When calling init_drive() from read_drive_label() change the static 0 with
the verbose var that is passed to read_drive_label().
2. Changed the way the drives are parsed in vinum_scandisk() and removed the
second iteration of detecting vinum partitions ... everything should be done
in the first iteration? If you provide the slice and maybe even the partitions
it should check that, otherwise it should check everything including the
compatibility slice?
--
Regards,
Rumko

vinum.patch Magnifier (3.38 KB) rumcic, 10/10/2009 05:22 PM

History

#1 Updated by alexh almost 5 years ago

It seems vinum tries to use /dev before it is available. A possible workaround
might be to do the following change to sys/dev/raid/vinum/vinumio.c:
In open_drive(), remove the conditional branch "if (rootdev)" and only leave
the content of the else branch.
This will remove dependance on /dev, and might solve the issue.

Cheers,
Alex Hornung

#2 Updated by tuxillo almost 5 years ago

Grab!

#3 Updated by tuxillo almost 5 years ago

Hi Alex,

The workaround you specified won't work as pointed in issue1653 (it tries to
assign a synthetized vnode which won't work).

We need to find another solution.

Cheers,
Antonio Huete

#4 Updated by alexh over 4 years ago

I'll take a closer look at this. The right solution seems to be to implement
some synthetic vnode magic within devfs. I'm a bit busy these days, though, so
it might take a while :)

Cheers,
Alex Hornung

#5 Updated by alexh over 4 years ago

This issue should be fixed by 4c83c1d38c3f000618b4d9d46f6e5a50a1655af8.

It is important to note that vfs.root.mountfrom in /boot/loader.conf has to be
set to "<fs>:vinum/vinumroot".

Cheers,
Alex Hornung

#6 Updated by rumcic over 4 years ago

Vinum root mounts do work now, but the patch from this issue (vinum.patch) was
still needed in order for vinum to find my vinum slice (had
vinum.drives="/dev/da1s1h" in my loader.conf).

#7 Updated by rumcic over 4 years ago

vinum.patch commited in d48458589f0c910aa4909428ec49ccef5b3f35e0, nothing left
in this issue

Also available in: Atom PDF