17.9. 以内存为介质的文件系统

Reorganized and enhanced by Marc Fonvieille.

除了物理磁盘,FreeBSD 还支持创建和使用内存磁盘。内存磁盘的一种可能用途是访问ISO文件系统的内容,而无需先将其刻录到CDDVD,然后安装CD/DVD介质。

在 FreeBSD 中,md(4)驱动程序用于为内存磁盘提供支持。GENERIC内核包含此驱动程序。使用自定义内核配置文件时,请确保它包含以下行:

device md

17.9.1. 连接与解除连接既有的映象档

使用 mdconfig 挂载已经存在的映像文,请指定 ISO 文件和可用单元号。挂载后,ISO中的文件将显示在挂载点中。本示例将diskimage.iso加载到内存设备/dev/md0,然后将该内存设备挂载在/mnt上:

# mdconfig -f diskimage.iso -u 0
# mount -t cd9660 /dev/md0 /mnt

注意:-t cd9660 用于挂载 ISO 格式镜像。如果单元号没有使用-u指定,mdconfig将自动分配一个未使用的存储设备并输出分配的存储单元名,例如 md4。请参阅mdconfig(8)获取该命令的更多详情。

若内存盘不再使用,这些内存应还给系统。首先卸载文件系统,然后使用mdconfig从系统中移除磁盘并释放资源:

# umount /mnt
# mdconfig -d -u 0

使用mdconfig -l查看已挂载的内存盘。

17.9.2. 以内存为介质的文件系统

FreeBSD 还支持从硬盘或内存区域分配要使用的存储的内存磁盘。第一种方法通常称为文件支持的文件系统,第二种方法称为内存支持的文件系统。这两种类都可以使用mdconfig创建。

要创建新的内存支持文件系统,请指定要创建的swap类型和内存磁盘的大小。然后,使用文件系统格式化内存磁盘,并像往常一样装入。本示例在单元1上创建一个 5M 内存磁盘。然后,在装载该内存磁盘之前,使用UFS文件系统格式化该内存磁盘:

# mdconfig -a -t swap -s 5m -u 1
# newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 2752, 5344, 7936
# mount /dev/md1 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md1        4718    4  4338     0%    /mnt

要创建新的文件支持的内存磁盘,请先分配要使用的磁盘区域。本例创建一个大小为 5MB,名为newimage基于文件的内存盘:

# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out

接下来,将该文件附加到内存磁盘,标记内存磁盘并将其格式化为UFS文件系统,装入内存磁盘,并验证文件支持的磁盘的大小:

# mdconfig -f newimage -u 0
# bsdlabel -w md0 auto
# newfs -U md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
 160, 2720, 5280, 7840
# mount /dev/md0a /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md0a       4710    4  4330     0%    /mnt

使用mdconfig创建文件或内存支持的文件系统需要多个命令。FreeBSD 还附带mdmfs,可自动配置内存磁盘,使用UFS文件系统对其进行格式化,并装入该磁盘。例如,使用dd创建新newimage后,此命令等效于运行上面显示bsdlabelnewfsmount命令:

# mdmfs -F newimage -s 5m md0 /mnt

要改用mdmfs创建新的基于内存的内存磁盘,请使用此命令:

# mdmfs -s 5m md1 /mnt

如果未指定单位编号,mdmfs将自动选择未使用的内存设备。有关mdmfs的更多详细信息,请参阅mdmfs(8)

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.