磁盘分区

  • 鸟哥的私房菜。。。http://cn.linux.vbird.org/linux_basic/0130designlinux.php#partition
  • 硬盘的物理组成

大家应该都看过硬盘吧!硬盘依据桌上型与笔记型计算机而有分为3.5寸及2.5寸的大小。我们以3.5寸的桌上型计算机使用硬盘来说明。 在硬盘盒里面其实是由许许多多的圆形磁碟盘、机械手臂、 磁碟读取头与主轴马达所组成的,整个内部如同下图所示:

硬盘物理构造
图2.4.1、硬盘物理构造(图片取自维基百科)

 

实际的数据都是写在具有磁性物质的磁碟盘上头,而读写主要是透过在机械手臂上的读取头(head)来达成。 实际运作时, 主轴马达让磁碟盘转动,然后机械手臂可伸展让读取头在磁碟盘上头进行读写的动作。 另外,由於单一磁碟盘的容量有限,因此有的硬盘内部会有两个以上的磁碟盘喔!

 

  • 传输介面

由於传输速度的需求提升,目前硬盘与主机系统的联系主要有几种传输介面规格:

两款硬盘介面(左边为IDE介面,右边为SATA介面)
图2.4.3、两款硬盘介面(左边为IDE介面,右边为SATA介面)
  • IDE介面:

    如同图 2.1.3、技嘉主机板图示右侧的较宽的插槽所示,那就是IDE的介面插槽。 IDE介面插槽所使用的排线较宽,每条排线上面可以接两个IDE装置,由於可以接两个装置,那为了判别两个装置的主/从架构, 因此这种磁碟机上面需要调整跳针(Jump)成为Master或slave才行喔!这种介面的最高传输速度为Ultra 133规格, 亦即每秒理论传输速度可达133MBytes。

    IDE 介面的排线 (图示取自 Seagate 网站)
    图2.4.4、IDE 介面的排线 (图示取自 Seagate 网站)
  • SATA介面:

    如同技嘉主机板图示右下方所示为SATA硬盘的连接介面插槽。 我们可以看到该插槽要比IDE介面的小很多,每条SATA连接线仅能接一个SATA装置。SATA介面除了速度较快之外, 由於其排线较细小所以有利於主机机壳内部的散热与安装!目前SATA已经发展到了第二代, 其速度由SATA-1的每秒150MBytes提升到SATA-2每秒300MBytes的传输速度喔, 也因此目前主流的个人计算机硬盘已经被SATA取代了。SATA的插槽示意图如下所示:

    SATA 介面的排线 (图示取自 Seagate 网站)
    图2.4.5、SATA 介面的排线 (图示取自 Seagate 网站)

    由於SATA一条排线仅接一颗硬盘,所以你不需要调整跳针。不过一张主机板上面SATA插槽的数量并不是固定的, 且每个插槽都有编号,在连接SATA硬盘与主机板的时候,还是需要留意一下。

  • SCSI介面:

    另一种常见於工作站等级以上的硬盘传输介面为SCSI介面,这种介面的硬盘在控制器上含有一颗处理器, 所以除了运转速度快之外,也比较不会耗费CPU资源喔!在个人计算机上面这种介面的硬盘不常见啦!


  • 选购与运转须知

如果你想要增加一颗硬盘在你的主机里头时,除了需要考虑你的主机板可接受的插槽介面(IDE/SATA)之外, 还有什么要注意的呢?

  • 容量
    通常首先要考量的就是容量的问题!目前(2009)主流市场硬盘容量已经到达320GB以上,甚至有的厂商已经生产高达 2TB 的产品呢!硬盘可能可以算是一种消耗品,要注意重要数据还是得常常备份出来喔!

  • 缓冲内存
    硬盘上头含有一个缓冲内存,这个内存主要可以将硬盘内常使用的数据缓存起来,以加速系统的读取效能。 通常这个缓冲内存越大越好,因为缓冲内存的速度要比数据从硬盘盘中被找出来要快的多了! 目前主流的产品可达16MB左右的内存大小喔。

  • 转速
    因为硬盘主要是利用主轴马达转动磁碟盘来存取,因此转速的快慢会影响到效能。 主流的桌上型计算机硬盘为每分钟7200转,笔记型计算机则是5400转。有的厂商也有推出高达10000转的硬盘, 若有高效能的数据存取需求,可以考虑购买高转速硬盘。

  • 运转须知
    由於硬盘内部机械手臂上的磁头与硬盘盘的接触是很细微的空间, 如果有抖动或者是脏污在磁头与硬盘盘之间就会造成数据的损毁或者是实体硬盘整个损毁~ 因此,正确的使用计算机的方式,应该是在计算机通电之后,就绝对不要移动主机,并免抖动到硬盘, 而导致整个硬盘数据发生问题啊!另外,也不要随便将插头拔掉就以为是顺利关机!因为机械手臂必须要归回原位, 所以使用操作系统的正常关机方式,才能够有比较好的硬盘保养啊!因为他会让硬盘的机械手臂归回原位啊!
Tips:
可能因为环境的关系,计算机内部的风扇常常会卡灰尘而造成一些声响。很多朋友只要听到这种声响都是二话不说的 『用力拍几下机壳』就没有声音了~现在你知道了,这么做的后果常常就是你的硬盘容易坏掉! 下次千万不要再这样做!
鸟哥的图示

 
小标题的图示 磁碟连接的方式与装置档名的关系

