让linux开机将文件系统挂载为只读

来源:互联网 发布:php跟java哪个好学 编辑:程序博客网 时间:2024/06/05 11:35

2008-01-09 14:33

今天!由于种种原因,种种因素,我要做这么一件变态的事情——让linux开机就把/分区和/boot分区挂载为只读。
       既然这样当然是修改/etc/fstab了,将/和/boot的属性列的default改为ro,重启机器!结果......
       结果当然是失败了,否则我为什么要写这篇文章。结果是/boot成功挂载为readonly了,但是/还是rw。为什么尼?肯定是系统初始化的时候由于某种原因重新挂载了一次/分区。查查看吧,cd/etc/,这下面有一个inittab看起来很可疑,打开来看看,没有什么特别的除了一句话:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
好吧,打开看看/etc/rc.d/rc.sysinit这个文件,哇!太长老!!脑瓜仁儿疼,直接搜索remount,果然被我找到:
action $"Remounting root filesystem in read-write mode: " mount -n -o remount,rw /
赶快把rw改为ro,保存,重启。成功了!!但是在初始化的时候出现很多提示,由于机器配置太高,刷一下就过去了,啥也没看清,就恍惚记住几个字:什么readonly什么failed。看来在系统初始化的时候还是要对/分区进行写操作的(我已经关闭了日志系统),不过系统还是正常起来了,但是!mysql启动失败......
Starting MySQL...................................          [failed]
这东西也要写?!这可不行,mysql失败了对我来说就没有意义了。就在这时候,灵异的事情发生了!我输入命令:
/etc/init.d/mysql start
Starting MySQL                                            [ OK ]
哎呀!!跟我过不去是不是!手工输入命令就起来了!运行一切正常!现在/还是read only的状态。
后来我尝试了把rc.sysinit文件改回来,然后在rc3.d中(我的默认启动级别是3)加入一个启动脚本,S99remountfs,mysql的启动脚本是S94mysql,在S99remountfs之前,里面写上了这样几行:
/etc/init.d/mysql stop
mount / -o remount,ro
/etc/init.d/mysql start
结果还是一样的,哎!!看来只好把mysql根数据库文件一起装在别的分区了。(我现在的mysql是装在/分区的,但数据文件我用链接转移到了/mydata分区,这又是一段历史了)但是我的mysql安装文件是rpm包,还要下载源代码版本的重新编译了,哎~~麻烦!希望能够有办法解决这个问题。等我解决了我会发上来的,本人记性不好!

原创粉丝点击