关于Linux启动过程的疑惑
这几天被linux的启动弄的纠结的很,
在网上搜索了资料,大概的启动过程就是,(下面是我自己的理解,如有错误请指出)
boot loader加载 内核 和 initrd 的镜像文件到内存,然后内核挂载虚拟根文件系统,挂载之后执行各种各样的初始化操作,其中,会读取/etc/fstab 进行真正的根文件系统的挂载.
------------------------------------------------------------
下面是我疑惑的地方:
我在debian中执行df -h
显示
/dev/sda1 312m 112m 185m 38% /
之后我将/etc/fstab中挂载根目录的地方注释掉,重启
神奇的是竟然能重启成功
执行
df -h
显示
rootfs 312m 112m 185m 38% /
(通过对比,我发现虽然这里显示的是rootfs,我的sda1还是成功挂载到根目录的)
我猜测可能是因为grub引导时传给kernel的参数:
linux /boot/vmlinuz-2.6.31-17-generic root=UUID=f1bafdd4-73c2-44b2-9a62-d50a2da4d019 ro splash
可是这里明明是以ro方式挂载的,我在启动时候执行mount命令,显示的是:
rootfts on / type rootfs (rw)
如果是因为grub的关系才挂载成功的,那么Linux究竟什么时候将ro转化成rw的呢?