Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Nov 2011 01:37:43 +0800
From:      darcsis@gmail.com (Denise H. G.)
To:        Alexander Best <arundel@freebsd.org>
Cc:        freebsd-toolchain@freebsd.org
Subject:   Re: 'make installkernel' succeeding on read-only fs?
Message-ID:  <87sjlehh94.fsf@pluton.xbsd.name>
In-Reply-To: <20111120181059.GA13718@freebsd.org> (Alexander Best's message of "Sun, 20 Nov 2011 18:10:59 %2B0000")
References:  <20111119112418.GA42980@freebsd.org> <8739djf77y.fsf@pluton.xbsd.name> <20111120122801.GA51958@freebsd.org> <20111120181059.GA13718@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 2011/11/21 at 02:10, Alexander Best <arundel@freebsd.org> wrote:
> 
> On Sun Nov 20 11, Alexander Best wrote:
>> On Sun Nov 20 11, Denise H. G. wrote:
>> > 
>> > On 2011/11/19 at 19:24, Alexander Best <arundel@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).
> 
> MYSTERY SOLVED! ;)
> 
> install gets executed with the -p option, which implies the -C option. this
> means that install will do a comparison of the installed kernel in /boot/kernel
> and the one in /usr/obj, before actually executing. during the first
> installkernel invocation, the files differ, so install complains. during the
> second invocation the files don't differ. that's why install succeeds, although
> "/" is mounted read-only. ;)
> 

Great. I used to explicitly alias 'install' to 'install -C' in
/etc/make.conf, which seems to accelerate installation processes.

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



-- 
The first page the author turns to upon receiving an
advance copy will be the page containing the worst
error.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87sjlehh94.fsf>