Finish the section about mdconfig(8); and mdmfs(8);. I also

updated a bit the part about FreeBSD 4.X
This commit is contained in:
Marc Fonvieille 2002-12-08 15:59:18 +00:00
parent e8c9249f77
commit 1aa1e1f53a
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=15218

View file

@ -2069,6 +2069,15 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting>
</sect1>
<sect1 id="disks-virtual">
<sect1info>
<authorgroup>
<author>
<firstname>Marc</firstname>
<surname>Fonvieille</surname>
<contrib>Reorganized and enhanced by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Network, Memory, and File-Based File Systems</title>
<indexterm><primary>virtual disks</primary></indexterm>
<indexterm>
@ -2096,14 +2105,21 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting>
different tools for creation and use of file-backed and
memory-based file systems.</para>
<note>
<para>The FreeBSD&nbsp;4.X users will have to use &man.MAKEDEV.8;
to create the required devices. FreeBSD&nbsp;5.0 and later use
&man.devfs.5; to allocate device nodes transparently for the
user.</para>
</note>
<sect2 id="disks-vnconfig">
<title>File-Backed File System under FreeBSD&nbsp;4.X</title>
<indexterm>
<primary>disks</primary>
<secondary>file-backed</secondary>
<secondary>file-backed under FreeBSD&nbsp;4.X</secondary>
</indexterm>
<para>&man.vnconfig.8; configures and enables vnode pseudo-disk
<para>The utility &man.vnconfig.8; configures and enables vnode pseudo-disk
devices. A <firstterm>vnode</firstterm> is a representation
of a file, and is the focus of file activity. This means that
&man.vnconfig.8; uses files to create and operate a
@ -2125,10 +2141,10 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting>
&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput></screen>
</example>
<para>To create a new file system image with vnconfig:</para>
<para>To create a new file system image with &man.vnconfig.8;:</para>
<example>
<title>Creating a New File-Backed Disk with vnconfig</title>
<title>Creating a New File-Backed Disk with <command>vnconfig</command></title>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
5120+0 records in
@ -2152,10 +2168,10 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<title>File-Backed File System under FreeBSD&nbsp;5.X</title>
<indexterm>
<primary>disks</primary>
<secondary>file-backed</secondary>
<secondary>file-backed under FreeBSD&nbsp;5.X</secondary>
</indexterm>
<para>&man.mdconfig.8; is the utility used to configure and enable
<para>The utility &man.mdconfig.8; is used to configure and enable
memory disks, &man.md.4;, under FreeBSD&nbsp;5.X. To use
&man.mdconfig.8;, you have to load &man.md.4; module or to add
the support in your kernel configuration file:</para>
@ -2171,17 +2187,17 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<para>To mount an existing file system image:</para>
<example>
<title>Using mdconfig to mount an Existing File System
<title>Using <command>mdconfig</command> to mount an Existing File System
Image under FreeBSD&nbsp;5.X</title>
<screen>&prompt.root; <userinput>mdconfig -a -t vnode -f <replaceable>diskimage</replaceable> -u <replaceable>0</replaceable></userinput>
&prompt.root; <userinput>mount /dev/md<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput></screen>
</example>
<para>To create a new file system image with mdconfig:</para>
<para>To create a new file system image with &man.mdconfig.8;:</para>
<example>
<title>Creating a New File-Backed Disk with mdconfig</title>
<title>Creating a New File-Backed Disk with <command>mdconfig</command></title>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
5120+0 records in
@ -2199,6 +2215,13 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4846 2 4458 0% /mnt</screen>
</example>
<para>If you do not specify the unit number with the
<option>-u</option> option, &man.mdconfig.8; will use the
&man.md.4; automatic allocation to select an unused device.
The name of the allocated unit will be output on stdout like
<devicename>md4</devicename>. For more details about
&man.mdconfig.8;, please refer to the manual page.</para>
<para>The utility &man.mdconfig.8; is very useful, however it
asks many command lines to create a file-backed file system.
FreeBSD&nbsp;5.0 also comes with a tool called &man.mdmfs.8;,
@ -2208,28 +2231,38 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
if you want to create and mount the same file system image as
above, simply type the following:</para>
<screen>&prompt.root; <userinput>mdmfs -F <replaceable>newimage</replaceable> -s <replaceable>5</replaceable>m md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
5120+0 records in
5120+0 records in
5120+0 records out
&prompt.root; <userinput>mdmfs -F <replaceable>newimage</replaceable> -s <replaceable>5</replaceable>m md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput>
&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4846 2 4458 0% /mnt</screen>
<para>For more details about &man.mdmfs.8;, please refer to
the manual page.</para>
<para>If you use the option <option>md</option> without unit
number, &man.mdmfs.8; will use &man.md.4; auto-unit feature to
automatically select an unused device. For more details
about &man.mdmfs.8;, please refer to the manual page.</para>
</sect2>
<sect2 id="disks-md">
<title>md: Memory File System</title>
<sect2 id="disks-md-freebsd4">
<title>Memory-Based File System under FreeBSD&nbsp;4.X</title>
<indexterm>
<primary>disks</primary>
<secondary>memory file system</secondary>
<secondary>memory file system under FreeBSD&nbsp;4.X</secondary>
</indexterm>
<para><devicename>md</devicename> is a simple, efficient means to create memory
file systems.</para>
<para>The &man.md.4; driver is a simple, efficient means to create memory
file systems under FreeBSD&nbsp;4.X. &man.malloc.9; is used
to allocate the memory.</para>
<para>Simply take a file system you have prepared with, for
example, &man.vnconfig.8;, and:</para>
<example>
<title>md Memory Disk</title>
<title>md Memory Disk under FreeBSD&nbsp;4.X</title>
<screen>&prompt.root; <userinput>dd if=<replaceable>newimage</replaceable> of=/dev/md<replaceable>0</replaceable></userinput>
5120+0 records in
@ -2239,6 +2272,86 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mnt</screen>
</example>
<para>For more details, please refer to &man.md.4; manual
page.</para>
<sect2 id="disks-md-freebsd5">
<title>Memory-Based File System under FreeBSD&nbsp;5.X</title>
<indexterm>
<primary>disks</primary>
<secondary>memory file system under FreeBSD&nbsp;5.X</secondary>
</indexterm>
<para>The same tools are used for memory-based and file-backed
file systems: &man.mdconfig.8; or &man.mdmfs.8;. The storage
for memory-based file system is allocated with
&man.malloc.9;.</para>
<example>
<title>Creating a New Memory-Based Disk with
<command>mdconfig</command></title>
<screen>&prompt.root; <userinput>mdconfig -a -t malloc -s <replaceable>5</replaceable>m -u <replaceable>1</replaceable></userinput>
&prompt.root; <userinput>newfs -U md<replaceable>1</replaceable></userinput>
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
with soft updates
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
&prompt.root; <userinput>mount /dev/md<replaceable>1</replaceable> <replaceable>/mnt</replaceable></userinput>
&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4846 2 4458 0% /mnt</screen>
</example>
<example>
<title>Creating a New Memory-Based Disk with
<command>mdmfs</command></title>
<screen>&prompt.root; <userinput>mdmfs -M -s <replaceable>5</replaceable>m md<replaceable>2</replaceable> <replaceable>/mnt</replaceable></userinput>
&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mnt</screen>
</example>
<para>Instead of using a &man.malloc.9; backed file system, it is
possible to use swap, for that just replace
<option>malloc</option> with <option>swap</option> in the
command line of &man.mdconfig.8;. The &man.mdmfs.8; utility
by default (without <option>-M</option>) creates a swap-based
disk. For more details, please refer to &man.mdconfig.8;
and &man.mdmfs.8; manual pages.</para>
</sect2>
<sect2>
<title>Detaching a Memory Disk from the System</title>
<indexterm>
<primary>disks</primary>
<secondary>detaching a memory disk</secondary>
</indexterm>
<para>When a memory-based or file-based file system
is not used, you should release all resources to the system.
The first thing to do is to unmount the file system, then use
&man.mdconfig.8; to detach the disk from the system and release
the resources.</para>
<para>For example to detach and free all resources used by
<filename>/dev/md4</filename>:</para>
<screen>&prompt.root; <userinput>mdconfig -d -u <replaceable>4</replaceable></userinput></screen>
<para>It is possible to list information about configured
&man.md.4; devices in using the command <command>mdconfig
-l</command>.</para>
<para>For FreeBSD&nbsp;4.X, &man.vnconfig.8; is used to detach
the device. For example to detach and free all resources
used by <filename>/dev/vn4</filename>:</para>
<screen>&prompt.root; <userinput>vnconfig -u vn<replaceable>4</replaceable></userinput></screen>
</sect2>
</sect1>