The solution for the problem is easier than expected. Appearantly in baselayout 2, there is a service called root
that just remounts the root file-system read-write.
The reason why I didn’t have this service in my boot runlevel is probably that I have updated to baselayout 2 rather early, and probably this service (and several others) was introduced later. The following services are in my boot runlevel now, and everything works:
bootmisc
consolefont
device-mapper
dmcrypt
fsck
hostname
hwclock
keymaps
localmount
modules
net.lo
netmount
network
procfs
root
svscan
swap
sysctl
sysfs
termencoding
urandom
There are actually two root filesystems in most normal Linux boot processes.
The real root filesystem is located in a partition or logical volume on a physical disk - it is not loaded into RAM as a filesystem, though blocks of it will exist in cache in RAM when they have been accessed recently. Updates to this filesystem are written to disk as they happen. The root filesystem may also be on a network resource, though in this case it is usually held in a partition/volume/file on a physical disk somewhere too.
The initial root filesystem is loaded into RAM along with the kernel very early in the boot process. This is a small filesystem found in a file under /boot
containing just the kernel modules/drivers, scripts, and other utilities that might be required to find, verify and mount the real root filesystem (RAID and LVM modules for instance, or NFS modules/tools if you mount root over the network). Once the real root filesystem is mounted this special "initial" one is thrown away. The initrd
(which stands for INITial Ram Disk) will be rebuilt when significant changes are made, such as installing a new kernel package. It is not (usually) updated by other actions.
The above is true for most Linux installs, though it can be quite different for special cases such as some live systems on writeable CDs/DVDs or USB drives.
but where does directory / exist.. ?
It doesn't physically. Unlike other mount points which are directories in other filesystems (such as directories under /mnt
or /media
, though they can be practically anywhere) the mount point for /
has no physical presence and is a virtual object held only in the kernel's internals. The filesystem mounted as /
on the other hand is one of the two listed above - an initrd
file in memory during the early boot process or a filesystem on a physical disk or network resource at other times (except, as mentioned above, in some special cases).
Best Answer
It says "Root filesystem" because there can be many other filesystems that are mounted at boot time. Root or
/
is like the C-Drive on Windows. A filesystem is mounted, when it is accessible to the higher level system functions via it's mountpoint.About the process of mounting... I don't know how technical an answer you want so please don't feel offended by this over-simplification. This is how I would explain it to my customers: Plugging in a Flashdrive.
/dev/sdb
)/dev/sdb
and find a partition table with on primary partition/dev/sdb1
)/dev/sdb1
and recognizes a FAT32 file system/dev/sdb1
to a new mountpoint (like/media/pendrive/
)The content of the device (raw data) is just a bunch of zeros and ones. When mounting a device, the system adds something like a "read/write-filter" on top of those zeros and ones, that translates the zeros and ones to actual files and vice versa.
For example: When you save "Hello World" to text file at
/media/pendrive
, then the filter translates this according to the file system's rules and in the end a series of zeros and ones and writes to/dev/sdb1
.