svn commit: r297690 - head/sys/boot/forth
Maxim Sobolev
sobomax at FreeBSD.org
Fri Apr 8 05:44:59 UTC 2016
Hi Bruce, thanks for the input! I will see if I can move that piece into
loader.8 and extend it a bit from the source "documentation".
-Max
On Thu, Apr 7, 2016 at 8:38 PM, Bruce Evans <brde at optusnet.com.au> wrote:
> On Fri, 8 Apr 2016, Maxim Sobolev wrote:
>
> Log:
>> Document vfs.root.mountfrom.
>>
>> Reviewed by: imp, wblock
>>
>
> The format of this variable is still undocumented, except in the source
> code.
>
> Modified: head/sys/boot/forth/loader.conf.5
>>
>> ==============================================================================
>> --- head/sys/boot/forth/loader.conf.5 Fri Apr 8 00:01:19 2016
>> (r297689)
>> +++ head/sys/boot/forth/loader.conf.5 Fri Apr 8 00:24:21 2016
>> (r297690)
>>
>
> This variable is (partly) documented in a different wrong file than the
> source file. It isn't a loader option. It is a kernel tunable. No
> other kernel tunables are documented in loader.conf.5. Some of them are
> documented in loader.8 (not really the right place --- loader is just 1
> way of setting them, and isn't a way of reading or interpreting them).
> loader.8 also documents most loader options as BUILTIN ENVIRONMENT
> VARIABLES. It does this much better than loader.conf.5. It documents
> 30 such options and only has a couple of ordering errors in the list,
> whie loader.conf.5 documents 15 such options in random order. About
> half of the 15 are in both, and their descriptions give quite different
> details in a quite different style (too much double quoting in
> loader.conf.5). loader.8 documents only 16 tunables, with more ordering
> errors that for options.
>
> @@ -112,6 +112,31 @@ The name must be a subdirectory of
>> that contains a kernel.
>> .It Ar kernel_options
>> Flags to be passed to the kernel.
>> +.It Ar vfs.root.mountfrom
>> +Specify the root partition to mount.
>> +For example:
>> +.Pp
>> +.Dl vfs.root.mountfrom="ufs:/dev/da0s1a"
>>
>
> The source code gives the details needed to actually use this variable
> without guessing from a single example. It gives both an informal and
> formal description:
>
> X /*
> X * The root filesystem is detailed in the kernel environment variable
> X * vfs.root.mountfrom, which is expected to be in the general format
> X *
> X * <vfsname>:[<path>][ <vfsname>:[<path>] ...]
> X * vfsname := the name of a VFS known to the kernel and capable
> X * of being mounted as root
> X * path := disk device name or other data used by the filesystem
> X * to locate its physical store
> X *
> X * If the environment variable vfs.root.mountfrom is a space separated
> list,
> X * each list element is tried in turn and the root filesystem will be
> mounted
> X * from the first one that suceeds.
> X *
> X * The environment variable vfs.root.mountfrom.options is a comma
> delimited
> X * set of string mount options. These mount options must be parseable
> X * by nmount() in the kernel.
> X */
>
> I thought that these careful descriptions were broken using sbufs which
> accidentally (?) changed the separator from space to newline. However,
> I can' find any trace of this in my config files -- they now just use
> a space. I might have just been confused by old kernels not supporting
> lists.
>
> I mainly use this feaature to work around the renaming of ad to ada and
> loss of the compatibility support for this. My lists look like
> "ufs:ad4s3a ufs:ada0s3a ufs:ad0s2a". Old kernels don't support lists,
> but they also don't support ada; they use the first entry and this works
> although the documentation says it shouldn't (the comment says that
> the format is <vfsname>:[<path>] and doesn't mention field separators or
> trailing garbage). FreeBSD-11 doesn't supprt ad, but it supports lists;
> so it uses the second entry. This works on 2 systems with similar disk
> numbering. The third entry is for another system with different disk
> numbering an no ad4. This almost never works -- with old kernels, the
> list doesn't work, and with new kernels the list works and ada0 exists
> and ada0s3a exists, but it is not the right boot partition. This works
> with intermediate kernels with lists but no ada0, so that the third
> entry is used.
>
> Bruce
>
>
More information about the svn-src-head
mailing list