Editorial review of Attaching and Detaching Existing Images.

More commits to come to finish review of this chapter.

Sponsored by:	iXsystems
This commit is contained in:
Dru Lavigne 2014-04-24 18:24:48 +00:00
parent 2bb2a3da35
commit b66ddefad8
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44647

View file

@ -1989,44 +1989,67 @@ scsibus1:
</info> </info>
<para>In addition to physical disks, &os; also supports <para>In addition to physical disks, &os; also supports
the creation and use of memory disks.</para> the creation and use of memory disks. One possible use for a
memory disk is to access the contents of an
<acronym>ISO</acronym> file system without the overhead of first
burning it to a <acronym>CD</acronym> or <acronym>DVD</acronym>,
then mounting the <acronym>CD/DVD</acronym> media.</para>
<para>In &os;, the &man.md.4; driver is used to provide support
for memory disks. The <filename>GENERIC</filename> kernel
includes this driver. When using a custom kernel
configuration file, ensure it includes this line:</para>
<indexterm> <programlisting>device md</programlisting>
<primary>disks</primary>
<secondary>memory</secondary>
</indexterm>
<sect2 xml:id="disks-mdconfig"> <sect2 xml:id="disks-mdconfig">
<title>Attaching and Detaching Existing Images</title> <title>Attaching and Detaching Existing Images</title>
<indexterm> <indexterm>
<primary>disks</primary> <primary>disks</primary>
<secondary>file-backed</secondary> <secondary>memory</secondary>
</indexterm> </indexterm>
<para>&man.mdconfig.8; is used to configure and enable memory <para>To mount an existing file system image, use
disks, &man.md.4;, under &os;. To use &man.mdconfig.8;, <command>mdconfig</command> to specify the name of the
&man.md.4; must be first loaded. When using a custom kernel <acronym>ISO</acronym> file and a free unit number. Then,
configuration file, ensure it includes this line:</para> refer to that unit number to mount it on an existing mount
point. Once mounted, the files in the <acronym>ISO</acronym>
<programlisting>device md</programlisting> will appear in the mount point. This example attaches
<replaceable>diskimage.iso</replaceable> to the memory device
<para>&man.mdconfig.8; supports several types of memory backed <filename>/dev/md0</filename> then mounts that memory device
virtual disks: memory disks allocated with &man.malloc.9; and on <filename>/mnt</filename>:</para>
memory disks using a file or swap space as backing. One
possible use is the mounting of <acronym>CD</acronym>
images.</para>
<para>To mount an existing file system image:</para>
<example>
<title>Using <command>mdconfig</command> to Mount an Existing
File System Image</title>
<screen>&prompt.root; <userinput>mdconfig -f <replaceable>diskimage.iso</replaceable> -u <replaceable>0</replaceable></userinput> <screen>&prompt.root; <userinput>mdconfig -f <replaceable>diskimage.iso</replaceable> -u <replaceable>0</replaceable></userinput>
&prompt.root; <userinput>mount /dev/md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput></screen> &prompt.root; <userinput>mount /dev/md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
</example>
<para>If a unit number is not specified with
<option>-u</option>, <command>mdconfig</command> will
automatically allocate an unused memory device and output
the name of the allocated unit, such
as <filename>md4</filename>. Refer to &man.mdconfig.8;
for more details about this command and its options.</para>
<para>When a memory disk is no
longer in use, its resources should be released back to
the system. First, unmount the file system, then use
<command>mdconfig</command> to detach the disk from the system and
release its resources. To continue this example:</para>
<screen>&prompt.root; <userinput>umount /mnt</userinput>
&prompt.root; <userinput>mdconfig -d -u <replaceable>0</replaceable></userinput></screen>
<para>To determine if any memory disks are still attached to the
system, type <command>mdconfig -l</command>.</para>
</sect2>
<sect2 xml:id="disks-md-freebsd5">
<title>Creating a Memory Disk</title>
<indexterm>
<primary>disks</primary>
<secondary>memory file system</secondary>
</indexterm>
<para>To create a new file system image with <para>To create a new file system image with
&man.mdconfig.8;:</para> &man.mdconfig.8;:</para>
@ -2050,12 +2073,32 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mnt</screen> /dev/md0a 4710 4 4330 0% /mnt</screen>
</example> </example>
<para>If unit number is not specified with <para>For a memory-based file system, <quote>swap
<option>-u</option>, &man.mdconfig.8; uses the backing</quote> should normally be used. This does not mean
&man.md.4; automatic allocation to select an unused device. that the memory disk will be swapped out to disk by default,
The name of the allocated unit will be output to stdout, such but rather that the memory disk will be allocated from a
as <filename>md4</filename>. Refer to &man.mdconfig.8; memory pool which can be swapped out to disk if needed. It is
for more details about.</para> also possible to create memory-based disks which are
&man.malloc.9; backed, but using large malloc backed memory
disks can result in a system panic if the kernel runs out of
memory.</para>
<example>
<title>Creating a New Memory-Based Disk with
<command>mdconfig</command></title>
<screen>&prompt.root; <userinput>mdconfig -a -t swap -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, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&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 4718 4 4338 0% /mnt</screen>
</example>
<para>While &man.mdconfig.8; is useful, it takes several <para>While &man.mdconfig.8; is useful, it takes several
command lines to create a file-backed file system. &os; also command lines to create a file-backed file system. &os; also
@ -2087,58 +2130,6 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<primary>disks</primary> <primary>disks</primary>
<secondary>detaching a memory disk</secondary> <secondary>detaching a memory disk</secondary>
</indexterm> </indexterm>
<para>When a memory-based or file-based file system is no
longer in use, its resources should be released back to
the system. First, 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 by running
<command>mdconfig -l</command>.</para>
</sect2>
<sect2 xml:id="disks-md-freebsd5">
<title>Creating a Memory Disk</title>
<indexterm>
<primary>disks</primary>
<secondary>memory file system</secondary>
</indexterm>
<para>For a memory-based file system, <quote>swap
backing</quote> should normally be used. This does not mean
that the memory disk will be swapped out to disk by default,
but rather that the memory disk will be allocated from a
memory pool which can be swapped out to disk if needed. It is
also possible to create memory-based disks which are
&man.malloc.9; backed, but using large malloc backed memory
disks can result in a system panic if the kernel runs out of
memory.</para>
<example>
<title>Creating a New Memory-Based Disk with
<command>mdconfig</command></title>
<screen>&prompt.root; <userinput>mdconfig -a -t swap -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, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&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 4718 4 4338 0% /mnt</screen>
</example>
<example> <example>
<title>Creating a New Memory-Based Disk with <title>Creating a New Memory-Based Disk with
<command>mdmfs</command></title> <command>mdmfs</command></title>