IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

BSD的虚拟磁盘技术

BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 2010-06-18 13:31:55 累计浏览 2,548 次
本机暂存

去掉开机自动加载虚拟磁盘并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。

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. 如何选择开源许可证? (累计阅读 4,944)
  2. 修改系统最大文件句柄数 (累计阅读 4,918)
  3. 我和Linux (累计阅读 4,201)
  4. MySQL在切换binlog时会阻塞更新 (累计阅读 4,080)
  5. 重负荷nginx的几个关键配置参数 (累计阅读 3,940)
  6. ulimit问题及其影响 (累计阅读 3,672)
  7. pdflush 相关 (累计阅读 3,285)
  8. NAT网关安装笔记 (累计阅读 2,968)
  9. win7 开启telnet命令 (累计阅读 2,947)
  10. 使用Aspersa洞悉Linux系统软硬件配置 (累计阅读 2,865)