Linux之主机规划与磁盘分区(来自鸟哥的Linux私房菜

1.Linux与硬件的搭配

  Linux对于计算机各组件/装置的分辨,与大家惯用的Windows系统完全不一样。因为,各组件或装置在Linux底下都是【一个档案】

1.1 认识计算机的硬件配备


1.2选择与Linux搭配的主机配备

CPU

CPU只要不是老旧到会让你的硬件系统当机的都能够支持

RAM

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

Hard Disk

由于数据量和数据存取频率的不同,对硬盘的要求也不相同。举例来说,如果是一般小型服务器,通常重点在于容量,硬盘容量大于20G就够用的不行了,但是如果你的服务器是作为备份或者是小企业的文件服务器,那么你就得要考虑较高阶的磁盘阵列(RAID)模式了。

注意:磁盘阵列(RAID)是利用硬件技术将数个硬盘整合成为一个大硬盘的方法,操作系统只会看到最后被整合起来的大硬盘,由于磁盘阵列是由多个硬盘组成的,所以可以达成速度效能、备份等任务。

VGA

对于不需要X Window的服务器来说,显示适配器算是一个最不重要的组件了,你只要有显示适配器能够让计算器启动,那就够了,但如果需要X Window系统时,你的显示适配器最好能够拥有32MB以上的内存容量,否则跑X系统会很累

Network Interface Card

网络卡是服务器上最重要的组件了,只要好一点的10/100网络卡就非常够用了。毕竟我们的带宽没有大到Gigabit的速度,如果是小型服务器,一块Realtek RTL8139芯片的网卡就非常好用了,不过,如果是读取非常频繁的网站,好一点的Intel/3Com网卡应该比较适合。

光盘、软盘、键盘与鼠标

不要旧到你的计算机不支持就好了,因为这些配备是非必备的。

下面针对一般可能会接触到的计算机主机的用途与相关硬件配备的基本要求来说明一下:

一般小型主机且不含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/100Mbps就好

显示适配器:使用32MB以上内存的显示适配器

硬盘:越大越好,最好有60GB

中型以上Linux服务器:

用途:中小型企业/学校单位的FTP/mail/WWW等网络服务主机

CPU:最好等级高一点,可以考虑使用双核心系统

RAM:最好能够大于1GB以上,大于4GB更好

网络卡:知名的3Com或Intel等厂牌,比较稳定效能较佳,也可选购10/100/1000Mbps的速度

显示适配器:如果有使用到图形功能,则一张64MB内存的显示适配器是需要的

硬盘:越大越好,如果可能的话,使用磁盘阵列,或者网络硬件等等的系统架构,能够具有更稳定安全的传输环境

建议企业用计算机不要自行组装,可购买商用服务器较佳,因为商用服务器已经通过制造商的散热、稳定度等测试,对于企业来说是一个比较好的选择

Linux开发商在释出Linux distribution之前,都会针对该版所默认的可以支持的硬件做说明,因此,你除了可以在Linux的Howto文件中取查询硬件的支持度外,也可以到各个相关的Linux distributions的网站去查询。

1.3 各硬件装置在Linux中的文件名

在Linux系统中,每个装置都会被当成一个档案来对待。举例来说,IDE接口的硬盘的文件名即为/dev/hd[a-d],其中,括号内的字母为a-d当中的任意一个,亦即有/dev/hda,/dev/hdb,/dev/hdc,及dev/hdd这四个档案的意思。

注意:在Linux系统中,几乎所有的硬件装置档案都在/dev这个目录内,所以你会看到/dev/hda,/dev/fd0等等的当名

几种常见的装置与其在Linux当中的档名:


2.磁盘分区

2.1磁盘连接的方式与装置文件名的关系

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

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

再以SATA接口来说,由于SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘装置文件名都是/dev/sd[a-p]的格式。但是与IDE接口不同的是,SATA/USB接口的磁盘根本就没有一定的顺序,那如何决定他的装置文件名呢?这个时候就要根据Linux核心侦测到磁盘的顺序了。例如:

如果你的PC上面有两个SATA磁盘以及一个USB磁盘,而主板上面有六个SATA的插槽,这两个SATA磁盘分别安插在主板上的SATA1,SATA5插槽上,请问这三个磁盘在Linux中的装置文件名是什么?

答:由于是使用侦测到的顺序来决定装置文件名,并非与实际插槽代号有关,因此装置的文件名如下:

SATA1插槽上的档名:/dev/sda     SATA2插槽上的档名:/dev/sdb     USB磁盘(开机完成后才被系统捉到):/dev/sdv

2.2磁盘的组成复习

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

那么是否每个扇区都一样重要呢?其实整颗磁盘的第一个扇区特别重要,因为他记录了整颗磁盘的重要信息。磁盘的第一个扇区主要记录了两个重要的信息,分别是:

。。主要启动记录区(Master Boot Record,MBR):可以安装开机管理程序的地方,有446bytes

。。分割表(partition table):记录整颗硬盘分割的状态,有64bytes

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

2.3磁盘分区表

在分割表所在的64bytes容量中,总共分为四组纪录区,每组纪录区记录了该区段的起始与结束的磁柱号码。若将硬盘以长条形来看,然后将磁柱以柱形图来看,那么那64bytes的记录区段有点像下面的图示:


假设上面的硬盘装置文件名为/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号磁柱之间的意思

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

。其实所谓的【分割】只是针对那个64bytes的分割表进行设定而已

。硬盘默认的分割表仅能写入四组分割信息

。这四组分割信息我们称为主要(Primary)或延伸(Extended)分隔槽

。分割槽的最小单位为磁柱

。当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理

分割表只有记录四组数据的空间,并不代表一颗硬盘最多只能分割出四个分隔槽。在Windows/Linux系统中,可以通过延伸分割(extend)的方式来处理多个分隔槽。延伸分割的想法是:既然第一个扇区所在的分割表只能记录四笔数据,我们可以利用额外的扇区来记录更多的分割信息。


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

如上图右下方那个区块有继续分割出五个分割槽,这五个由延伸分割继续切出来的分割槽,就被称为逻辑分隔槽。由于逻辑分割槽是由延伸分割继续分割出来的,所以他可以使用的磁柱范围就是延伸分割所设定的范围,也就是图中的101-400


由上图可以发现,装置文件名没有/dev/hda3与/dev/hda4。这是因为前面四个号码都是保留给Primary或Extended用的。所以逻辑分割槽的装置名称号码就由5号开始。

主要分割、延伸分割与逻辑分割的特性定义:

主要分割与延伸分割最多可以有四笔(硬盘的限制)

延伸分割最多只能有一个(操作系统的限制)

逻辑分割是由延伸分割持续切割出来的分割槽

能够被格式化后,作为数据存取的分割槽与逻辑分割。延伸分割无法格式化

逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号),SATA硬盘则有11个逻辑分割(5号到15号)

2.4开机流程与主要启动记录区(MBR)

CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入在主板上的一个韧体(韧体就是写入到硬件上的一个软件程序)。这个BIOS就是开机的时候,计算机系统会主动执行的第一个程序。

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

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

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

(1)BIOS:开机主动执行的韧体,会认识第一个可开机的装置

(2)MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序

(3)开机管理程序(boot loader):一支可读取核心档案来执行的软件

(4)核心档案:开始操作系统的功能

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

。提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能

。载入核心档案:直接指向可开机的程序区段来开始操作系统

。转交其他loader:将开机管理功能转交给其他loader负责

上面前两点还容易理解,第三点表示计算机系统里面可能具有两个以上的开机管理程序。开机管理程序除了可以安装在MBR之外,还可以安装在每个分割槽的启动扇区。(分隔槽有个别的启动扇区,这个特色造就【多重引导】的功能)

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


在上图中我们可以发现,MBR的开机管理程序提供连个选单,选单一(M1)可以直接加载Windows的核心档案来开机;选单二(M2)则是将开机管理工作交给第二个分割槽的启动扇区(boot sector)。当使用者再开机的时候选择选单二时,那么真个开机管理工作就会交给第二分割槽的开机管理程序了。当第二个开机管理程序启动后,该开机管理程序内仅有一个开机选单,因此就能够使用Linux的核心档案来开机。这既是多重引导的工作情况,我们将上图总结如下:

。每个分割槽都拥有自己的启动扇区(boot sector)

。图中的系统槽为第一及第二分割槽

。实际可开机的核心档案是放置到各分割槽内的可开机核心档案,以及其他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即可。

2.5Linux安装模式下,磁盘分区的选择

(1)目录树结构(directory tree)

Linux内的所有数据都是以档案的形态来呈现的,所以整个Linux系统最重要的地方就在于目录树架构。所谓的目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种档案架构。所以,整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线【/】,所有的档案都与目录树有关,目录树的呈现方式如下图所示:

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

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

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

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


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

其实判断某个档案在哪个partition底下是很简单的,透过反向追踪即可。当我想要知道/home/vbrid/test这个档案在哪个partition时,由test-->vbird-->home-->/,看哪个【进入点】先被查到哪个就是使用的进入点了。所以test使用的是/home这个进入点而不是/

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

既然我们在Linux系统下使用的是目录树系统,所以安装的时候自然就得要规划磁盘分区与目录树的挂载了。实际上,在Linux安装的时候已经提供了相当多的默认模式让你选择分割的方式了,不过,无论如何,分割的结果可能都不是很能符合自己主机的样子,因此,强烈建议使用【自定义安装,Custom】这个安装模式,在某些Linux distribution中,会将这个模式叫做【Expert,专家模式】

(4)自定义安装【Custom】:

A:初次接触Linux:只要分割【/】及【swap】即可:

通常初次安装Linux系统的人员,建议直接以一个最大的分割槽【/】来安装系统。这样做有个好处,就是不怕分割错误造成无法安装的困境。例如/usr是Linux的可执行程序及相关的文件摆放的目录,所以他的容量需求蛮大的,万一分割给/usr的分割槽不够大,造成无法将数据完全写入的问题,就有可能无法安装了,所以,初次安装仅分割两个分割槽【/与Swap】即可

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

因为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版本

注意:所下载的档案扩展名是.iso,这就是所谓的image档案(映像档)。这种image档案是由光盘直接刻录成档案的。此外,这种映像文件可不能以数据格式刻录成光盘/DVD。必须要使用刻录程序的功能,将他以【映像文件格式】刻录成光盘或DVD才行。切记不要使用刻录数据文件格式来刻录。

2.5主机硬盘的主要规划

基本硬盘分割的模式:

。最简单的分割方法:

就是仅分割出根目录与内存置换空间(/ & swap)即可。然后再预留一些剩余的磁盘以供后续的练习之用。不过,这是不保险的分割方法,因为如果任何一个小细节坏掉,你的根目录将可能整个的损毁,挽救方面较困难

。稍麻烦一点的方式:

较为麻烦一点的分割方式就是先分析这部主机的未来用途,然后根据用途去分析需要较大容量的目录,以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起,那当这些读写较频繁的磁盘分区槽有问题时,至少不会影响到根目录的系统数据,挽救比较容易。下面的目录是比较符合容量大或读写频繁的目录:

。/    (根目录,与开机系统有关)

。/usr (与软件安装/执行有关)

。/home (默认存放用户的宿主目录,除root用户)

。/var (与系统运作过程有关)

。/Swap (硬盘中的内存置换空间)

大硬盘配合旧主机造成的无法开机问题:

某些比较旧的主板中,他们的BIOS可能找不到比较大容量的磁盘的。所有,在旧主板上面安装新的大容量磁盘时,很可能造成你的磁盘容量被误判,不过,即使是这样,Linux还是能够安装,而且能够顺利的捉到完整的硬盘容量。因为当Linux核心顺利开机启动后,他会重新再去侦测一次整个硬件而不理会BIOS所提供的信息,所以能够顺利的捉到正确的硬盘,并且让你安装Linux。但是安装完毕后,可能会无法开机。安装的时候是以光盘开机并且由光盘加载Linux核心,所以核心可以被顺利加载来安装。但是若以这样的配备来开机时,因为BIOS捉到的硬盘是不对的,所以使用硬盘开机可能就会出现无法开机的错误。

由于BIOS捉到的磁盘容量不对,但是至少在整颗磁盘前面的扇区他还读的到,因此,只要将这个磁盘最前面的容量分割出一个小分割槽。并将这个分割槽与系统启动文件的放置目录摆在一起,那就是/boot这个目录。就能解决了。

重点是【将启动扇区所在分割槽规范在小于1024个磁柱以内】即可。即在进行安装的时候,规划出三个扇区,分别是:/boot   /   swap

那个/boot只要给100M Bytes左右即可。而且/boot要放在整块硬盘的最前面

重点回顾:

在Linux系统中,每个装置都被当成一个档案来对待,每个装置都会有装置文件名

磁盘的装置文件名主要分为(1)IDE接口的/dev/hd[a-d]及(2)SATA/SCSI/USB界面的/dev/sd[a-p]两种

磁盘的第一个扇区主要记录了两个重要的信息,分别是:(1)主要启动记录区(MBR),可以安装开机管理程序的地方,有446bytes(2)分割表:记录整颗硬盘分割的状态,有64bytes

磁盘的主要与延伸分割最多可以有四个,逻辑分割的装置文件名号码,一定由5号开始

开机的流程由:BIOS-->MBR-->boot loader-->核心档案

boot loader的功能主要有:提供选单、加载核心、转交控制权给其他loader

boot loader可以安装的地点有两个,分别是MBR与boot sector

Linux操作系统的档案使用目录树系统,与磁盘的对应需要有【挂载】的动作才行

新手的简单分割,建议只要有/及swap两个分割槽即可













猜你喜欢

转载自blog.csdn.net/naomi_qing/article/details/79010773