Posted Nov 24, 2006 1:43 UTC (Fri) by ldo (subscriber, #40946)
[Link]
You're right! I checked the initrd on my SuSE 10.0 system, and it is in fact a compressed cpio archive! No wonder I had no luck trying to mount it as a loopback image :).
Another thought, though: with the old loopback initrd, all the memory used was freed after the pivot_root and the dismount. But with the initramfs mechanism putting things into rootfs, those things stay there, taking up memory, being only hidden when the real root filesystem is mounted on /. Does that make sense?
Re: the initrd is actually an initramfs
Posted Nov 26, 2006 0:11 UTC (Sun) by landley (guest, #6789)
[Link]
The switch_root utility essentially does:
cd newroot
find / -xdev | xargs rm -rf
mount --move . /
chroot . /sbin/init
This frees up the space used by the initramfs by deleting all the files
before switching to the new root device. (With ramfs, deleting the file
frees the memory.)
The reason you can't do this in a shell script is after the "rm -rf" step,
the shell script hasn't got a "mount" command to run anymore...
Re: the initrd is actually an initramfs
Posted Nov 27, 2006 6:24 UTC (Mon) by ldo (subscriber, #40946)
[Link]
Of course, you wouldn't need a special boot-time utility for this, you could do the cleanup at your leisure afterwards, if only something like this were permissible:
mount -t rootfs rootfs /mnt
But this appears to be ruled out by the NOUSER flag...