标题:BSD的虚拟磁盘技术 出处:BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 时间:Thu, 17 Jun 2010 12:06:52 +0000 作者:ArthurXF 地址:http://www.bizeway.net/read.php/557.htm 内容: 去掉开机自动加载虚拟磁盘并mount到/var,网上有资料说: It seems that you have set "varmfs=YES" in you /etc/rc.conf or /var is not popular writable 然后按照下面的操作就可解决。 vi /etc/rc.conf varmfs="NO" populate_var="NO"# mdconfig -a -t swap -s 30M 这就会在虚拟内存中申请30M空间,并创建虚拟磁盘,使用的虚拟设备为第 一个md设备md0,如果系统中的md0设备已经被占用,那么mdconfig就依序向后寻找下一个空余的md设备,并创建它。由于mdconfig能自 动创建新的设备,这样就解决了在内核配置文件指定伪设备数量的问题。 也可以使用-u指定使用的md伪设备的序号,例如下列命令将创建md10,并使用它作为虚拟磁盘设备: # mdconfig -a -t swap -s 30M -u 10 上面的命令都是使用虚拟内存空间作为数据存储空间,是由swap参数指定的。同样,使用mdconfig也能从内核空间中创建虚拟磁盘,此时-t指定的存储类型参数为malloc,这告诉内核使用内核的MALLOC方法申请内存。 # mdconfig -a -t malloc -s 30M 这种方法就相当于老的md设备的申请内存的方法,但显然更为灵活,因为可以在具体使用过程中申请内存和设备,这是因为FreeBSD 5.0的内核允许更灵活的使用MALLOC内存申请方式。当然,一般还是主要使用swap申请虚拟空间的内存。 由于mdconfig和伪设备md将完全代替vnconfig和伪设备vn,那么使用mdconfig也能创建使用文件作为虚拟磁盘的与vn兼容的方式,这需要指定存储类型参数为vnode,并使用 -f指定具体的存储数据的物理文件名字。 # mdconfig -a -t vnode -f imagefile -s 30M 在使用mdconfig配置好虚拟磁盘之后,就可以使用disklabel、newfs、mount等管理虚拟磁盘。而在不需要这些虚拟磁盘的时候,就可以卸载相应的文件系统,并使用mdconfig删除指定的磁盘等。 # mdconfig -l 使用参数”-l”,则mdconfig列出系统中所有的虚拟磁盘设备。 # mdconfig -d -u 0 为了删除指定了磁盘,需要使用”-d"参数,而使用"-u 0”则指定删除序号为0的虚拟磁盘,即md0。 Generated by Bo-blog 2.0.3 sp1