📄 node30.html
字号:
<!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>Hard disks</TITLE>
<META NAME="description" CONTENT="Hard disks">
<META NAME="keywords" CONTENT="sag">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="sag.css" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/sag.css">
</HEAD>
<BODY LANG="EN" >
<A NAME="tex2html672" HREF="node31.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node31.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/next_motif.gif"></A> <A NAME="tex2html670" HREF="node28.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node28.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/up_motif.gif"></A> <A NAME="tex2html664" HREF="node29.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node29.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/previous_motif.gif"></A> <A NAME="tex2html674" HREF="node1.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/contents_motif.gif"></A> <A NAME="tex2html675" HREF="node108.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html673" HREF="node31.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node31.html">Floppies</A>
<B>Up:</B> <A NAME="tex2html671" HREF="node28.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node28.html">Using Disks and Other </A>
<B> Previous:</B> <A NAME="tex2html665" HREF="node29.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node29.html">Two kinds of devices</A>
<BR> <P>
<H1><A NAME="SECTION00520000000000000000">硬盘</A></H1>
<P>
本节介绍有关硬盘的术语。如果你已经知道这些项目和内容,可以跳过本节。
<P>
见图<A HREF="node30.html#fighdschematic" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node30.html#fighdschematic">4.1</A>,是硬盘重要部分的图解。
硬盘包括一到数片<b>盘片platters</b>,
<A NAME="tex2html11" HREF="footnode.html#1028" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/footnode.html#1028"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/foot_motif.gif"></A>
其一个或两个<b>面surfaces</b>涂有磁性材料用于记录数据。每面有一个<b>读写头read-write head</b>用于读写数据。
盘片有一个共同的轴,典型的旋转速度是每分钟3600转,高性能的硬盘转速可能更高。
磁头可沿着盘片的半径移动,磁头移动加上盘片旋转可以使词头存取磁盘表面的任何一个位置。
<P>
处理器(CPU)和实际磁盘通过<b>磁盘控制器disk controller</b>通讯。这使计算机其他部分不必知道如何使用驱动器,
因为不同磁盘的控制器可以做成对计算机其他部分相同的接口。这样,计算机只要说"嗨,磁盘,给我我要的东西",而不是
用一串长而复杂的电信号来移动磁头到正确的位置,并等正确的位置到了磁头下后再做那些不愉快的工作。
(实际上,到控制器的接口仍然很复杂,但比没有好多了。)
控制器还可以做一些其他的事,比如缓冲,或自动坏扇区替换等。用电信号控制操作机械部件,
<P>
以上只是理解硬件所需的。还有其他好多工作,比如马达旋转磁盘、移动磁头,但这都与理解硬盘工作原理无关。
<P>
磁盘表面通常被分为同心圆环,叫<b>磁道tracks</b>,磁道又被分为<b>扇区sectors</b>。用这样分来将磁盘定位,用于为文件定位磁盘空间。
要在硬盘上找到给定的位置,可能说"3面5道7扇区"。通常所有磁道有相同的扇区数,但也有硬盘在外圈磁道放较多的扇区(所有扇区用同样大小的物理空间,
这样在较长的外圈磁道可以容纳更多的数据)。一般一个扇区容纳512字节数据。磁盘不能处理比一个扇区更小的数据量。
<P>
<P><A NAME="1038"> </A><A NAME="fighdschematic"> </A><IMG WIDTH=367 HEIGHT=410 ALIGN=BOTTOM ALT="figure1034" SRC="img4.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/img4.gif"><BR>
<STRONG>Figure 4.1:</STRONG> A schematic picture of a hard disk.<BR>
<P>
<P>
每个面以相同的方式分为磁道和扇区。这意味着当一个磁头在某个磁道时,其他磁头也在相应的位置,所有相同位置的磁道组成<b>柱面cylinder</b>。
磁头从一个磁道(柱面)移动到另一个需要花时间,所以将经常要在一起存取的数据(如一个文件)放在一个柱面里。这改善了性能。当然不可能完全作到,
文件被放在几个相分离的位置叫<b>碎片fragmented</b>。
<P>
磁盘的面(或头,实际是一样的)、柱面、扇区数各不相同,硬盘这些数目叫<b>硬盘参数geometry</b>。
硬盘参数通常存在一个特定的、由电池供电的存储区中,叫<b>CMOS RAM</b>,操作系统在引导启动或驱动器初始化时可以从那里得到硬盘参数。
<P>不幸的是,BIOS
<A NAME="tex2html12" HREF="footnode.html#1045" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/footnode.html#1045"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/foot_motif.gif"></A>
有一个设计限制,就是不能在CMOS RAM中定义大于1024的磁道数,这对大硬盘来说就太小了。为了克服这个问题,硬盘控制器在磁盘参数上做了一个欺骗,
用<b>地址转换translates the addresses</b>使计算机接受。例如,一个硬盘可能有8个磁头,2048个磁道,每磁道35个扇区<A NAME="tex2html13" HREF="footnode.html#1047" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/footnode.html#1047"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/foot_motif.gif"></A>。
其控制器可以对计算机谎称它有16个磁头,1024个磁道,每磁道35个扇区,这样就没有超过磁道数的限制,地址转换将磁头数减半,磁道数加倍后传给硬盘。
实际的算法可能更复杂,因为数量可能不象我们在这里假设的这么好(但这不影响我们理解原理)。这个转换在操作系统来看产生了错觉,并可能影响操作系统
对把所有数据存在相同柱面的企图受到影响。
<P>
转换只是IDE硬盘的问题。SCSI硬盘使用连续的扇区号(即控制器将连续的扇区好转换成磁头、柱面、扇区的三参数组),对CPU与控制器的通信使用完全不同的方法,
因此不会有这个问题。注意,计算机可能根本不知道一个SCSI硬盘的实际参数。
<P>
由于Linux经常不知道一个硬盘的真正参数,其文件系统也不试图将文件存在一个柱面里。而是争取给一个文件分配连续编号的山区,这样能得到类似的性能。
对于控制器上有cashe或控制器能自动预取的硬盘,情况将更复杂。
<P>
每个硬盘表现为一个单独的设备文件。通常只能有2-4个IDE硬盘。
这就是
<tt>/dev/hda</tt><A NAME="1460"> </A>,
<tt>/dev/hdb</tt><A NAME="1462"> </A>,
<tt>/dev/hdc</tt><A NAME="1464"> </A>, 和
<tt>/dev/hdd</tt><A NAME="1466"> </A>。
SCSI是
<tt>/dev/sda</tt><A NAME="1468"> </A>,
<tt>/dev/sdb</tt><A NAME="1470"> </A>, 等等。
其他硬盘类型有类似的命名约定,更多的信息见[<A HREF="node107.html#device-list" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node107.html#device-list">Anv</A>]。
注意硬盘的设备文件给出整个硬盘的存取,而不是分区(下面讨论的),因此如果不小心可能搞乱分区或数据。
硬盘的设备文件只在存取主引导扇(也将在下面讨论)时使用。
<P>
<HR><A NAME="tex2html672" HREF="node31.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node31.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/next_motif.gif"></A> <A NAME="tex2html670" HREF="node28.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node28.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/up_motif.gif"></A> <A NAME="tex2html664" HREF="node29.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node29.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/previous_motif.gif"></A> <A NAME="tex2html674" HREF="node1.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/contents_motif.gif"></A> <A NAME="tex2html675" HREF="node108.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html673" HREF="node31.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node31.html">Floppies</A>
<B>Up:</B> <A NAME="tex2html671" HREF="node28.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node28.html">Using Disks and Other </A>
<B> Previous:</B> <A NAME="tex2html665" HREF="node29.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node29.html">Two kinds of devices</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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -