⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0230filesystem.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- 磁盘与硬件管理</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   -->  </style></head><body nosave="" background="0230filesystem_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0230filesystem_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0230filesystem_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0230filesystem_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0230filesystem_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0230filesystem_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0230filesystem_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org//linux_basic/0230filesystem.php" target="_self"><font face="Times New Roman,Times">Linux</font><font face="SimSun">磁盘与硬件管理</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2004/03/16</font></div><font size="-2" color="#3333ff" face="SimSun"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">我们在前面的档案权限介绍的章节当中,提到很多的权限与属性的观念,那么接下来要了解的是,这些属性是记录在硬盘的那个地方?这里就要特别了解到Linux 档案系统( filesystem )是如何记录档案,与档案是如何被读取的啰!而要了解整个档案系统的观念,就不能不知道硬盘的组成组件!所以,在这个章节当中,我们由最基础的硬盘组成组件介绍起,并介绍inode 与连结文件等基本知识,以及如何利用开机即可挂载的方式来使我们的各个partition 可以在开机时就已经进行好挂载的动作喔!</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font size="+1"><a href="#harddisk">认识硬盘</a></font>:<br><font color="#000099"><font size="+1">  :</font><a href="#harddisk-physical">物理组成</a></font><br><font color="#000099"><font size="+1">  :</font><a href="#harddisk-partition">磁盘分割</a></font><br><font color="#000099"><font size="+1">  :</font><a href="#harddisk-filesystem">档案系统</a></font><br><font color="#000099"><font size="+1">  :</font><a href="#harddisk-inode">Linux的档案系统</a></font><a href="#harddisk-inode">(<font color="#000066">inode</font>)</a><br><font size="+1" color="#000099">  :</font><a href="#harddisk-filerun">Linux档案系统的运作</a><br><font size="+1" color="#000099"><a href="#hardcontent">查看硬盘或目录的容量</a>:</font><a href="#df">df</a>,<a href="#du">du</a>,<br><font size="+1"><a href="#linkfiles">连结档的介绍</a></font>: <a href="#ln">ln</a>,<br><font size="+1" color="#000099"><a href="#partitionandformat">切割与格式化硬盘</a>:</font><font color="#000000" face="Times New Roman Baltic"><a href="#fdisk">fdisk</a>,<a href="#mke2fs">mke2fs</a>,<a href="#e2label">e2label</a>,<a href="#mknod">mknod</a>,</font><br><font size="+1" color="#000099"><a href="#checkHD">检查硬盘坏轨与数据同步化写入</a>:</font><font color="#000000" face="Times New Roman Baltic"><a href="#fsck">fsck</a>,<a href="#badblocks">badblocks</a>,<a href="#sync">sync</a>,</font><br><font size="+1" color="#000099"><a href="#floppy">关于软盘开机片</a></font>: <font color="#000000" face="Times New Roman Baltic"><a href="#mkbootdisk">mkbootdisk</a>,<a href="#fdformat">fdformat</a>,</font><br><font size="+1" color="#000099"><a href="#everymount">各式扇区的挂载</a>:</font><a href="#mount">moun<font color="#000000">t</font></a><font color="#000000">,</font><font color="#000099"><a href="#mfloppy">软盘</a>,<a href="#mcdrom">光盘</a>,<a href="#mvfat">Windows扇区</a>,<a href="#mcvfat">Windows中文扇区</a>,<a href="#mnewhd">新硬盘</a>, <a href="#umount">umount</a>,</font><br><font color="#000099"><font size="+1"><a href="#mount-fstab">设定开机时即挂载的方式</a>:</font><a href="#mount-fstab">/etc/fstab</a></font><br><font color="#000099"><font size="+1"><a href="#swap">虚拟内存 Swap</a></font>:<a href="#swap_partition">swappartition</a>, <a href="#swap_file">swap file</a>, <a href="#dd">dd</a>,<a href="#mkswap">mkswap</a>,<a href="#swapon">swapon</a>,<a href="#swapoff">swapoff</a>,</font><br><font size="+1" color="#000099"><a href="#perform">磁盘效能</a></font>:<a href="#hdparm">hdparm</a>,<br><font size="+1" color="#000099"><a href="#ext2">附录一:第二延伸档案系统ext2</a></font><br><font size="+1" color="#000099"><a href="#ext3">附录二:为何选择ext3 呢</a></font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="harddisk"></a><img src="0230filesystem_files/penguin-m.gif" alt="" nosave="" align="middle" height="34" width="25"><font size="+1"><font color="#000099">认识硬盘</font>:</font><ul>既然这个章节主要在探讨 Linux 的磁盘档案系统,所以我们当然就需要先来了解一下硬盘是个什么东西啦!首先,我们就来看一看硬盘的物理组成,了解了物理组成之后,再来说明一下怎么样进行硬盘的分割 (partition) 吧!<br> <br><hr width="100%"><a name="harddisk-physical"></a><img src="0230filesystem_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><b><font color="#000099">物理组成:</font></b><br><font color="#000000"> </font><br><font color="#000000">就硬盘的物理组件来说,</font><b><font color="#000066">硬盘其实是由许许多多的圆形硬盘盘所组成的</font></b><font color="#000000">,依据硬盘盘能够容纳的数据量,而有所谓的单碟(一块硬盘里面只有一个硬盘盘)或者是多碟(一块硬盘里面含有多个硬盘盘)的硬盘。在这里我们以单一个硬盘盘来说明,硬盘盘可由底下的图形来示意:</font><br><font color="#000000"> </font><center><img src="0230filesystem_files/0230harddisk.jpg" nosave="" height="381" width="478"><br><a name="fig_1"></a>图一、硬盘盘示意图<br> <br><img src="0230filesystem_files/0230harddisk-2.jpg" nosave="" height="168" width="348"><br><a name="fig_2"></a>图二、磁柱示意图</center><font color="#000000"> </font><br><font color="#000000">首先,硬盘里面一定会有所谓的</font><b><font color="#000066">磁头( Head )</font></b><font color="#000000">在进行该硬盘盘上面的读写动作;而当磁头固定不动,硬盘盘转一圈所画出来的圆就是所谓的</font><b><font color="#000066">磁道( Track )</font></b><font color="#000000">;而如同我们前面刚刚提到的,一块硬盘里面可能具有多个硬盘盘,所有硬盘盘上面相同半径的那一个磁道就组成了所谓的</font><b><font color="#000066">磁柱(Cylinder )</font></b><font color="#000000">。例如上<a href="#fig_2">图二</a>所示意,在两个硬盘盘上面的同一个磁道就是一个磁柱啦!这个磁柱也是</font><b><font color="#000066">磁盘分割(partition )</font></b><font color="#000000">时的最小单位了;另外,由圆心向外划直线,则可将磁道再细分为一个一个的</font><b><font color="#000066">扇区( Sector )</font></b><font color="#000000">,这个扇区就是硬盘盘上面的最小储存物理量了!通常一个sector 的大小约为 512 Bytes 。以上就是整个硬盘的基本组件。</font><br><font color="#000000"> </font><br><hr width="100%"><a name="harddisk-partition"></a><img src="0230filesystem_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><b><font color="#000099">磁盘分割( Partition )</font></b>:<br><font color="#000000"> </font><br><font color="#000000">在了解了硬盘的物理组件之后,再接着下来介绍的就是硬盘的分割(Partition )啰!为什么要进行硬盘分割啊?!因为我们必须要告诉操作系统:『</font><font color="#000066">我这块硬盘可以存取的区域是由 A 磁柱到 B 磁柱</font><font color="#000000">』,如此一来,操作系统才能够控制硬盘磁头去A-B 范围内的磁柱存取数据;如果没有告诉操作系统这个信息,那么操作系统就无法利用我们的硬盘来进行数据的存取了,因为操作系统将无法知道他要去哪里读取数据啊!这 就是磁盘分割( Partition )的重点了:</font><b><font color="#000066">也就是记录每一个分割区(Partition )的起始与结束磁柱</font></b><font color="#000000">!好了,那么这个分割区的起始与结束磁柱的数据放在哪里呢?!那就是我们在 <a href="http://linux.vbird.org//linux_basic/0155installmdk.php">Linux 安装与多重开机技巧</a>那个章节提到的 </font><b><font color="#000066">主要开机扇区( Master BootRecorder, MBR )</font></b><font color="#000000">啰!事实上, </font><font color="#000066">MBR就是在一块硬盘的第零轨上面</font><font color="#000000">,这也是计算机开机之后要去利用该硬盘时,必须要读取的第一个区域!在这个区域内记录的就是硬盘里面的所有分割信息,以及开机的时候可以进行该机管理程序的写入的处所啊!所以,当一个硬盘的MBR 坏掉时,由于分割的数据不见了,呵呵,那么这个硬盘也就几乎可以说是寿终正寝了,因为操作系统不知道该去哪个磁柱上读取数据啊~~</font><br><font color="#000000"> </font><br><font color="#000000">那么 MBR 有什么限制呢?他最大的限制来自于他的大小不够大到储存所有分割与开机管理程序的信息,因此,</font><b><font color="#000066">他仅提供最多四个partition 的记忆,这就是所谓的 Primary (P)与 Extended (E) 的 partition最多只能有四个的原因了。</font></b><font color="#000000">所以说,如果你预计分割超过4 个 partition 的话,那么势必需要使用 3P + 1E ,并且将所有的剩余空间都拨给Extended 才行( 记得呦! Extended 最多只能有一个 ),否则只要 3P + E 之后还有剩下的空间,那么那些容量将成为废物而浪费了,所以结论就是『</font><b><font color="#000066">如果您要分割硬碟时,并且已经预计规划使用掉 MBR 所提供的 4 个 partition ( 3P + E 或 4P)那么磁盘的全部容量需要使用光,否则剩下的容量也不能再被使用</font></b><font color="#000000">』。不过,如果您仅是分割出1P + 1E 的话,那么剩下的空间就还能再分割两个 partition !</font><br><font color="#000000"> </font><br><hr width="100%"><a name="harddisk-filesystem"></a><img src="0230filesystem_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><b><font color="#000099">档案系统(Filesystem )</font></b>:<br> <br>在告知系统我的 partition 所在的起始与结束磁柱之后,再来则是需要将 partition格式化为『我的操作系统认识的档案系统( Filesystem )』啰!因为每个操作系统认识的filesystem 并不相同!例如 Windows 操作系统在预设状态下就无法认识 Linux的档案系统 ( 这里指 Linux 的标准档案系统 ext2 )。所以当然要针对我们的操作系统来格式化partition 啰!<br> <br>我们可以说,每一个 partition 就是一个 Filesystem ,那么一个 partition是否可以具有两个 Filesystem 呢?!理论上应该是不行的!因为每个档案系统都有其独特的支持方式,例如Linux 的 ext3 就无法被 Windows 系统所读取!而你将一个 partition 格式化的时候,总不能格式化为ext3 也同时格式化为 fat32 吧?!那是不可能的啊!<br> <br>不论是哪一种 filesystem ,数据总是需要储存的吧!既然硬盘是用来储存数据的,想当然尔,数据就必须写入硬盘啦!刚刚我们提到硬盘的最小储存单位是sector ,不过数据所储存的最小单位并不是 sector 喔,因为用 sector 来储存太没有效率了。怎么说呢?因为一个sector 只有 512 Bytes ,而磁头是一个一个 sector 的读取,也就是说,如果我的档案有10 MBytes ,那么为了读这个档案,我的磁头必须要进行读取 (I/O) 20480 次!<br> <br>为了克服这个效率上的困扰,所以就有<b><font color="#000066">逻辑区块(Block )</font></b>的产生了!<b><font color="#000066">逻辑区块是在 partition进行 filesystem 的格式化时,所指定的『最小储存单位』</font></b>,这个最小储存单位当然是架构在sector 的大小上面( 因为 sector 为硬盘的最小物理储存单位啊! ),所以啦,Block 的大小为 sector 的 2 的次方倍数。此时,磁头一次可以读取一个 block,如果假设我们在格式化的时候,指定 Block 为 4 KBytes ( 亦即由连续的八个sector 所构成一个 block ),那么同样一个 10 MBytes 的档案,磁头要读取的次数则大幅降为2560 次,这个时候可就大大的增加档案的读取效能啦!<br><b> </b><br>不过,Block 单位的规划并不是越大越好喔!怎么说呢?<b><font color="#000066">因为一个Block 最多仅能容纳一个档案</font></b>!这有什么问题呢?举例来说好了,假如您的Block 规划为 4 KBytes ,而您有一个档案大小为 0.1 KBytes ,这个小档案将占用掉一个Block 的空间,也就是说,该 Block 虽然可以容纳 4 Kbytes 的容量,然而由于档案只占用了0.1 Kbytes ,所以,实际上剩下的 3.9 KBytes 是不能再被使用了,所以,在考虑Block 的规划时,需要同时考虑到:<br> <ul><li><font color="#000066">档案读取的效能</font></li><li><font color="#000066">档案大小可能造成的硬盘空间浪费</font></li></ul> <br>因此,在规划您的磁盘时,需要留意到您主机的用途来进行规划较佳!例如BBS 主机由于文章较短,也就是说档案较小,那么 Block 小一点的好;而如果您的主机主要用在储存大容量的档案,那么考虑到效能,当然Block 理论上,规划的大一点会比较妥当啦!<br> <br><b><font color="#000066">Superblock</font></b>:如同前面说的,当我们在进行磁盘分割(

⌨️ 快捷键说明

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