'make installkernel' succeeding on read-only fs?

Alexander Best arundel at freebsd.org
Sun Nov 20 12:28:02 UTC 2011


On Sun Nov 20 11, Denise H. G. wrote:
> 
> On 2011/11/19 at 19:24, Alexander Best <arundel at freebsd.org> wrote:
> > 
> > hi there,
> > just stumbled upon this little detail:
> > 
> > 1) have "/" mounted read-only
> > 2) 'make buildkernel'
> > 3) 'make installkernel && echo "success"'
> >    -> this will fail
> > 4) 'mount -uw /'
> > 5) 'make installkernel && echo "success"'
> >    -> this will succeed
> > 6) 'mount -ur /'
> > 7) 'make installkernel && echo "success"'
> >    -> this will succeed. why?
> 
> According to mount(8), 'mount -ur /' will fail if / is already mounted
> read-write with any files currently opened by some processes. I think
> this might be your case.

i'd don't think so:

otaku% sudo mount -uw /
otaku% echo $?
0
otaku% sudo mount -ur /
otaku% echo $?         
0

...also 'mount -p' reports "/" to be read-only again.

...also during 7), mkdir(1) returns an error that "/" isn't writable. it's
install(1) that claims the kernel was successfully installed into /boot/kernel,
although installation of the kernel didn't succeed.

i don't think this is an install(1) issue, since in 3), install(1) returns an
error. i think in 7), install(1)'s output gets somehow redirected to /dev/null,
and its return value isn't being preserved.

i'll try to use 'mount -ufr /' in 6) and see, if that has any impact. also
after 6) i'll try to run install(1) manually to see, whether it actually
reports an error (then the build(7) facility is to blame) or not (in which case
there's a problem with install(1) itself).

cheers.
alex

> 
> > 
> > cheers.
> > alex
> > ................ 
> 
> 
> 
> -- 
> If you've got them by the balls,
> their hearts and minds will follow.


More information about the freebsd-toolchain mailing list