第零章提到的磁碟说明,我们知道个人计算机常见的磁碟介面有两种, 分别是IDE与SATA介面,目前(2009)的主流已经是SATA介面了,但是老一点的主机其实大部分还是使用IDE介面。 我们称呼可连接到IDE介面的装置为IDE装置,不管是磁碟还是光盘设备。

以IDE介面来说,由於一个IDE排线可以连接两个IDE装置,又通常主机都会提供两个IDE介面,因此最多可以接到四个IDE装置。 也就是说,如果你已经有一个光盘设备了,那么最多就只能再接三颗IDE介面的磁碟罗。 这两个IDE介面通常被称为IDE1(primary)及IDE2(secondary), 而每条排线上面的IDE装置可以被区分为Master与Slave。这四个IDE装置的档名为:

IDE\JumperMasterSlave
IDE1(Primary)/dev/hda/dev/hdb
IDE2(Secondary)/dev/hdc/dev/hdd

例题:
假设你的主机仅有一颗IDE介面的磁碟,而这一颗磁碟接在IDE2的Master上面,请问他在Linux操作系统里面的装置档名为何?
答:
比较上表的装置档名对照,IDE2的Master之装置档名为 /dev/hdc

再以SATA介面来说,由於SATA/U盘/SCSI等磁碟介面都是使用SCSI模块来驱动的, 因此这些介面的磁碟装置档名都是/dev/sd[a-p]的格式。 但是与IDE介面不同的是,SATA/U盘介面的磁碟根本就没有一定的顺序,那如何决定他的装置档名呢? 这个时候就得要根据Linux核心侦测到磁碟的顺序了!这里以底下的例子来让你了解罗。

例题:
如果你的PC上面有两个SATA磁碟以及一个U盘磁碟,而主板上面有六个SATA的插槽。这两个SATA磁碟分别安插在主板上的SATA1, SATA5插槽上, 请问这三个磁碟在Linux中的装置档名为何?
答:
由於是使用侦测到的顺序来决定装置档名,并非与实际插槽代号有关,因此装置的档名如下:
  1. SATA1插槽上的档名:/dev/sda
  2. SATA5插槽上的档名:/dev/sdb
  3. U盘磁碟(启动完成后才被系统捉到):/dev/sdc

通过上面的介绍后,你应该知道了在Linux系统下的各种不同介面的磁碟的装置档名了。 OK!好像没问题了呦!才不是呢~问题很大呦! 因为如果你的磁碟被分割成两个分割槽,那么每个分割槽的装置档名又是什么?在了解这个问题之前,我们先来复习一下磁碟的组成, 因为现今磁碟的分割与他物理的组成很有关系!


小标题的图示磁碟的组成复习

我们在计算机概论谈过磁碟的组成主要有磁碟盘、机械手臂、磁碟读取头与主轴马达所组成, 而数据的写入其实是在磁碟盘上面。磁碟盘上面又可细分出磁区(Sector)与磁柱(Cylinder)两种单位, 其中磁区每个为512bytes那么大。假设磁碟只有一个磁碟盘,那么磁碟盘有点像底下这样:

磁碟盘组成示意图
图2.2.1、磁碟盘组成示意图

那么是否每个磁区都一样重要呢?其实整颗磁碟的第一个磁区特别的重要,因为他记录了整颗磁碟的重要资讯! 磁碟的第一个磁区主要记录了两个重要的资讯,分别是:

  • 主要启动记录区(Master Boot Record, MBR):可以安装启动管理程序的地方,有446 bytes
  • 分割表(partition table):记录整颗硬盘分割的状态,有64 bytes

MBR是很重要的,因为当系统在启动的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何进行启动。 如果你要安装多重启动的系统,MBR这个区块的管理就非常非常的重要了! ^_^

那么分割表又是啥?其实你刚刚拿到的整颗硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段才能够再制作成为你想要的家具!如果没有进行切割,那么原木就不能被有效的使用。 同样的道理,你必须要针对你的硬盘进行分割,这样硬盘才可以被你使用的!

Tips:
更多的磁盘分区与文件系统管理,我们将在第二篇的时候深入介绍喔!
鸟哥的图示

小标题的图示磁盘分区表(partition table)

但是硬盘总不能真的拿锯子来切切割割吧?那硬盘还真的是会坏掉去!那怎办?在前一小节的图示中, 我们有看到『开始与结束磁柱』吧?那是文件系统的最小单位,也就是分割槽的最小单位啦!没有错, 我们就是利用参考对照磁柱号码的方式来处理啦! 在分割表所在的64 bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。 若将硬盘以长条形来看,然后将磁柱以直条图来看,那么那64 bytes的记录区段有点像底下的图示:

磁盘分区表的作用示意图
图2.3.1、磁盘分区表的作用示意图

假设上面的硬盘装置档名为/dev/hda时,那么这四个分割槽在Linux系统中的装置档名如下所示, 重点在於档名后面会再接一个数字,这个数字与该分割槽所在的位置有关喔!

  • P1:/dev/hda1
  • P2:/dev/hda2
  • P3:/dev/hda3
  • P4:/dev/hda4

上图中我们假设硬盘只有400个磁柱,共分割成为四个分割槽,第四个分割槽所在为第301到400号磁柱的范围。 当你的操作系统为Windows时,那么第一到第四个分割槽的代号应该就是C, D, E, F。当你有数据要写入F槽时, 你的数据会被写入这颗磁碟的301~400号磁柱之间的意思。

由於分割表就只有64 bytes而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。 根据上面的图示与说明,我们可以得到几个重点资讯:

  • 其实所谓的『分割』只是针对那个64 bytes的分割表进行配置而已!
  • 硬盘默认的分割表仅能写入四组分割资讯
  • 这四组分割资讯我们称为主要(Primary)或延伸(Extended)分割槽
  • 分割槽的最小单位为磁柱(cylinder)
  • 当系统要写入磁碟时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理

咦!你会不会突然想到,为啥要分割啊?基本上你可以这样思考分割的角度:

  1. 数据的安全性:
    因为每个分割槽的数据是分开的!所以,当你需要将某个分割槽的数据重整时,例如你要将计算机中Windows的C槽重新安装一次系统时, 可以将其他重要数据移动到其他分割槽,例如将邮件、壁纸数据移动到D槽去,那么C槽重灌系统并不会影响到D槽! 所以善用分割槽,可以让你的数据更安全。 

  2. 系统的效能考量:
    由於分割槽将数据集中在某个磁柱的区段,例如上图当中第一个分割槽位於磁柱号码1~100号,如此一来当有数据要读取自该分割槽时, 磁碟只会搜寻前面1~100的磁柱范围,由於数据集中了,将有助於数据读取的速度与效能!所以说,分割是很重要的!

既然分割表只有记录四组数据的空间,那么是否代表我一颗硬盘最多只能分割出四个分割槽?当然不是啦!有经验的朋友都知道, 你可以将一颗硬盘分割成十个以上的分割槽的!那又是如何达到的呢?在Windows/Linux系统中, 我们是透过刚刚谈到的扩展分配(Extended)的方式来处理的啦!扩展分配的想法是: 既然第一个磁区所在的分割表只能记录四笔数据, 那我可否利用额外的磁区来记录更多的分割资讯?实际上图示有点像底下这样:

磁盘分区表的作用示意图
图2.3.2、磁盘分区表的作用示意图

在上图当中,我们知道硬盘的四个分割记录区仅使用到两个,P1为主要分割,而P2则为扩展分配。请注意, 扩展分配的目的是使用额外的磁区来记录分割资讯,扩展分配本身并不能被拿来格式化。 然后我们可以透过扩展分配所指向的那个区块继续作分割的记录。

如上图右下方那个区块有继续分割出五个分割槽, 这五个由扩展分配继续切出来的分割槽,就被称为逻辑分割槽(logical partition)。 同时注意一下,由於逻辑分割槽是由扩展分配继续分割出来的,所以他可以使用的磁柱范围就是扩展分配所配置的范围喔! 也就是图中的101~400啦!

同样的,上述的分割槽在Linux系统中的装置档名分别如下:

  • P1:/dev/hda1
  • P2:/dev/hda2
  • L1:/dev/hda5
  • L2:/dev/hda6
  • L3:/dev/hda7
  • L4:/dev/hda8
  • L5:/dev/hda9

仔细看看,怎么装置档名没有/dev/hda3与/dev/hda4呢?因为前面四个号码都是保留给Primary或Extended用的嘛! 所以逻辑分割槽的装置名称号码就由5号开始了!这是个很重要的特性,不能忘记喔!

主要分割、扩展分配与逻辑分割的特性我们作个简单的定义罗:

  • 主要分割与扩展分配最多可以有四笔(硬盘的限制)
  • 扩展分配最多只能有一个(操作系统的限制)
  • 逻辑分割是由扩展分配持续切割出来的分割槽;
  • 能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。扩展分配无法格式化;
  • 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号), SATA硬盘则有11个逻辑分割(5号到15号)。

事实上,分割是个很麻烦的东西,因为他是以磁柱为单位的『连续』磁碟空间, 且扩展分配又是个类似独立的磁碟空间,所以在分割的时候得要特别注意。我们举底下的例子来解释一下好了:

例题:
在Windows操作系统当中,如果你想要将D与E槽整合成为一个新的分割槽,而如果有两种分割的情况如下图所示, 图中的特殊颜色区块为D与E槽的示意,请问这两种方式是否均可将D与E整合成为一个新的分割槽?
磁碟空间整合示意图
图2.3.3、磁碟空间整合示意图
答:
  • 上图可以整合:因为上图的D与E同属於扩展分配内的逻辑分割,因此只要将两个分割槽删除,然后再重新创建一个新的分割槽, 就能够在不影响其他分割槽的情况下,将两个分割槽的容量整合成为一个。

  • 下图不可整合:因为D与E分属主分割与逻辑分割,两者不能够整合在一起。除非将扩展分配破坏掉后再重新分割。 但如此一来会影响到所有的逻辑分割槽,要注意的是:如果扩展分配被破坏,所有逻辑分割将会被删除。 因为逻辑分割的资讯都记录在扩展分配里面嘛!

由於第一个磁区所记录的分割表与MBR是这么的重要,几乎只要读取硬盘都会先由这个磁区先读起。 因此,如果整颗硬盘的第一个磁区(就是MBR与partition table所在的磁区)物理实体坏掉了,那这个硬盘大概就没有用了! 因为系统如果找不到分割表,怎么知道如何读取磁柱区间呢?您说是吧!底下还有一些例题您可以思考看看:

