[原创]FreeBSD什么时候会为/var和/tmp创建内存盘_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3347 | 回复: 0   主题: [原创]FreeBSD什么时候会为/var和/tmp创建内存盘        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-9-28 8:57:59 | [全部帖] [楼主帖] 楼主

在移动介质上运行FreeBSD,包括使用FreeBSD的官方光盘映像和U盘映像来安装系统,进入shell查看,都会发现/var和/tmp使用了内存盘,以防止程序需要读写这两个分区。

北京联动北方科技有限公司

那么是哪个配置导致FreeBSD会使用内存盘呢?

我基本上查看了所有的启动脚本,都没有发现配置所在的地方。

最后实在没有办法,在/etc/default/rc.conf中逛了一圈,发现在两个配置选项:

tmpmfs和varmfs:

tmpmfs="AUTO" # Set to YES to always create an mfs /tmp, NO to never
tmpsize="20m" # Size of mfs /tmp if created
tmpmfs_flags="-S" # Extra mdmfs options for the mfs /tmp
varmfs="AUTO" # Set to YES to always create an mfs /var, NO to never
varsize="32m" # Size of mfs /var if created
varmfs_flags="-S" # Extra mount options for the mfs /var


这两者默认的配置是AUTO,后面说明,设置为YES,表示将使用内存盘来挂载这两个分区,设置为NO,表示不使用内存盘。

那设置为AUTO呢?这个说明没有解释。

接着看这两个配置的脚本,在中间部分有个描述:

# If we do not have a writable /tmp, create a memory
# filesystem for /tmp. If /tmp is a symlink (e.g. to /var/tmp,
# then it should already be writable).
#


tmp的脚本比较简单一些:

case "${tmpmfs}" in
[Aa][Uu][Tt][Oo])
if _tmpdir=$(mktemp -d -q /tmp/.diskless.XXXXXX); then
rmdir ${_tmpdir}
else
if [ -h /tmp ]; then
echo "*** /tmp is a symlink to a non-writable area!"
echo "dropping into shell, ^D to continue anyway."
/bin/sh
else
mount_tmpmfs
fi
fi
;;
*)
if checkyesno tmpmfs; then
mount_tmpmfs
fi
;;
esac


综合说明,结论是:当类型为auto的时候,只检测到目录只读,就会创建一个md内存盘,并挂载到/tmp去。

/var稍微麻烦一些,但是原理差不多,只不是/var需要做的工作要多一些。

该贴被wulcan编辑于2014-9-28 9:06:44

该贴由hui.chen转至本版2014-11-5 17:04:54




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论