📄 disk-organization.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>磁盘架构</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="UNIX 基础" href="basics.html" /><link rel="PREVIOUS" title="目录架构" href="dirstructure.html" /><link rel="NEXT" title="文件系统的挂接和卸下" href="mount-unmount.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="dirstructure.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 3. UNIX 基础</td><td width="10%" align="right" valign="bottom"><a href="mount-unmount.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="DISK-ORGANIZATION" name="DISK-ORGANIZATION">3.5.磁盘架构</a></h1><p>FreeBSD使用最小单位的架构去查找文件。 而文件名区分大小写,这就意味着 <ttclass="FILENAME">readme.txt</tt> 和 <tt class="FILENAME">README.TXT</tt>是两个不相同的文件。 FreeBSD不凭文件扩展名 (<ttclass="FILENAME">.txt</tt>)去识别这个文件是 程序、或是文档、或是其他格式的数据。</p><p>各种文件存放在目录里。 一个目录可以含有许许多多的文件,允许含有其他的目录,同样允许你添加不同层次的目录在里面。 可以轻松地组织你的数据。</p><p>在(某些)目录或文件下搏接目录(文件)名,那在(某些)目录之后是一斜杠 :<varclass="LITERAL">/</var>。 跟随(下来)的其他目录都需要(这个斜杠)。 假如你有一个目录 <ttclass="FILENAME">foo</tt>, 它含有目录 <tt class="FILENAME">bar</tt>, 而<ttclass="FILENAME">bar</tt>之下含有 <ttclass="FILENAME">readme.txt</tt>文件,那么他的全名或 <i class="FIRSTTERM">path</i>就是<tt class="FILENAME">foo/bar/readme.txt</tt>。</p><p>在文件系统里目录和文件的作用是存储数据。 每一个文件系统都正确含有一个顶级目录<iclass="FIRSTTERM">根目录</i>, 这个根目录包含其他目录。</p><p>你也许在其他的一些操作系统碰到类似这里的情况, 当然也有不同的情况。举些例子,<spanclass="TRADEMARK">MS-DOS</span>®是用<var class="LITERAL">\</var>分隔文件名或目录名,而<span class="TRADEMARK">Mac OS</span>® 使用<varclass="LITERAL">:</var>。</p><p>FreeBSD在路径方面不使用驱动器名符号或驱动器名称, 在FreeBSD里你不能这样使用:<ttclass="FILENAME">c:/foo/bar/readme.txt</tt>。</p><p>为了代替(驱动器名符号), 一个文件系统会指定 <i class="FIRSTTERM">根 文件系统</i>,根文件系统的根目录是 <var class="LITERAL">/</var>。 其他每一个文件系统 <iclass="FIRSTTERM">挂接在</i>根文件系统下。 无论有多少磁盘在FreeBSD 系统里,每个磁盘都会以目录的方式加上。</p><p>假设你有三个文件系统, 名为 <var class="LITERAL">A</var>、 <varclass="LITERAL">B</var> 和 <var class="LITERAL">C</var>。 每个文件系统有一个根目录,而各自含有两个其他的目录, 名为 <var class="LITERAL">A1</var>, <varclass="LITERAL">A2</var> ( <var class="LITERAL">B1</var>, <var class="LITERAL">B2</var>和 <var class="LITERAL">C1</var>, <var class="LITERAL">C2</var>)。</p><p>看看 <var class="LITERAL">A</var> 这个根文件系统。 假如你用 <ttclass="COMMAND">ls</tt> 命令来查看这个目录你会见到两个子目录: <varclass="LITERAL">A1</var> 和 <var class="LITERAL">A2</var>。 这个目录树是这个样子:</p><p><img src="install/example-dir1.png" /></p><p>一个文件系统必须挂到另一个文件系统的某一目录, 所以现在假设把<varclass="LITERAL">B</var>文件系统挂到 <var class="LITERAL">A1</var>目录,那<varclass="LITERAL">B</var>根目录因此代替 了<var class="LITERAL">A1</var>,而显示出<varclass="LITERAL">B</var>目录(的内容):</p><p><img src="install/example-dir2.png" /></p><p>无论<var class="LITERAL">B1</var> 或 <var class="LITERAL">B2</var>目录在那里而延伸出来的路径必须为 <tt class="FILENAME">/A1/B1</tt> 或 <ttclass="FILENAME">/A1/B2</tt>。 而在<tt class="FILENAME">/A1</tt>里的(原有)文件会临时隐藏。 想这些文件再出现把<var class="LITERAL">B</var> 从 A <iclass="FIRSTTERM">挂接释放</i>。</p><p>把 <var class="LITERAL">B</var> 挂接在 <var class="LITERAL">A2</var>那图表的样子就是这样子:</p><p><img src="install/example-dir3.png" /></p><p>这个路径分别是 <tt class="FILENAME">/A2/B1</tt> 和 <tt class="FILENAME">/A2/B2</tt>。</p><p>文件系统能把顶部挂接上另一个(文件系统)。 继续这个例子, 把 <varclass="LITERAL">C</var> 文件系统挂接在<var class="LITERAL">B</var> 文件系统里的<varclass="LITERAL">B1</var>目录, 排列如下:</p><p><img src="install/example-dir4.png" /></p><p>或者把 <var class="LITERAL">C</var> 文件系统挂接在<var class="LITERAL">A</var>文件系统里的<var class="LITERAL">A1</var>目录:</p><p><img src="install/example-dir5.png" /></p><p>假如你熟悉 <span class="TRADEMARK">MS-DOS</span>并知到<tt class="COMMAND">join</tt>命令, 尽管不相同,其实是相似的。</p><p>这方面不是普通知识而且涉及到你自己所关心的,当你安装FreeBSD并在以后添加新磁盘时,你必须知到该如何新建文件系统和挂接上。</p><p>(FreeBSD系统)它有一个主要的根文件系统, 不需要另外新建立,但当需要手工处理时,这是一个有用的知识。</p><p><b>多样性文件系统的益处</b></p><ul><li><p>不同的文件系统可用不同的 <i class="FIRSTTERM">挂接参数</i>。 举些例子, 仔细想一下,根文件系统能用只读的方的方式挂接上,防止不经意删除或编辑到一个危险的文件。把各用户能写入的文件系统分开,像<tt class="FILENAME">/home</tt>这样,由另外的文件系统分别用 <i class="FIRSTTERM">nosuid</i>挂上,这个参数防止 <iclass="FIRSTTERM">suid</i>/<i class="FIRSTTERM">guid</i> 位在执行时写入到这文件系统时生效,使其更加安全。</p></li><li><p>FreeBSD对一个文件系统的文件布局自动优化,并依赖文件系统的使用习惯。所以一个文件系统应有一个针对大量小型文件频繁写入的优化,另外大型文件系统的优化也应落实。</p></li><li><p>FreeBSD的文件系统是非常周全的并尽量将损失减到最低。但无论怎样,一个错误都会破坏文件系统的结构,在适当时候提出数据并转移做好备份,在需要时能恢复数据。</p></li></ul><p><b>统一文件系统的益处</b></p><ul><li><p>文件系统是固定大小的。 当安装FreeBSD时新建一个文件系统并设定一个specific大小,你会在稍后发觉到必须去建一个大的partition。设置不当这是不能完成的,它会重新建立文件系统的大小和修建数据。</p><div class="IMPORTANT"><blockquote class="IMPORTANT"><p><b>重要:</b> FreeBSD 4.4 或更高的版本有<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">growfs</span>(8)</span> 命令的特点,当建立时文件系统排除这些限制,灵活地增加(到正确的)大小。</p></blockquote></div></li></ul><p>partitions作为文件系统是静态的。 分割期间通用的做法是不能含相同的目标 (举个例子, <spanclass="TRADEMARK">MS-DOS</span>的分割), 因为这是由 FreeBSD的 <spanclass="TRADEMARK">UNIX</span>® 传统形成的。 每个 partition 由字母<varclass="LITERAL">a</var>到<var class="LITERAL">h</var>标定, 每个 partition各自就是一个文件系统, 这就意味着这些文件系统可以挂接在某一文件系统的某一层次,或者把说字母标定的partition包含在某一文件系统的某一层次其中。(译者注:Slice是指磁盘的片,也就是主分区。partition是指一个Slice内的分区。)</p><p>FreeBSD的<i class="FIRSTTERM">交换分区</i>同样使用磁盘空间。 交换分区是给FreeBSD作<iclass="FIRSTTERM">虚拟内存</i>使用的, 这样能令你的计算机有更多的内存可使用,当FreeBSD在运行而内存不够的时候,它会把其他一些可转移的数据转移到交换分区,空出内存的位置以供使用。</p><p>某些 partitions 的用途是确定的。</p><div class="INFORMALTABLE"><a id="AEN4259" name="AEN4259"></a><table border="0" frame="void" width="100%" class="CALSTABLE"><col width="17%" /><col width="83%" /><thead><tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -