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>