Messages in this thread | | | Date | Mon, 17 Nov 2003 19:15:13 +0000 | From | viro@parcelfa ... | Subject | Re: Is initramfs freed after kernel is booted? |
| |
On Mon, Nov 17, 2003 at 09:33:59PM +0300, Andrey Borzenkov wrote: > On Monday 17 November 2003 21:03, viro@parcelfarce.linux.theplanet.co.uk > wrote: > > On Mon, Nov 17, 2003 at 12:50:34PM -0500, Chris Friesen wrote: > > > viro@parcelfarce.linux.theplanet.co.uk wrote: > > > >On Mon, Nov 17, 2003 at 11:06:48AM -0500, Chris Friesen wrote: > > > >>Anyone know why it overmounts rather than pivots? > > > > > > > >Because amount of extra code you lose that way takes more memory than > > > >empty roots takes. > > > > > > > >Remove whatever files you don't need and be done with that. > > > > > > How do you remove files from the old rootfs after the new one has been > > > mounted on top of it? > > > > You do that before ;-) > > would the following work? > > pivot_root . /initramfs > cd /initramfs && rm -rf *
No. pivot_root() will not move the absolute root of tree elsewhere.
> ?? doing it before is rather hard ... you apparently still need something to > execute your mounts :)
You do, but you can trivially call unlink() on the executable itself. It will be freed after it does exec() of final /sbin/init...
Alternatively, you could mkdir /root mount final root on /root
chdir("/root"); mount("/", "initramfs", NULL, MS_BIND, NULL); mount(".", "/", NULL, MS_MOVE, NULL); chroot("."); execve("/sbin/init", ...)
and have init scripts do rm -rf /initramfs/*; umount /initramfs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |