鸟哥的 Linux 私房菜
Linux 基础篇 | Linux 服务器篇 | Linux 企业应用篇 | 安全管理
     
 
第三章、主机规划与磁碟分割
最近更新日期:2009/08/06
事实上,要安装好一台Linux主机并不是那么简单的事情,你必须要针对distributions的特性、服务器软件的能力、 未来的升级需求、硬体扩充性需求等等来考量,还得要知道磁碟分割、文件系统、Linux操作较频繁的目录等等, 都得要有一定程度的了解才行,所以,安装Linux并不是那么简单的工作喔! 不过,要学习Linux总得要有Linux系统存在吧?所以鸟哥在这里还是得要提前说明如何安装一台Linux练习机。 在这一章里面,鸟哥会介绍一下,在开始安装Linux之前,您应该要先思考哪些工作? 好让您后续的主机维护轻松愉快啊!此外,要了解这个章节的重要性,您至少需要了解到Linux文件系统的基本概念, 所以,在您完成了后面的相关章节之后,记得要再回来这里看看如何规划主机喔! ^_^


大标题的图示Linux与硬体的搭配

虽然个人电脑各元件的主要介面是大同小异的,包括前面第零章计算机概论讲到的种种介面等, 但是由于新的技术来得太快,Linux核心针对新硬体所纳入的驱动程序模组比不上硬体更新的速度, 加上硬体厂商针对Linux所推出的驱动程序较慢,因此你在选购新的个人电脑(或服务器)时, 应该要选择已经过安装Linux测试的硬体比较好。

此外,在安装Linux之前,你最好了解一下你的Linux预计是想达成什么任务,这样在选购硬体时才会知道那个元件是最重要的。 举例来说,桌面电脑(Desktop)的使用者,应该会用到X Window系统, 此时,显示卡的优劣与记忆体的大小可就占有很重大的影响。如果是想要做成文件服务器, 那么硬碟或者是其他的储存设备,应该就是您最想要增购的元件啰!所以说,功课还是需要作的啊!

鸟哥在这里要不厌其烦的再次的强调,Linux对于电脑各元件/装置的分辨, 与大家惯用的Windows系统完全不一样!因为,各个元件或装置在Linux底下都是‘一个文件!’ 这个观念我们在第一章Linux是什么里面已经提过, 这里我们再次的强调。因此,你在认识各项装置之后,学习Linux的装置档名之前, 务必要先将Windows对于装置名称的概念先拿掉~否则会很难理解喔!


小标题的图示认识电脑的硬体配备

什么?学Linux还得要玩硬体?’呵呵!没错! 这也是为什么鸟哥要将计算机概论搬上台面之故! 我们这里主要是介绍较为普遍的个人电脑架构来设定Linux服务器,因为比较便宜啦! 至于各相关的硬体元件说明已经在第零章计概内讲过了,这里不再重复说明。 仅将重要的主机板与元件的相关性图示如下:

个人电脑各元件的相关性
图1.1.1、个人电脑各元件的相关性
(上述图示主要取自tom's硬体指南,各元件图片分属个别公司所有)

那么我们应该如何挑选电脑硬体呢?随便买买就好,还是有特殊的考量?底下有些思考角度可以提供给大家参考看看:


  • 游戏机/工作机的考量

事实上,电脑主机的硬体配备与这部主机未来的功能是很有相关性的!举例来说,家里有小孩, 或者自己仍然算是小孩的朋友大概都知道:‘要用来打Game的‘游戏机电脑’ 所需要的配备一定比办公室用的‘工作机电脑’配备更高档’,为什么呢? 因为现在一般的三维(3D)电脑游戏所需要的3D光影运算太多了,所以显示卡与CPU资源都会被耗用的非常多! 当然就需要比较高级的配备啰,尤其是在显示卡、CPU(例如Intel的Core 2 Duo及AMD的Athlon64 X2等)及主机板晶片组方面的功能。

至于办公室的工作环境中,最常使用到的软件大多是办公软件(Office),最常使用的网络功能是浏览器, 这些软件所需要的运算并不高,理论上目前的入门级电脑都能够跑得非常顺畅了!(例如Intel Celeron及AMD的Sempron)。 甚至很多企业都喜欢购买将显示卡、主机板晶片组整合在一起的整合型晶片的电脑,因为便宜又好用!


  • 效能/价格比的考量

并不是‘贵就比较好’喔!在目前(2009)全球经济萧条的情况下,如何兼顾省钱与电脑硬体的效能问题,很重要! 如果你喜欢购买最新最快的电脑零件,这些刚出炉的元件都非常的贵,而且作业系统还不见得能够完整的支援。 所以,鸟哥都比较喜欢购买主流级的产品而非最高档的。因为我们最好能够考虑到效能/价格比。 如果高一级的产品让你的花费多一倍,但是新增加的效能却只有10%而已,那这个效能/价格的比值太低,不建议啦!

此外,由于电价越来越高,如何‘省电’就很重要啦!因此目前硬体评论界有所谓的‘每瓦效能’的单位, 每瓦电力所发挥的效能越高,当然代表越省电啊!这也是购买硬体时的考量之一啦!要知道,如果是做为服务器用, 一年365天中时时刻刻都开机,则你的电脑多花费50瓦的电力时,每年就得要多花450度电左右,如果以企业来讲, 每百部电脑每年多花450度电的话,每年得多花十万块以上的电费呢!所以这也需要考量啊!


  • 支援度的考量

并非所有的产品都会支援特定的作业系统,这牵涉到硬体开发商是否有意愿提供适当的驱动程序之故。 因此,当我们想要购买或者是升级某些电脑元件时,应该要特别注意该硬体是否有针对您的作业系统提供适当的驱动程序, 否则,买了无法使用,那才是叫人呕死啊!因此,针对Linux来说,底下的硬体分析就重要啦!


小标题的图示选择与Linux搭配的主机配备

由于硬体的加速发展与作业系统核心功能的增强,导致较早期的电脑已经没有能力再负荷新的作业系统了。 举例来说,Pentun-II以前的硬体配备可能已经不再适合现在的新的Linux distribution。 而且较早期的硬体配备也可能由于保存的问题或者是电子零件老化的问题, 导致这样的电脑系统反而非常容易在运作过程中出现不明的当机情况,因此在利用旧零件拼凑Linux使用的电脑系统时, 真的得要特别留意呢!

不过由于Linux运作所需要的硬体配备实在不需要太高档,因此,如果有近期汰换下来的, 比Pentun-III 500还要新的硬体配备, 不必急着丢弃。由于P-III的硬体不算太老旧,在效能方面其实也算的上非常OK了~所以, 鸟哥建议您如果有P-III以后等级的电脑被淘汰,可以拿下来测试一下,说不定能够作为你日常生活的Linux服务器, 或者是备用服务器,都是非常好用的功能哩!

但是由于不同的任务的主机所需要的硬体配备并不相同,举例来说,如果你的Linux主机是要作为企业内部的Mail server或者是Proxy server时,或者是需要使用到图形介面的运算(X Window内的Open GL等等功能), 那么你就必须要选择高档一点的电脑配备了,使用过去的电脑零件可能并不适合呢。

底下我们稍微谈一下,如果你的Linux主要是作为小型服务器使用,并不负责学术方面的大量运算, 而且也没有使用X Window的图形介面,那你的硬体需求只要像底下这样就差不多了:

  • CPU
    CPU只要不是老旧到会让你的硬体系统当机的都能够支援!如同前面谈到的,目前(2009)的环境中, Pentun-III的CPU不算太旧而且效能也不错,也就是说P-III就非常好用了。

  • RAM
    主记忆体是越大越好!事实上在Linux服务器中,主记忆体的重要性比CPU还要高的多!因为如果主记忆体不够大, 就会使用到硬碟的记忆体置换空间(swap)。 而由计算机概论的内容我们知道硬碟比记忆体的速度要慢的多, 所以主记忆体太小可能会影响到整体系统的效能的!尤其如果你还想要玩X window的话,那主记忆体的容量就不能少。 对于一般的小型服务器来说,建议至少也要512MB以上的主记忆体容量较佳。

  • Hard Disk
    由于资料量与资料存取频率的不同,对于硬碟的要求也不相同。 举例来说,如果是一般小型服务器,通常重点在于容量,硬碟容量大于20GB就够用到不行了! 但如果你的服务器是作为备份或者是小企业的文件服务器,那么你可能就得要考量较高阶的磁碟阵列(RAID)模式了。
    Tips:
    磁碟阵列(RAID)是利用硬体技术将数个硬碟整合成为一个大硬碟的方法,作业系统只会看到最后被整合起来的大硬碟。 由于磁碟阵列是由多个硬碟组成,所以可以达成速度效能、备份等任务。更多相关的磁碟阵列我们会在第十五章中介绍的。
    鸟哥的图示
  • VGA
    对于不需要X Window的服务器来说,显示卡算是最不重要的一个元件了!你只要有显示卡能够让电脑启动,那就够了。 但如果需要X window系统时,你的显示卡最好能够拥有32MB以上的记忆体容量,否则跑X系统会很累喔! 鸟哥曾使用一块只有2MB记忆体的显示卡跑X,光是按一个按钮就花费数分钟时间,真是折磨人家的耐心啊!

  • Network Interface Card
    网络卡是服务器上面最重要的元件了!目前新式的主机板大多拥有10/100/1000Mbps的高速网络,不过,老实说, 只要好一点的10/100网络卡就非常够用了!毕竟我们的频宽并没有大到Gigabit的速度!如果是小型服务器, 一块Realtek RTL8139晶片的网卡就非常好用了,不过,如果是读取非常频繁的网站, 好一点的Intel/3Com网卡应该是比较适合的喔。

  • 光碟、软碟、键盘与滑鼠
    不要旧到你的电脑不支援就好了,因为这些配备都是非必备的喔!举例来说,鸟哥安装好Linux系统后, 可能就将该系统的光碟机、滑鼠、软碟机等通通拔除,只有网络线连接在电脑后面而已,其他的都是透过网络连线来管控的哩! 因为通常服务器这东西最需要的就是稳定,而稳定的最理想状态就是平时没事不要去动他是最好的。

底下鸟哥针对一般你可能会接触到的电脑主机的用途与相关硬体配备的基本要求来说明一下好了:

  • 一般小型主机且不含X Window系统:
    • 用途:家庭用NAT主机(IP分享器功能)或小型企业之非图形介面小型主机。
    • CPU:大于P-III 500以上等级即可。
    • RAM:至少128MB,不过还是大于256MB以上比较妥当!
    • 网络卡:一般的10/100 Mbps即可应付。
    • 显示卡:只要能够被Linux捉到的显示卡即可,例如NVidia或ATI的主流显示卡均可。
    • 硬碟:20GB以上即可!

  • 桌上型(Desktop)Linux系统/含X Window:
    • 用途:Linux的练习机或办公室(Office)工作机。(一般我们会用到的环境)
    • CPU:最好等级高一点,例如P-4以上等级。
    • RAM:一定要大于512MB比较好!否则容易有图形介面停顿的现象。
    • 网络卡:普通的10/100 Mbps就好了!
    • 显示卡:使用32MB以上记忆体的显示卡!
    • 硬碟:越大越好,最好有60GB。

  • 中型以上Linux服务器:
    • 用途:中小型企业/学校单位的FTP/mail/WWW等网络服务主机。
    • CPU:最好等级高一点,可以考虑使用双核心系统。
    • RAM:最好能够大于1GB以上,大于4GB更好!
    • 网络卡:知名的3Com或Intel等厂牌,比较稳定效能较佳!也可选购10/100/1000 Mbps的速度。
    • 显示卡:如果有使用到图形功能,则一张64MB记忆体的显示卡是需要的!
    • 硬碟:越大越好,如果可能的话,使用磁碟阵列,或者网络硬碟等等的系统架构, 能够具有更稳定安全的传输环境,更佳!
    • 建议企业用电脑不要自行组装,可购买商用服务器较佳, 因为商用服务器已经通过制造商的散热、稳定度等测试,对于企业来说,会是一个比较好的选择。

总之,鸟哥在这里仅是提出一个方向:如果你的Linux主机是小型环境使用的,即时当机也不太会影响到企业环境的运作时, 那么使用升级后被淘汰下来的零件以组成电脑系统来运作,那是非常好的回收再利用的案例。 但如果你的主机系统是非常重要的,你想要更一台更稳定的Linux服务器,那考虑系统的整体搭配与运作效能的考量, 购买已组装测试过的商用服务器会是一个比较好的选择喔!

Tips:
一般来说,目前(2009)的入门电脑机种,CPU至少都是Intel Core的2GHz系列的等级以上, 主记忆体至少有1GB,显示卡记忆体也有128MB以上,所以如果您是新购置的电脑, 那么该电脑用来作为Linux的练习机,而且加装X Window系统,肯定是可以跑的吓吓叫的啦!^_^
鸟哥的图示

此外,Linux开发商在释出Linux distribution之前,都会针对该版所预设可以支援的硬体做说明, 因此,你除了可以在Linux的Howto文件去查询硬体的支援度之外,也可以到各个相关的Linux distributions网站去查询呢! 底下鸟哥列出几个常用的硬体与Linux distributions搭配的网站,建议大家想要了解你的主机支不支援该版Linux时, 务必到相关的网站去搜寻一下喔!

总之,如果是自己维护的一个小网站,考虑到经济因素,你可以自行组装一台主机来搭建。 而如果是中、大型企业,那么主机的钱不要省~因为,省了这些钱,未来主机挂点时, 光是要找出哪个元件出问题,或者是系统过热的问题,会气死人ㄟ! 而且,要注意的就是未来你的Linux主机规划的‘用途’来决定你的Linux主机硬体配备喔!相当的重要呢!


小标题的图示各硬体装置在Linux中的档名

选择好你所需要的硬体配备后,接下来得要了解一下各硬体在Linux当中所扮演的角色啰。 这里鸟哥再次的强调一下:‘在Linux系统中,每个装置都被当成一个文件来对待’ 举例来说,IDE介面的硬碟的文件名称即为/dev/hd[a-d],其中, 括号内的字母为a-d当中的任意一个,亦即有/dev/hda, /dev/hdb, /dev/hdc, 及 /dev/hdd这四个文件的意思。

Tips:
这种中括号[]型式的表示法在后面的章节当中会使用得很频繁,请特别留意

另外先提出来强调一下,在Linux这个系统当中,几乎所有的硬体装置文件都在/dev这个目录内, 所以你会看到/dev/hda, /dev/fd0等等的档名喔。
鸟哥的图示

那么印表机与软碟呢?分别是/dev/lp0, /dev/fd0啰!好了,其他的周边设备呢? 底下列出几个常见的装置与其在Linux当中的档名啰:

装置 装置在Linux内的档名
IDE硬碟机 /dev/hd[a-d]
SCSI/SATA/USB硬碟机 /dev/sd[a-p]
USB快闪碟 /dev/sd[a-p](与SATA相同)
软碟机 /dev/fd[0-1]
印表机 25针: /dev/lp[0-2]
USB: /dev/usb/lp[0-15]
滑鼠 USB: /dev/usb/mouse[0-15]
PS2: /dev/psaux
当前CDROM/DVDROM /dev/cdrom
当前的滑鼠 /dev/mouse
磁带机 IDE: /dev/ht0
SCSI: /dev/st0

需要特别留意的是硬碟机(不论是IDE/SCSI/USB都一样),每个磁碟机的磁碟分割(partition)不同时, 其磁碟档名还会改变呢!下一小节我们会介绍磁碟分割的相关概念啦!需要特别注意的是磁带机的档名, 在某些不同的distribution当中可能会发现不一样的档名,需要稍微留意。 总之,你得先背一下IDE与SATA硬碟的档名就是了!其他的,用的到再来背吧!

Tips:
更多Linux核心支援的硬体装置与档名,可以参考如下网页:
http://www.kernel.org/pub/linux/docs/device-list/devices.txt
鸟哥的图示

大标题的图示磁碟分割

这一章在规划的重点是为了要安装Linux,那Linux系统是安装在电脑元件的那个部分呢?就是磁碟啦!所以我们当然要来认识一下磁碟先。 我们知道一块磁碟是可以被分割成多个分割槽的(partition),以旧有的Windows观点来看,你可能会有一颗磁碟并且将他分割成为C:, D:, E:槽对吧!那个C, D, E就是分割槽(partition)啰。但是Linux的装置都是以文件的型态存在,那分割槽的档名又是什么? 如何进行磁碟分割,磁碟分割有哪些限制?是我们这个小节所要探讨的内容啰。


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

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

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

IDE\Jumper Master Slave
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd

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

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

例题:
如果你的PC上面有两个SATA磁碟以及一个USB磁碟,而主机板上面有六个SATA的插槽。这两个SATA磁碟分别安插在主机板上的SATA1, SATA5插槽上, 请问这三个磁碟在Linux中的装置档名为何?
答:
由于是使用探测到的顺序来决定装置档名,并非与实际插槽代号有关,因此装置的档名如下:
  1. SATA1插槽上的档名:/dev/sda
  2. SATA5插槽上的档名:/dev/sdb
  3. USB磁碟(开机完成后才被系统捉到):/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: /medai/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即可!凡此种种均与您当初预计的主机服务有关! 因此,请特别注意您的服务项目!然后才来进行硬碟的规划


小标题的图示鸟哥说:关于练习机的安装建议
  • 关于硬体方面

老实说,安装Linux是非常困难的一件事,所以在补教界的教材方面,安装(Installation)通常是在系统管理教完后才教的。 那因为我们不是在补教业的教室中,所以没有现成的Linux系统可以用,当然就得要自行安装一个啦! 因此这里才会先跟大家介绍如何安装Linux的。虽然很多朋友都喜欢使用Virtualbox安装Linux去学习, 但是Virtualbox或其他相关的虚拟化软件都是用模拟的方式去启动Linux的,新手学习方面常常会误解~

有鉴于此,因此,鸟哥‘强烈的建议您,务必拥有一台独立的主机, 而且内含一颗仅有Linux作业系统的硬碟’,以鸟哥自己为例,我的主机上面有一个抽取式硬碟盒,而我有两颗分离的硬碟, 分别安装Windows与Linux系统,要使用不同的作业系统时就抽换硬碟,如此一来,主机很单纯, 而抽换也很快速,不需要对机壳拆拆装装的,很方便!提供给您做为参考。


  • 关于硬碟分割方面

此外,在硬碟的分割方面,鸟哥也建议新手们,先暂时以/及swap两个分割即可,而且,还要预留一个未分割的空间喔! 因为我们是练习机,暂时不会提供网络服务,所以只要有/及Swap提供给我们进行安装Linux的空间即可。不过, 我们未来会针对系统的磁碟部分进行分割的练习以及磁碟配额(quota)的练习,因此,预留一个磁碟空间是必须要的!

举例来说,如果你有一个20GB的硬碟,那么建议你分15 GB给/来安装Linux,512 MB给Swap,另外的4 GB左右不要分割,先保留下来,未来我们可以继续来练习喔!^_^


  • 关于软件方面

另一个容易发现问题的地方,在于使用者常常会找不到某些指令,导致无法按照书上的说明去执行某些指令。 因为无法执行指令,所以就会一直给他放在那边,不会继续往下学习啊!真是可惜! 为什么会找不到指令呢?很简单啊!就是因为没有安装该软件啊!所以,‘强烈的建议新手,务必将所有的套件都给他安装上去!’也就是选择‘安装所有套件’就是了。

当然啦,上面提到的都是针对‘练习机’而言喔!如果是您自己预计要上线的Linux主机, 那就不建议按照上面的说明安装了!切记切记!


小标题的图示鸟哥的两个实际案例

这里说一下鸟哥的两个实际的案例,这两个案例是目前还在运作的主机喔! 要先声明的是,鸟哥的范例不见得是最好的,因为每个人的考量并不一样。我只是提供相对可以使用的方案而已喔!


  • 案例一:家用的小型Linux服务器,IP分享与文件分享中心:
  • 提供服务
    提供家里的多部电脑的网络连线分享,所以需要NAT功能。提供家庭成员的资料存放容量,由于家里使用Windows系统的成员不少, 所以建置SAMBA服务器,提供网芳的网络磁碟功能。

  • 主机硬体配备
    • CPU使用P-III 800 MHz;
    • 记忆体大小为512 MB的RAM;
    • 两张网络卡,控制晶片为常见的螃蟹卡(Realtek);
    • 共有两颗磁碟,一颗系统碟一颗资料碟。资料碟高达160 GB;
    • 显示卡为以前很流行的GeForce 2 MX含32 MB的记忆体;
    • 安装完毕后将荧幕,键盘,滑鼠,DVD-ROM等配备均移除,仅剩下网络线与电源线。

  • 硬碟分割
    • 分成/boot, /, /usr, /var, /tmp等目录均独立;
    • /home独立出来,放置到那颗160GB的磁碟,提供给家庭成员存放个人资料;
    • 1 GB的Swap;


  • 案例二:提供Linux的PC丛集(Cluster)电脑群:
  • 提供服务
    提供研究室成员对于模式模拟的软、硬体平台,主要提供的服务并非网际网络服务, 而是研究室内部的研究工作分析。

  • 主机硬体配备
    • 利用两部双CPU(均为双核)的x86_64系统(泰安主机板提供的特殊功能);
    • 使用Geforce 7300显示卡,内含64MB的记忆体;
    • 使用一颗硬碟作为主系统,六颗磁碟组成磁碟阵列,以储存模式模拟的结果;
    • 使用PCI-Express介面的网络卡,速度为Gbps;
    • 共有4 GB的主记忆体容量;

  • 硬碟分割
    • 全部的磁碟阵列容量均给/cluster/raid目录,占有2TB的容量;
    • 2 GB的swap容量;
    • 分割出/, /usr, /var, /tmp等目录,避免程序错误造成系统的困扰;
    • /home也独立出来,让每个研究室成员可以拥有自己的资料存放容量;

在上面的案例中,案例一是属于小规模的主机系统,因此只要使用预计被淘汰的配备即可进行主机的搭建! 唯一可能需要购买的大概是网络卡吧!呵呵!而在案例二中,由于我需要大量的数值运算, 且运算结果的资料非常的庞大,因此就需要比较大的磁碟容量与较佳的网络系统了。 以上的资料请先记得,因为下一章节在实际安装Linux之前,你得先进行主机的规划呀!


小标题的图示大硬碟配合旧主机造成的无法开机问题

随着时代的演变,在2009年中的目前,个人电脑上面的硬碟容量竟然都已经高达750 GB以上了! 这么大的硬碟用起来当然是很爽快的啦~不过,也有一些问题的~那就是~开机的问题~

某些比较旧的主机板中,他们的BIOS可能找不到比较大容量的磁碟的。所以,你在旧主机板上面安装新的大容量磁碟时, 很可能你的磁碟容量会被误判!不过,即使是这样,Linux还是能够安装喔!而且能够顺利的捉到完整的硬碟容量呢! 为什么呢?因为当Linux核心顺利开机启动后,他会重新再去探测一次整个硬体而不理会BIOS所提供的资讯, 所以就能够顺利的捉到正确的硬碟,并且让你安装Linux。

但是,安装完毕后,可能会无法开机喔!为什么啊?前一小节里面我们不是谈到过开机流程与MBR的内容吗? 安装的时候是以光碟开机并且由光碟载入Linux核心,所以核心可以被顺利载入来安装。但是若以这样的配备来开机时, 因为BIOS捉到的硬碟是不对的,所以使用硬碟开机可能就会出现无法开机的错误了。那怎办?

由于BIOS捉到的磁碟容量不对,但是至少在整颗磁碟前面的磁区他还读的到啊! 因此,你只要将这个磁碟最前面的容量分割出一个小分割槽,并将这个分割槽与系统开机文件的放置目录摆在一起, 那就是 /boot 这个目录!就能够解决了!很简单吧! 其实,重点是:‘将开机磁区所在分割槽规范在小于1024个磁柱以内~’ 即可!那怎么做到呢?很简单,在进行安装的时候,规划出三个磁区,分别是:

  • /boot
  • /
  • swap

那个/boot只要给100M Bytes左右即可!而且/boot要放在整块硬碟的最前面!这部份你先有印象与概念即可,未来我们谈到第二十章的开机流程时,会再加强说明的! ^_^


大标题的图示重点回顾
  • 新添购电脑硬体配备时,需要考量的角度有‘游戏机/工作机的考量’、‘效能/价格笔的考量’、‘支援度的考量’等;
  • 旧的硬体配备可能由于保存的问题或者是电子零件老化的问题, 导致电脑系统非常容易在运作过程中出现不明的当机情况
  • Red Hat的硬体支援:https://hardware.redhat.com/?pagename=hcl
  • 在Linux系统中,每个装置都被当成一个文件来对待,每个装置都会有装置档名。
  • 磁碟的装置档名主要分为 (1)IDE介面的/dev/hd[a-d]及 (2)SATA/SCSI/USB介面的/dev/sd[a-p]两种;
  • 磁碟的第一个磁区主要记录了两个重要的资讯,分别是: (1)主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 bytes (1)分割表(partition table):记录整颗硬碟分割的状态,有64 bytes;
  • 磁碟的主要与延伸分割最多可以有四个,逻辑分割的装置档名号码,一定由5号开始;
  • 开机的流程由:BIOS-->MBR-->-->boot loader-->核心文件;
  • boot loader的功能主要有:提供选单、载入核心、转交控制权给其他loader
  • boot loader可以安装的地点有两个,分别是 MBR 与 boot sector
  • Linux作业系统的文件使用目录树系统,与磁碟的对应需要有‘挂载’的动作才行;
  • 新手的简单分割,建议只要有/及swap两个分割槽即可

大标题的图示本章习题
(要看答案请将滑鼠移动到‘答:’底下的空白处,按下左键圈选空白处即可察看)
实作题部分:
  • 请分析你的家用电脑,以你的硬体配备来计算可能产生的耗电量,最终再以计算出来的总瓦数乘上你可能开机的时间, 以推估出一年你可能会花费多少钱在你的这部主机上面?
    硬体里面包括 CPU/硬碟/主机板/记忆体/显示卡/荧幕等等都会消耗电力,同时电源供应器也会消耗一台份的电力。 若有实际测量工具时,请使用测量结果来计算。若无测量工具,请上网找出每个元件的最大理论消耗功率来计算。
问答题部分:
  • 一台电脑主机是否只要 CPU 够快,整体速度就会提高?
    不见得!一台电脑系统的速度与整体电脑系统的运作有关,每个元件皆会影响电脑的速度! 这包括了记忆体、CPU、AGP与显示卡速度,硬碟的速度以及其他相关的输入输出介面等等! 所以,如果您的系统是升级的,那么还得必须要注意各个旧元件是否可以保留, 或者旧的可以用的元件必须要舍弃!
  • Linux 对于硬体的要求需要的考虑为何?是否一定要很高的配备才能安装 Linux ?
    Linux 对于硬体的要求是因‘服务种类、服务范围及主机的角色’而定的。例如一台专门用来运算数值解析的 Linux 运算工作站,需要比较强大的 CPU 与足够的 RAM 来进行工作,至于一般家庭用的仅用来做为 ADSL 宽频分享器的 Linux 主机,则只要 P-III 等级的电脑,甚至 P-II 系列的等级,就可以很顺利的运行 Linux 了。
  • 一台好的主机在安装之前,最好先进行规划,哪些是必定需要注意的 Linux 主机规划事项?
    依据上一题的答案内容,我们知道 Linux 对于硬体的要求是‘因地制宜’地!所以,要进行 Linux 的安装之前,一定需要规划 Linux 主机的定位与角色!因此, Linux 的主机是否开放网络服务?这部主机的未来规划中,是否需要进行大量的运算?这 部主机是否需要提供很大的硬碟容量来服务客户端的使用?这部主机预计开放的网络服务内容? 等等,都是需要经过考量的,尤其未来的‘套件选择安装’上面,更需要依据这些规划来设定。
  • 请写下下列配备中,在 Linux 的装置档名:
    IDE 硬碟:
    CDROM:
    印表机:
    软碟机:
    网络卡:
    • IDE 硬碟:/dev/hd[a-d]
    • CDROM:/dev/cdrom
    • 印表机:/dev/lp[0-2]
    • 软碟机:/dev/fd[0-1]
    • 网络卡:/dev/eth[0-n]
  • 如果您的系统常常当机,又找不到方法解决,您可以朝硬体的那个方向去搜寻?
    如果软件没有问题的话,那么当然发生当机的,可能就是硬体的问题了。 1.可以先检测系统有没有超频? 2.再来则是查阅当系统运作时,系统的机壳内温度会不会过高? 因为过高的温度常常会造成当机。 3.再者,检查一下 CPU 的温度,这也很重要。 4.再来,则是检查是否插了多条的记忆体,因为不同厂牌的记忆体混插很容易造成系统不稳定。 5.电源供应器是否合乎标准?这些都可以进行检测喔!
  • 目前在个人电脑上面常见的硬碟与主机板的连接介面有哪两个?
    有早期的 IDE 介面与最近的 SATA 介面,购买时要分的很清楚!

大标题的图示参考资料与延伸阅读

2002/04/08:第一次完成吧?
2003/02/02:重新编排与加入 FAQ
2005/06/04:将旧的文章移动到 这里
2005/06/12:风格修订之外,新增了 Linux 练习机硬体选择与软件安装的建议
2005/06/15:感谢上奇编辑 Tim 兄来信告知一些可能有争议的部分!包括 AthlonXP 已被 Sempron 取代,已经修订!
2008/07/29:将旧的FC4文章移动到此处
2008/08/21:将整份文件作个重新整理,移除计概有谈到的硬体部分,增加partition的资料量。
2009/08/06:重新修订习题与解答,尤其一些计概方面的问题将他挪开!



 
     
中国存储网 ChinaStor.com排版整理
原文作者鸟哥,主页,更多Linux学习资料在线看:Linux系统管理员手册 - Linux命令大全 - Linux调用大全- Linux专栏 - 国产Linux