例题:
如果我想将一颗大硬盘『暂时』分割成为四个partitions,同时还有其他的剩余容量可以让我在未来的时候进行规划, 我能不能分割出四个Primary?若不行,那么你建议该如何分割?
答:
  • 由於Primary+Extended最多只能有四个,其中Extended最多只能有一个,这个例题想要分割出四个分割槽且还要预留剩余容量, 因此P+P+P+P的分割方式是不适合的。因为如果使用到四个P,则即使硬盘还有剩余容量, 因为无法再继续分割,所以剩余容量就被浪费掉了。

  • 假设你想要将所有的四笔记录都花光,那么P+P+P+E是比较适合的。所以可以用的四个partitions有3个主要及一个逻辑分割, 剩余的容量在扩展分配中。

  • 如果你要分割超过4槽以上时,一定要有Extended分割槽,而且必须将所有剩下的空间都分配给Extended, 然后再以logical的分割来规划Extended的空间。 另外,考虑到磁碟的连续性,一般建议将Extended的磁柱号码分配在最后面的磁柱内。

例题:
我能不能仅分割出一个Primary与一个Extended即可?
答:
当然可以,这也是早期Windows操作系统惯用的手法!此外,逻辑分割槽的号码在IDE可达63号,SATA则可达15号, 因此仅一个主要与一个扩展分配即可,因为扩展分配可继续被分割出逻辑分割槽嘛!

例题:
假如我的PC有两颗SATA硬盘,我想在第二颗硬盘分割出6个可用的分割槽(可以被格式化来存取数据之用), 那每个分割槽在Linux系统下的装置档名为何?且分割类型各为何?至少写出两种不同的分割方式。
答:
由於P(primary)+E(extended)最多只能有四个,其中E最多只能有一个。现在题目要求6个可用的分割槽,因此不可能分出四个P。 底下我们假设两种环境,一种是将前四号全部用完,一种是仅花费一个P及一个E的情况:
  • P+P+P+E的环境:
    分割示意图
    图2.3.4、分割示意图

    实际可用的是/dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb5, /dev/sdb6, /dev/sdb7这六个,至於/dev/sdb4这个扩展分配本身仅是提供来给逻辑分割槽创建之用。 

  • P+E的环境:
    分割示意图
    图2.3.5、分割示意图

    注意到了吗?因为1~4号是保留给主要/扩展分配槽的,因此第一个逻辑分割槽一定是由5号开始的!再次强调啊! 所以/dev/sdb3, /dev/sdb4就会被保留下来没有用到了!

小标题的图示启动流程与主要启动记录区(MBR)

我们在计算机概论里面谈到了,没有运行软件的硬件是没有用的,除了会电人之外..., 而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由於操作系统会控制所有的硬件并且提供核心功能, 因此我们的计算机就能够认识硬盘内的文件系统,并且进一步的读取硬盘内的软件文件与运行该软件来达成各项软件的运行目的。

问题是,你有没有发现,既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且运行他的? 明明启动时我的计算机还没有任何软件系统,那他要如何读取硬盘内的操作系统文件啊?嘿嘿!这就得要牵涉到计算机的启动程序了! 底下就让我们来谈一谈这个启动程序吧!

