What is the use of /lib/init/rw in Debian?
As others point out (this would have been a comment on their replies, but grew too long to fit the comment box) this is used by some initscripts, generally during the boot process, when your other filesystems may be read-only or even not yet mounted at all.
The filesystem is left mounted after startup has completed as initscripts that write there may be run at other times (if you manually restart a service, or switch runlevels). You should not force it to unmount in case the device/filesystem /lib/init
is on becomes readonly. It does not consume any appreciable resource when not actually storing data so is not a performance concern.
While I do not see any harm in using it for your own scripts if your scripts are well tested and can be guaranteed not to completely fill it such that initscripts can't write there when they need to, you would be safer to create your own tmpfs
mount for this purpose (you can have as many as you like, in theory, and they only consume memory when actually storing data) or just use /tmp
and have that mounted as a tmpfs
filesystem instead of being on disk.
If you do use a tmpfs
filesystem for temporary data, be aware that this will consume memory and if you are low on memory to start with may induce swapping. This is why I generally use a separate mount instead of /tmp
(which is where many processes will put stuff so it is more likely to use more memory long term than my scripts alone). If you have plenty of memory "spare" most of the time this is not an issue though. In the output of free
, top
and similar tools memory used by data held in tmpfs
filesystems is usually counted in the "cached" count - see In Linux, what is the difference between "buffers" and "cache" reported by the free command? for more detail on that.
Edit: I forgot to add... The other reason for creating your own tmpfs
based mount instead of using the one Debian creates for their standard scripts, is that you are making your scripts less reliant on a distribution specific property, meaning you have a little more to change if your scripts are migrated to other configurations.
It is used by initscript requiring a writable namespace at the time /sbin/init is run. Remember, at that time your root partition might very well be readonly.
Anders
Apparently it is used by initscripts at startup see this link