node46.html

来自「Linux系统管理员指南中文手册0.5.zip 中文的哦。」· HTML 代码 · 共 159 行

HTML
159
字号
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds --><HTML><HEAD><TITLE>Mount和unmount</TITLE><META NAME="description" CONTENT="Mounting and unmounting"><META NAME="keywords" CONTENT="sag"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><LINK REL=STYLESHEET HREF="sag.css"></HEAD><BODY LANG="EN" > <A NAME="tex2html877" HREF="node47.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html875" HREF="node41.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html869" HREF="node45.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html879" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html880" HREF="node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR><B> Next:</B> <A NAME="tex2html878" HREF="node47.html">Checking filesystem integrity with </A><B>Up:</B> <A NAME="tex2html876" HREF="node41.html">Filesystems</A><B> Previous:</B> <A NAME="tex2html870" HREF="node45.html">Creating a filesystem</A><BR> <P><H2><A NAME="SECTION00585000000000000000">Mount和unmount</A></H2><A NAME="subsecmount">&#160;</A><P>一个文件系统可以使用之前,必须<b>mount</b>。操作系统然后做一些记录以确认正常。因为UNIX所有的文件在一个目录树中,mount操作的结果使新的文件系统的内容好象在某个已经mount的文件系统的一个已经存在的子目录中。<P>例如,图&nbsp;<A HREF="node46.html#fighdmountroot">4.3</A>显示3个单独的文件系统,每个有其自己的根目录。当后2个文件系统被mount到第一个文件系统的<tt>/home</tt><A NAME="1582">&#160;</A>和<tt>/usr</tt><A NAME="1584">&#160;</A>, 我们得到一个目录树,如图&nbsp;<A HREF="node46.html#fighdmountall">4.4</A>.<P>		<P><A NAME="1230">&#160;</A><A NAME="fighdmountroot">&#160;</A><IMG WIDTH=680 HEIGHT=99 ALIGN=BOTTOM ALT="figure1226" SRC="img7.gif"><BR><STRONG>图4.3:</STRONG> 3个单独的文件系统。<BR><P><P>		<P><A NAME="1430">&#160;</A><A NAME="fighdmountall">&#160;</A><IMG WIDTH=371 HEIGHT=185 ALIGN=BOTTOM ALT="figure1233" SRC="img8.gif"><BR><STRONG>图4.4:</STRONG> <tt>/home</tt><A NAME="1586">&#160;</A>和<tt>/usr</tt><A NAME="1588">&#160;</A>已经mount上。<BR><P><P>上面的mount可能使用如下命令:		<BLOCKQUOTE> <TT><code>$ </code> <I>mount /dev/hda2 /home</I> <BR> <code>$ </code> <I>mount /dev/hda3 /usr</I> <BR> <code>$ </code>		</TT></BLOCKQUOTE><tt>mount</tt><A NAME="1590">&#160;</A>命令使用2个参数。第一个是与包括文件系统的磁盘或分区相关的设备文件。第二个是要mount到的目录。mount以后,这2个文件系统的内容好象是<tt>/home</tt><A NAME="1592">&#160;</A>和<tt>/usr</tt><A NAME="1594">&#160;</A>目录。这样就可以说:<tt>/dev/hda2</tt><A NAME="1596">&#160;</A> <b>被mount到</b> <tt>/home</tt><A NAME="1599">&#160;</A>,<tt>/usr</tt><A NAME="1601">&#160;</A>也同样。要看每个文件系统,就看其被安装的目录,好象它就是在那里。注意设备文件的区别,<tt>/dev/hda2</tt><A NAME="1603">&#160;</A>, 和安装到的目录<tt>/home</tt><A NAME="1605">&#160;</A>。设备文件给出硬盘原始内容的存取,安装到的目录给出磁盘上文件的存取。安装到的目录叫<b>安装点</b>。<P>Linux支持许多文件系统。<tt>mount</tt><A NAME="1608">&#160;</A>会试着猜测文件系统种类。也可以使用<TT>-t <I>fstype</TT></I>选项直接定义种类;这有时是必要的,因为自检测<tt>mount</tt><A NAME="1610">&#160;</A>并非总能成功。例如要mount一个MSDOS软盘,可以用如下命令:		<BLOCKQUOTE> <TT><code>$ </code> <I>mount -t msdos /dev/fd0 /floppy</I> <BR> <code>$ </code>		</TT></BLOCKQUOTE>安装点目录不必是空的,但必须存在。其中的所有文件当文件系统mount后将不可用名字存取(已经打开的文件将继续可存取。有其他目录硬连接的文件可以通过那些名字存取)。这没有坏处,反而可能更有用。例如,有人喜欢将<tt>/tmp</tt><A NAME="1612">&#160;</A>和<tt>/var/tmp</tt><A NAME="1614">&#160;</A>作为同义,将<tt>/tmp</tt><A NAME="1612">&#160;</A>作为<tt>/var/tmp</tt><A NAME="1614">&#160;</A>的符号连接。系统启动时,在<tt>/usr</tt><A NAME="1620">&#160;</A>文件系统被mount之前,使用驻留在根文件系统的<tt>/var/tmp</tt><A NAME="1622">&#160;</A>目录。当<tt>/usr</tt><A NAME="1624">&#160;</A>被mount上以后,根文件系统上的<tt>/var/tmp</tt><A NAME="1626">&#160;</A>将不可用,如果根文件系统上不存在<tt>/var/tmp</tt><A NAME="1626">&#160;</A>,那么在mount上<tt>/var</tt><A NAME="1630">&#160;</A>之前将不可能使用暂存文件。<P>如果不打算在一个文件系统上写任何东西,可以使用<tt>mount</tt><A NAME="1632">&#160;</A>的<TT>-r</TT>开关做一个<b>只读mount</b>。这将使核心停止任何对此文件系统的写要求,也将停止核心的对i节点的文件存取时间的更新。只读mount对不可写介质是必要的,例如CDROM。<P>细心的读者可能已经注意到一个小的逻辑问题。第一个文件系统(叫<b>根文件系统</b>,因为它包含根目录)如何mount,因为很明显,它不能mount到另一个文件系统?Well, the answer is that it is done by magic.<A NAME="tex2html22" HREF="footnode.html#1275"><IMG  ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A>The root filesystem is magically mounted at boot time, and one can rely on it to always be mounted--如果根文件系统不能mount,系统将不能启动。The name of the filesystem that is magically mounted as root 被编译进核心,或用LILO或<tt>rdev</tt><A NAME="1636">&#160;</A>设置。<P>根文件系统通常先被只读mount。然后启动手稿运行<tt>fsck</tt><A NAME="1638">&#160;</A>校验它的有效性,如果没有问题,将<b>re-mount</b>它,使之可写。<tt>fsck</tt><A NAME="1641">&#160;</A>不能运行于一个已mount的文件系统,因为<tt>fsck</tt><A NAME="1643">&#160;</A>运行时,任何文件系统的改变将导致错误。因为根文件系统在被检查时是只读,<tt>fsck</tt><A NAME="1645">&#160;</A>可以无虑地修复任何问题,因为<b>re-mount</b>操作将刷新文件系统在内存中的所有数据。<P>在有其他文件系统的许多系统中,启动时要自动mount,可以在<tt>/etc/fstab</tt><A NAME="1647">&#160;</A>文件中定义:文件格式细节请参考<em>fstab</em><A NAME="1649">&#160;</A>的手册页。mount特别的文件系统的特别细节依赖于许多因素,可以根据需要由每个管理员设置。When the chapter on booting is finished, you may read all about it there.<P>当一个文件系统不需要再mount着,可以用<tt>umount</tt><A NAME="1651">&#160;</A><A NAME="tex2html23" HREF="footnode.html#1431"><IMG  ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A>.  <tt>umount</tt><A NAME="1655">&#160;</A>加一个参数unmount它,参数可以是设备文件或安装点。例如,要unmount上面例子中的目录,可以用:		<BLOCKQUOTE> <TT><code>$ </code> <I>umount /dev/hda2 </I> <BR> <code>$ </code> <I>umount /usr</I> <BR> <code>$ </code>		</TT></BLOCKQUOTE>要了解使用这个命令的更多的说明,参阅手册。注意:记住unmount已经mount的软盘,<EM>而不能仅仅将软盘弹出软驱!</EM>由于磁盘缓冲,在你unmount软盘之前无须回写,因此过早取出软盘将导致内容不正确。只从软盘上读还不要紧,如果写,就可能发生灾难性的损失。<P>mount和umount需要超级拥护特权,即只有<tt>root</tt><A NAME="1657">&#160;</A>用户可以做。原因是:如果任何用户都可以mount软盘到任何目录,那么很容易用软盘做,比如,用特洛伊木马替换<tt>/bin/sh</tt><A NAME="1659">&#160;</A>, 或者其他常用的程序。但是允许用户使用软盘经常又是必要的,有几种方法:	<UL><LI> 给用户<tt>root</tt><A NAME="1661">&#160;</A>口令,很明显这对安全不利,但是最简单的方法。如果没有安全要求,这个方法很好,比如在非网络的、个人系统上。<LI>使用一个程序比如<tt>sudo</tt><A NAME="1663">&#160;</A>允许拥护使用mount。这同样对安全不利,但没有直接给任何人超级用户特权。<A NAME="tex2html21" HREF="footnode.html#1299"><IMG  ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A><LI>让用户使用<tt>mtools</tt><A NAME="1665">&#160;</A>, 这是一个利用MSDOS文件系统的软件包,无须mount。如果是MSDOS软盘这样做很好,否则不好。<LI>在<tt>/etc/fstab</tt><A NAME="1667">&#160;</A>中用合适的选项列出软驱设备和允许的安装点。</UL>最后一个选择可以在<tt>/etc/fstab</tt><A NAME="1669">&#160;</A>文件中加类似下面的一行来完成:<BLOCKQUOTE> <TT>/dev/fd0            /floppy      msdos   user,noauto      0     0</TT></BLOCKQUOTE>各列分别是:要mount的设备文件,要安装到的目录,文件系统类型,选项,备份频率(用于<tt>dump</tt><A NAME="1671">&#160;</A>)和<tt>fsck</tt><A NAME="1673">&#160;</A>次序(定义启动时文件系统被检查的次序,0表示不检查)。<P><tt>noauto</tt>选项使系统启动是不自动mount(即, it stops <tt>mount -a</tt><A NAME="1675">&#160;</A> from mounting it)。<tt>user</tt>允许任何用户mount这个文件系统,并且,由于安全原因,不允许执行程序(normal or setuid)	and interpretation of device files from the mounted filesystem。这样,任何用户都可以用如下命令mount一个<tt>msdos</tt>文件系统的软盘:<BLOCKQUOTE> <TT><code>$ </code> <I>mount /floppy</I> <BR> <code>$ </code></TT></BLOCKQUOTE>软盘可以用相关的<tt>umount</tt><A NAME="1677">&#160;</A>被unmount。<P>如果想提供多种软盘的存取,需要给出多个安装点。对每个安装点的设置可以不同。例如,提供MSDOS和ext2文件系统的存取,可以在<tt>/etc/fstab</tt><A NAME="1679">&#160;</A>文件中加如下行:<BLOCKQUOTE> <PRE>/dev/fd0    /dosfloppy    msdos   user,noauto  0  0/dev/fd0    /ext2floppy   ext2    user,noauto  0  0</PRE></BLOCKQUOTE>对于MSDOS文件系统(不仅是软盘),可能需要用<tt>uid</tt>, <tt>gid</tt>,和<tt>umask</tt><A NAME="1681">&#160;</A>文件系统选项来限制存取权限,请看<em>mount</em><A NAME="1683">&#160;</A>手册页。如果不小心,mount一个MS-DOS文件系统将给予任何用户至少是读权限,这可不是一个好主意。<P><HR><A NAME="tex2html877" HREF="node47.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html875" HREF="node41.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html869" HREF="node45.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html879" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html880" HREF="node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR><B> Next:</B> <A NAME="tex2html878" HREF="node47.html">Checking filesystem integrity with </A><B>Up:</B> <A NAME="tex2html876" HREF="node41.html">Filesystems</A><B> Previous:</B> <A NAME="tex2html870" HREF="node45.html">Creating a filesystem</A><P><ADDRESS><I>Lars Wirzenius <BR>Sun Jun 29 13:31:22 EEST 1997</I></ADDRESS></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?