计算机概论里面我们有谈到那个可爱的BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个韧体(再次说明, 韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在启动的时候,计算机系统会主动运行的第一个程序了!

接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的配置去取得能够启动的硬盘, 并且到该硬盘里面去读取第一个磁区的MBR位置。 MBR这个仅有446 bytes的硬盘容量里面会放置最基本的启动管理程序, 此时BIOS就功成圆满,而接下来就是MBR内的启动管理程序的工作了。

这个启动管理程序的目的是在加载(load)核心文件, 由於启动管理程序是操作系统在安装的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件, 然后接下来就是核心文件的工作,启动管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦!

简单的说,整个启动流程到操作系统之前的动作应该是这样的:

  1. BIOS:启动主动运行的韧体,会认识第一个可启动的装置;
  2. MBR:第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序;
  3. 启动管理程序(boot loader):一支可读取核心文件来运行的软件;
  4. 核心文件:开始操作系统的功能...

由上面的说明我们会知道,BIOS与MBR都是硬件本身会支持的功能,至於Boot loader则是操作系统安装在MBR上面的一套软件了。由於MBR仅有446 bytes而已,因此这个启动管理程序是非常小而美的。 这个boot loader的主要任务有底下这些项目:

  • 提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
  • 加载核心文件:直接指向可启动的程序区段来开始操作系统;
  • 转交其他loader:将启动管理功能转交给其他loader负责。

上面前两点还容易理解,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的启动管理程序呢! 有可能吗?我们的硬盘不是只有一个MBR而已?是没错啦!但是启动管理程序除了可以安装在MBR之外, 还可以安装在每个分割槽的启动磁区(boot sector)喔!瞎密?分割槽还有各别的启动磁区喔? 没错啊!这个特色才能造就『多重启动』的功能啊!

我们举一个例子来说,假设你的个人计算机只有一个硬盘,里面切成四个分割槽,其中第一、二分割槽分别安装了Windows及Linux, 你要如何在启动的时候选择用Windows还是Linux启动呢?假设MBR内安装的是可同时认识Windows/Linux操作系统的启动管理程序, 那么整个流程可以图示如下:

启动管理程序的工作运行示意图
图2.4.1、启动管理程序的工作运行示意图

在上图中我们可以发现,MBR的启动管理程序提供两个菜单,菜单一(M1)可以直接加载Windows的核心文件来启动; 菜单二(M2)则是将启动管理工作交给第二个分割槽的启动磁区(boot sector)。当使用者在启动的时候选择菜单二时, 那么整个启动管理工作就会交给第二分割槽的启动管理程序了。 当第二个启动管理程序启动后,该启动管理程序内(上图中)仅有一个启动菜单,因此就能够使用Linux的核心文件来启动罗。 这就是多重启动的工作情况啦!我们将上图作个总结:

  • 每个分割槽都拥有自己的启动磁区(boot sector)
  • 图中的系统槽为第一及第二分割槽,
  • 实际可启动的核心文件是放置到各分割槽内的!
  • loader只会认识自己的系统槽内的可启动核心文件,以及其他loader而已;
  • loader可直接指向或者是间接将管理权转交给另一个管理程序。

那现在请你想一想,为什么人家常常说:『如果要安装多重启动, 最好先安装Windows再安装Linux』呢?这是因为:

  • Linux在安装的时候,你可以选择将启动管理程序安装在MBR或各别分割槽的启动磁区, 而且Linux的loader可以手动配置菜单(就是上图的M1, M2...),所以你可以在Linux的boot loader里面加入Windows启动的选项;

  • Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分割槽的启动磁区,你没有选择的机会, 而且他没有让我们自己选择菜单的功能。

因此,如果先安装Linux再安装Windows的话,那MBR的启动管理程序就只会有Windows的项目,而不会有Linux的项目 (因为原本在MBR内的Linux的启动管理程序就会被覆盖掉)。 那需要重新安装Linux一次吗?当然不需要,你只要用尽各种方法来处理MBR的内容即可。 例如利用全中文的spfdisk(http://spfdisk.sourceforge.net/)软件来安装认识Windows/Linux的管理程序, 也能够利用Linux的救援模式来挽救MBR即可。

Tips:
启动管理程序与Boot sector的观念是非常重要的,我们会在第二十章分别介绍,您在这里只要先对於(1)启动需要启动管理程序, 而(2)启动管理程序可以安装在MBR及Boot Sector两处这两个观念有基本的认识即可, 一开始就背太多东西会很混乱啦!
鸟哥的图示

小标题的图示Linux安装模式下, 磁盘分区的选择(极重要)
  • 目录树结构(directory tree)

我们前面有谈过Linux内的所有数据都是以文件的形态来呈现的,所以罗,整个Linux系统最重要的地方就是在於目录树架构。 所谓的目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种文件架构。 所以,整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线『/』, 所有的文件都与目录树有关。目录树的呈现方式如下图所示:

目录树相关性示意图
图2.5.1、目录树相关性示意图

如上图所示,所有的文件都是由根目录(/)衍生来的,而次目录之下还能够有其他的数据存在。上图中长方形为目录, 波浪形则为文件。那当我们想要取得mydata那个文件时,系统就得由根目录开始找,然后找到home接下来找到dmtsai, 最终的档名为:/home/dmtsai/mydata的意思。

我们现在知道整个Linux系统使用的是目录树架构,但是我们的文件数据其实是放置在磁盘分区槽当中的, 现在的问题是『如何结合目录树的架构与磁碟内的数据』呢? 这个时候就牵扯到『挂载(mount)』的问题啦!


  • 文件系统与目录树的关系(挂载)

所谓的『挂载』就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。 由於整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分割槽的。 至於其他的目录则可依使用者自己的需求来给予挂载到不同的分割槽。我们以下图来作为一个说明:

目录树与分割槽之间的相关性
图2.5.2、目录树与分割槽之间的相关性

上图中假设我的硬盘分为两槽,partition 1是挂载到根目录,至於partition 2则是挂载到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition 2的,如果不是放在/home底下的目录, 那么数据就会被放置到partition 1了!

其实判断某个文件在那个partition底下是很简单的,透过反向追踪即可。以上图来说, 当我想要知道/home/vbird/test这个文件在那个partition时,由test --> vbird --> home --> /,看那个『进入点』先被查到那就是使用的进入点了。 所以test使用的是/home这个进入点而不是/喔!

例题:
现在让我们来想一想,我的计算机系统如何读取光盘内的数据呢?在Windows里面使用的是『光驱』的代号方式处理(假设为E槽时), 但在Linux底下我们依旧使用目录树喔!在默认的情况下,Linux是将光驱的数据放置到/media/cdrom里头去的。 如果光盘片里面有个文件档名为『我的文件』时,那么这个文件是在哪里?
答:
这个文件最终会在如下的完整档名中:
  • Windows: 壁纸\我的计算机\E:\我的文件
  • Linux: /media/cdrom/我的文件
如果光驱并非被挂载到/media/cdrom,而是挂载到/mnt这个目录时,刚刚读取的这个文件的档名会变成:
  • /mnt/我的文件
如果你了解这个档名,这表示你已经知道挂载的意义了!初次接触Linux时,这里最容易搞混,因为他与Windows的分割槽代号完全不一样!


  • distributions安装时,挂载点与磁盘分区的规划:

既然我们在Linux系统下使用的是目录树系统,所以安装的时候自然就得要规划磁盘分区与目录树的挂载了。 实际上,在Linux安装的时候已经提供了相当多的默认模式让你选择分割的方式了, 不过,无论如何,分割的结果可能都不是很能符合自己主机的样子!因为毕竟每个人的『想法』都不太一样! 因此,强烈建议使用『自订安装, Custom 』这个安装模式!在某些Linux distribution中,会将这个模式写的很厉害,叫做是『Expert, 专家模式』,这个就厉害了, 请相信您自己,了解上面的说明后,就请自称为专家了吧!没有问题!

  • 自订安装『Custom』:
    • A:初次接触Linux:只要分割『 / 』及『swap』即可:

    通常初次安装Linux系统的朋友们,我们都会建议他直接以一个最大的分割槽『 / 』来安装系统。 这样作有个好处,就是不怕分割错误造成无法安装的困境!例如/usr是Linux的可运行程序及相关的文件摆放的目录, 所以他的容量需求蛮大的,万一你分割了一块分割槽给/usr,但是却给的不够大,那么就伤脑筋了! 因为会造成无法将数据完全写入的问题,就有可能会无法安装啦!因此如果你是初次安装的话, 那么可以仅分割成两个分割槽『 / 与 Swap 』即可。

    • B:建议分割的方法:预留一个备用的剩余磁碟容量!

    在想要学习Linux的朋友中,最麻烦的可能就是得要常常处理分割的问题,因为分割是系统管理员很重要的一个任务。 但如果你将整个硬盘的容量都用光了,那么你要如何练习分割呢?^_^。所以鸟哥在后续的练习中也会这样做, 就是请你特别预留一块不分割的磁碟容量,作为后续练习时可以用来分割之用!

    此外,预留的分割槽也可以拿来做为备份之用。因为我们在实际操作Linux系统的过程中, 可能会发现某些script或者是重要的文件很值得备份时,就可以使用这个剩余的容量分割出新的分割槽, 并使用来备份重要的配置档或者是script。这有个最大的好处, 就是当我的Linux重新安装的时候,我的一些软件或工具程序马上就可以直接在硬盘当中找到!呵呵!重新安装比较便利啦。 为什么要重新安装?因为没有安装过Linux十次以上,不要说你学会了Linux了啦!慢慢体会这句话吧! ^_^

  • 选择Linux安装程序提供的默认硬盘分割方式:

    对於首次接触Linux的朋友们,鸟哥通常不建议使用各个distribution所提供默认的Server安装方式, 因为会让你无法得知Linux在搞什么鬼,而且也不见得可以符合你的需求!而且要注意的是, 选择Server的时候,请『确定』你的硬盘数据是不再需要!因为Linux会自动的把你的硬盘里面旧有的数据全部杀掉! 此外,硬盘至少需要2 GB以上才可以选择这一个模式!

现在你知道Linux为什么不好学了吧?因为很多基础知识都得要先了解!否则连安装都不知道怎么安装~ 现在你知道Linux的可爱了吧!因为如果你学会了,嘿嘿!很多计算机系统/操作系统的概念都很清晰, 转换到不同的资讯跑道是比较容易的喔!^_^


大标题的图示 安装Linux前的规划

从前面的说明我们知道操作系统与硬件的相关性是很高的,而目前最热门的计算机硬件系统为x86个人计算机系统。 我们也讨论了一下各硬件组件在Linux当中的装置档名,同时也了解到磁盘分区与每个分割槽在Linux目录树的关系, 也简单谈论了启动管理程序的用途。接下来我们得要开始安装Linux罗。

安装最重要的第一件事,就是要取得Linux distributions的光盘数据,该如何去下载? 目前有这么多的distributions,你应该要选择哪一个版本比较好?为什么会比较好? 在台湾,你可以在哪里下载你所需要的Linux distribution呢?这都是这一小节所要讨论的喔!


小标题的图示 选择适当的distribution

就如同第一章、Linux是什么里面的distributions谈到的, 事实上每个Linux distributions使用的都是来自於http://www.kernel.org官方网站所提供的Linux核心,各家distribution使用的软件其实也都是大同小异, 最大的差别或许就是在於软件的安装模式而已。所以,您只要选择其中一套,并且玩得出神入化, 那么Linux肯定可以学的成的。

不过,由於近年来网络环境实在不很安全,因此你在选择distribution时,特别要了解到该distribution适合的环境, 并且最好选择最新的distribution较佳喔! 以鸟哥来说,如果是将Linux定位在服务器上面的话,那么Red Hat Enterprise Linux及SuSE Enterprise Linux应该是很不错的选择,因为他的版本更动幅度较小,并且升级支持的期限较长的原因。

在我们这次的练习中,不想给大家太沈重的$$负担啦,所以鸟哥选择CentOS这一个号称与RHEL完全兼容的版本来练习, 目前(2009/08)最新的版本是CentOS 5.3版,你可以选择i386或x86_64的版本来安装,请依据您的硬件来选择。 如果你不知道你的硬件规格时,那么建议就直接安装i386的版本即可。因为i386的CentOS 5.x是可以安装在x86_64的硬件中的。

你可以选择到CentOS的官方网站去下载最新的版本,不过我们在台湾嘛!台湾有映设站台(mirror site), 所以由映设站台来下载比较快啊!底下列出CentOS的下载点:

你要知道的是,因为Linux distributions里面的软件越包越多,所以使用到的光盘(CD)片越来越多了, 因此目前各distribution都有提供DVD的版本。以上面的连结来说,每个连结里面的i386版本中, 你会发现到有DVD版本例如:CentOS-5.3-i386-bin-DVD.iso,也有CD版本例如: CentOS-5.3-i386-bin-[1-6]of6.iso。鸟哥建议您可以下载DVD版本,因为只有一片,比较环保啦!

Tips:
你所下载的文件扩展名是.iso,这就是所谓的image文件(映像档)。这种image文件是由光盘直接烧录成文件的, 文件非常的大,建议你不要使用浏览器(IE/Firefox..)来下载,可以使用FTP用户端程序来下载,例如Filezilla (http://filezilla-project.org/download.php)等。这样比较不需要担心断线的问题,因为可以续传啊!

此外,这种映像档可不能以数据格式烧录成为光盘/DVD的!你必须要使用烧录程序的功能, 将他以『映像档格式』烧录成为光盘或DVD才行!切记不要使用烧录数据档格式来烧录喔!重要重要!
鸟哥的图示

小标题的图示主机的服务规划与硬件的关系

我们前面已经提过,由於主机的服务目的不同,所需要的硬件等级与配备自然也就不一样! 底下鸟哥稍微提一提每种服务可能会需要的硬件配备规划,当然,还是得提醒, 每个朋友的需求都不一样,所以设计您的主机之前,请先针对自己的需求进行考量。而, 如果您不知道自己的考量为何,那么就先拿一部普通的计算机来玩一玩吧!不过要记得! 不要将重要数据放在练习用的Linux主机上面。


  • 打造Windows与Linux共存的环境:

在某些情况之下,你可能会想要在『一部主机上面安装两套以上的操作系统』, 例如底下这些状况:

  • 我的环境里面仅能允许我拥有一部主机,不论是经济问题还是空间问题~
  • 因为目前各主要硬件还是针对Windows进行驱动程序的开发,我想要同时保有Windows操作系统与Linux操作系统, 以确定在Linux底下的硬件应该使用那个I/O port或者是IRQ的分配等等;
  • 我的工作需要同时使用到Windows与Linux操作系统。

果真如此的话,那么刚刚我们在上一个小节谈到的启动流程与多重启动的数据就很重要了。 因为需要如此你才能够在一部主机上面操弄两种不同的操作系统嘛!

Tips:
一般来说,你还可以在Windows操作系统上面安装Virtualbox (http://www.virtualbox.org/) 之类的软件,让你可以在Windows系统上面『同时』使用Linux系统, 就是两个操作系统同时启动!不过,那样的环境比较复杂,尤其Virtualbox环境中很多硬件都是模拟的, 会让新手很难理解系统控制原理。基本上,鸟哥很不建议您使用这样的方式来学习Linux喔!
鸟哥的图示

如果你的Linux主机已经是想要拿来作为某些服务之用时,那么务必不要选择太久的硬件喔! 前面谈到过,太老旧的硬件可能会有电子零件老化的问题~另外,如果你的Linux主机必须要全年无休的启动著, 那么摆放这部主机的位置也需要选择啊!好了,底下再来谈一谈,在一般小型企业或学校单位中, 常见的某些服务与你的硬件关系有哪些?


  • NAT(达成IP分享器的功能):

通常小型企业或者是学校单位大多仅会有一条对外的连线,然后全公司/学校内的计算机全部透过这条连线连到网际网络上。 此时我们就得要使用IP分享器来让这一条对外连线分享给所有的公司内部员工使用。 那么Linux能不能达到此一IP分享的功能呢?当然可以,就是透过NAT服务即可达成这项任务了!

在这种环境中,由於Linux作为一个内/外分离的实体,因此网络流量会比较大一点。 此时Linux主机的网络卡就需要比较好些的配备。其他的CPU、RAM、硬盘等等的影响就小很多。 事实上,单利用Linux作为NAT主机来分享IP是很不智的~因为PC的耗电能力比IP分享器要大的多~

那么为什么你还要使用Linux作为NAT呢?因为Linux NAT还可以额外的加装很多分析软件, 可以用来分析用户端的连线,或者是用来控制频宽与流量,达到更公平的频宽使用呢! 更多的功能则有待后续更多的学习罗!你也可以参考我们在服务器架设篇当中的数据罗! 


  • SAMBA(加入Windows网络上的芳邻):

在你的Windows系统之间如何传输数据呢?当然就是透过网络上的芳邻来传输啦!那还用问。 这也是学校老师在上课过程中要分享数据给同学常用的机制了。问题是,Windows XP的网芳一般只能同时分享十部用户端连线,超过的话就得要等待了~真不人性化。

我们可以使用Linux上面的SAMBA这个软件来达成加入Windows网芳的功能喔!SAMBA的效能不错, 也没有用户端连线数的限制,相当适合於一般学校环境的文件服务器(file server)的角色呢!

这种服务器由於分享的数据量较大,对於系统的网络卡与硬盘的大小及速度就比较重要, 如果你还针对不同的使用者提供文件服务器功能,那么/home这个目录可以考虑独立出来,并且加大容量。


  • Mail(邮件服务器):

邮件服务器是非常重要的,尤其对於现代人来说,电子邮件几乎已经取代了传统的人工邮件递送了。 拜硬盘价格大跌及Google/Yahoo/MicroSoft公平竞争之赐,一般免费的email信箱几乎都提供了很不错的邮件服务, 包过Web介面的传输、大於2GB以上的容量空间及全年无休的服务等等。例如非常多人使用的gmail就是一例: http://gmail.com

虽然免费的信箱已经非常够用了,老实说,鸟哥也不建议您架设mail server了。问题是, 如果你是一间私人单位的公司,你的公司内传送的email是具有商业机密或隐私性的,那你还想要交给免费信箱去管理吗? 此时才有需要架设mail server罗。CentOS一安装完毕就提供了Sendmail及Postfix两种mail server软件了!

在mail server上面,重要的也是硬盘容量与网络卡速度,在此情境中,也可以将/var目录独立出来,并加大容量。


  • Web(WWW服务器):

WWW服务器几乎是所有的网络主机都会安装的一个功能,因为他除了可以提供Internet的WWW连线之外, 很多在网络主机上面的软件功能(例如某些分析软件所提供的最终分析结果的画面)也都使用WWW作为显示的介面, 所以这家伙真是重要到不行的。

CentOS使用的是Apache这套软件来达成WWW网站的功能,在WWW服务器上面,如果你还有提供数据库系统的话, 那么CPU的等级就不能太低,而最重要的则是RAM了!要添加WWW服务器的效能,通常提升RAM是一个不错的考量。


  • DHCP(提供用户端自动取得IP的功能):

如果你是个区域网络管理员,你的局域网内共有20部以上的计算机给一般员工使用,这些员工假设并没有计算机网络的维护技能。 那你想要让这些计算机在连上Internet时需要手动去配置IP还是他可以自动的取得IP呢?当然是自动取得比较方便啦! 这就是DHCP服务的功能了!用户端计算机只要选择『自动取得IP』,其他的,就是你系统管理员在DHCP服务器上面配置一下即可。 这个咚咚的硬件要求可以不必很高罗。


  • Proxy(代理服务器):

这也是常常会安装的一个服务器软件,尤其像中小学校的频宽较不足的环境下, Proxy将可有效的解决频宽不足的问题!当然,你也可以在家里内部安装一个Proxy喔!但是, 这个服务器的硬件要求可以说是相对而言最高的,他不但需要较强有力的CPU来运行,对於硬盘的速度与容量要求也很高! 自然,既然提供了网络服务,网络卡则是重要的一环!


  • FTP:

常常看到很多朋友喜欢架设FTP去进行网络数据的传输,甚至很多人会架设地下FTP网站去传输些违法的数据。 老实说,『FTP传输再怎么地下化也是很容易被捉到的』啦!所以,鸟哥相当不建议您架设FTP的喔! 不过,对於大专院校来说,因为常常需要分享给全校师生一些免费的资源, 此时匿名使用者的FTP软件功能就很需要存在了。对於FTP的硬件需求来说,硬盘容量与网络卡好坏相关性较高。

大致上我们会安装的服务器软件就是这一些罗! 当然啦,还是那句老话,在目前你刚接触Linux的这个阶段中,还是以Linux基础为主, 鸟哥也希望你先了解Linux的相关主机操作技巧,其他的架站,未来再谈吧! 而上面列出的各项服务,仅是提供给你,如果想要架设某种网络服务的主机时,你应该如何规划主机比较好!


小标题的图示主机硬盘的主要规划

系统对於硬盘的需求跟刚刚提到的主机开放的服务有关,那么除了这点之外,还有没有其他的注意事项呢? 当然有,那就是数据的分类与数据安全性的考量。所谓的『数据安全』并不是指数据被网络cracker所破坏, 而是指『当主机系统的硬件出现问题时,你的文件数据能否安全的保存』之意。

常常会发现网络上有些朋友在问『我的Linux主机因为跳电的关系,造成不正常的关机,结果导致无法启动,这该如何是好?』 呵呵,幸运一点的可以使用fsck来解决硬盘的问题,麻烦一点的可能还需要重新安装Linux呢!伤脑筋吧!另外, 由於Linux是多人多工的环境,因此很可能上面已经有很多人的数据在其中了, 如果需要重新安装的话,光是搬移与备份数据就会疯掉了!所以硬盘的分割考量是相当重要的!

虽然我们在本章的第二小节部分有谈论过磁盘分区了,但是,硬盘的规划对於Linux新鲜人而言,那将是造成你『头疼』的主要凶手之一! 因为硬盘的分割技巧需要对於Linux文件结构有相当程度的认知之后才能够做比较完善的规划的! 所以,在这里你只要有个基础的认识即可。老实说,没有安装过十次以上的Linux系统,是学不会Linux与磁盘分区的啦!

无论如何,底下还是说明一下基本硬盘分割的模式吧!

  • 最简单的分割方法:
    这个在上面第二节已经谈过了,就是仅分割出根目录与内存置换空间( / & swap )即可。 然后再预留一些剩余的磁碟以供后续的练习之用。不过,这当然是不保险的分割方法(所以鸟哥常常说这是『懒人分割法』)! 因为如果任何一个小细节坏掉(例如坏轨的产生),你的根目录将可能整个的损毁~挽救方面较困难!

  • 稍微麻烦一点的方式:
    较麻烦一点的分割方式就是先分析这部主机的未来用途,然后根据用途去分析需要较大容量的目录, 以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起, 那当这些读写较频繁的磁盘分区槽有问题时,至少不会影响到根目录的系统数据,那挽救方面就比较容易啊! 在默认的CentOS环境中,底下的目录是比较符合容量大且(或)读写频繁的目录罗:
    • /
    • /usr
    • /home
    • /var
    • Swap

以鸟哥为例,通常我会希望我的邮件主机大一些,因此我的/var通常会给个数GB的大小, 如此一来就可以不担心会有邮件空间不足的情况了!另外,由於我开放SAMBA服务, 因此提供每个研究室内人员的数据备份空间,所以罗,/home所开放的空间也很大!至於/usr/的容量, 大概只要给2-5GB即可!凡此种种均与您当初预计的主机服务有关! 因此,请特别注意您的服务项目!然后才来进行硬盘的规划。

 

转载于:https://www.cnblogs.com/wyl9527/p/6861217.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值