David.Ko

Follow my heart!
posts - 100, comments - 11, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Ubuntu Linux实务操作(4)

Posted on 2007-09-29 12:46 David.Ko 阅读(278) 评论(0)  编辑  收藏 所属分类: Ubuntu
GNU/Linux目錄的结构

在GNU/Linux里面,所有的目錄都是从 /(root)根目錄所扩展的树状结构。也许有些朋友会问,如果有很多颗硬盘,那不就有很多根目录吗? 事实不是这样的!那些硬盘的某个分割区不会像MS Windows一樣,分割成C槽、D槽和E槽等等,而都是在那个根目錄或底下的某个子目錄,只是把某个分割区掛载(mount)到那个目錄罢了,也就是說 在Microsoft Windows的X槽对应到GNU/Linux的话,就是掛载在某一个目錄底下。

如果这樣的掛来掛去,总要有个初始化源头让我们掛吧? 所以至少要有一块分割区给根目錄/(root),其它的目錄就会以此为基础续掛在根目錄的某个子目錄下。如此就会形成一个如下图4-1的树状结构。

GNU/Linux的发行版太多了,在早期每个发行版都有自己首选的目錄分配方式,不同的版本有不一样的目录分配,因此而造成很多使用者的困扰。为了平息 这樣的乱局,Filesystem Hierarchy Standard(FHS:http://www.pathname.com/fhs/)就出面制定了一些标準,让各个发行版有个纲要可以知道哪个目錄要 放什麼樣的东西。当前FHS定义的是每个目錄的大纲,所以很多细部配置文件的文件名或许还是有所不同,但是几乎都放在同一个目錄底下了。这樣用户在寻找的 时候,应该是容易许多了。所以Ubuntu也遵循这樣的命名结构,图4-1在別的发行版也适用。

我们了解了上面的內容之后,知道在安装时必需有一个/(root)根目錄,其它目錄是依附在它下面。这些其它的目錄所使用的实体硬盘空间可以是独立出来在 另外一颗硬盘或同一颗的其它分割区或者甚至不用独立出来。如果沒有独立出来的话,就是使用 /(root)根目錄分割区的空间或者在上一层的实体分割区空间。






根据表4-1读者可以自行评估哪一个目錄比较重要,然后決定是否独立出来,这樣子可以拿来当成损害控管之用。后面也会有一些比较容易看懂的实际例子。




硬件设备的代号

在GNU/Linux裡面有个很好玩的特色,就是所有硬件设备都是可以看成是某个文件来操作。这樣有个好处是,应用软件只要管好对那个文件要如何操作,而 不必要管实际上硬件的运作。其中代表设备的文件和实际运作的硬件中间的关连,就是GNU/Linux kernel所需要负责的。

对於IDE硬盘来說,常常组装计算机的人应该都知道主机板上最多只有两个IDE插槽,而每个插槽都可以通过排線接两个硬盘。主机板上第一个插槽就是 IDEl (Primary),第二个插槽就是IDE2 (Secondary),每个插槽上可以接的两颗硬盘其中一颗是Master,另外一颗就是Slave,至於怎樣判断可以通过硬盘上的jumper来得 知。若是硬盘上的jumper插在cable selection的话,那麼从排線前端数过来第一颗就是Master,如表4-3,我们可以得知插在第一个插槽的Master硬盘,它的文件别名位置就 是/dev/hda,若光盘机是装在第二个插槽且jumper预设是Slave的话,这时候光盘机的文件代号的位置就在 /dev/hdb。

对於SCSI,SATA和随身碟则都是 /dev/sd [a-z],但是它们会依照顺序排下去,理论上会先排SCSI,然后是SATA,最后才是随身碟,不会有重疊的部份。因为现在很多新的计算机都採用 SATA硬盘,所以请记得这些SATA硬盘的别名都是和SCSI用一樣的。举例来說,若你有两台SATA硬盘,但是沒有SCSI设备,那麼第一颗SATA 硬盘的文件位置别名就是/dev/sda,第二颗就是 /dev/sdb,就是这么简单。





分割区概述(Partition)

前面已经提到了,在MicroSoft Windows中同一颗硬盘的各个槽其实就代表了不同的分割区。一般人通常都喜欢把硬盘分割成C区和D区,若需要重新安装系统的时候,就会把所有数据和文 件都放在D区,只要把系统碟C区格式化刪除,再重装系统,如此数据就不用备份出来,可以很容易完成重装且保存数据。同樣地,在GNU/Linux也是一 樣,我们喜欢把重要的目錄分別放在不同的分割区,这樣子系统出了问题也能很容易来救援。


我们来一个比喻,我们把硬盘想像成是一间很大的办公室,如图4-2所示,门口部份有一个柜子让你放办公室相关的消息。那个柜子就叫作主要开机扇区 (MBR,Master Boot Recorder) ,而柜子裡面有两个抽屜,一个是放置开机管理程序(boot loader),另外一个就是放置磁盘分割表(partition table),这个磁盘分割表就是纪錄整个办公室隔间隔局的地方。





因为磁盘分割表的空间有限,所以我们只能存储最多四间隔间的信息,若你沒有在这四个隔间把整个坪数划分完,那麼多出来的空间就不能使用的。而整间办公室能 隔成的房间总共有两种,一种是主分割区(Primary) ,另外一种是扩展分割区(Extended),且规定扩展分割区最多只能有一间。那麼扩展分割区是要拿来做什麼用的呢?其实扩展分割区是不能直接使用的, 可以看成它是另外一种房间,前面也有柜子存储扩展分割区底下的信息,但是因为裡面沒有家俱,所以沒办法直接使用。所以扩展分割区还要再分割成逻辑分割区 (Logical),从扩展分割区再分割的逻辑分割区最多可以分割到12个,故最后可用的最多分割区数会有3个主分割区+12个逻辑分割区=15个分割 区,那就满足使用了。





每个分割区在GNU/Linux都有它的设备文件别名,它的别名就是硬盘设备代号后面加上数字。例如我们把4个分割区都分割成主要分割区,那麼就会如图4 -3所示,给的分割区别名分別是hdal到hda4。但是这个时候如果想要超过4个分割区呢? 那就得要使用扩展分割区。我们可以把图4-3最后一个主分割区換成扩展分割区,再把那个扩展分割区分割成3个逻辑分割区,最后会如图4-4,会有6个分割 区可以用。

逻辑分割区一定是从hda5开始,而前面刚好有hdal到hda4这4个别名,就是给主分割区和扩展分割区瓜分的,至於扩展分割区是不能直接用的,最多也只有一个,要扩展分割区裡面的逻辑分割区才可以直接被使用。





当然我们也可以用一个主分割区配上一个扩展分割区,如图4-5来达到和图4-4一樣有6个分割区的效果,但是我们实务上比较喜欢先把主要分割区用完,再来搭配扩展分割区使用。不管怎樣,只要记得一个规则,主要分割区加扩展分割区最多只能有4个,其它的都随使用者来发挥。





在linux中一定要被独立划分出来的分割区有 /(root)和swap,若你只要这樣基本的分割法,那麼安装的时候选自动分割就是採用这种作法,但是对於有特殊需求的人,可以使用手动规划方式。


● /(root)分割区:所有的目录都是根目录的子目录,所以这个分割区一定要有。

● swap分割区:swap分割区是做什麼用的呢?其实它可大可小,尤其是在内存大家都装768MB或1 GB的年代。它的功能类似微软Windows XP的虚存,不过在Windows XP裡面虚存是单独一个文件存放在C区,但是在GNU/Linux內则是独立成为一个分割区。通常swap是在跑大程序时候,若需要用到的内存比系统拥有 的主記憶存还大时,才会先把一些不常用的数据放到虚存裡面,然后等要用到时,再把它叫出来。而依照一般旧制经验法则,swap是主記憶存的两倍,但是笔者 建议是和主記憶存一樣大就好或者干脆512 Mb的swap就很夠用了。


文件系统格式概述

在Microsoft Winsows的世界,硬盘可以格式化成NTFS、FAT32、FATl6等等不同的格式。同樣地,在GNU/Linux底下也是有很多不同的文件系统格 式可供选择。当前在GNU/Linux底下,比较常用的有这几种格式:Ext2/Ext3、ReiserFS、XFS和JFS等数种。当然各种格式都有其 优缺点,所以我们将做一些简单的介绍。

除了Ext2以外,其它几种都是日誌型文件系统。那什麼是日誌型文件系统呢? 就是系统会多用一些额外的空间纪錄硬盘的数据状态,因而在不正常开关机后,不需整个硬盘重新扫描来恢复正常的系统状态。

● Ext2:此为一非常老旧且不支持日誌系统的文件系统格式,早期的Linux玩家应该还记得吧,在每次不正常关机后,重新开机时错误检查会需要很久,而且在不正常关机下,常常会让你一次不见很多文件,现在已经很少人使用这类文件系统了。

● Ext3:为Ext2个改良版,所以Ext2可以直接升级成为Ext3而不必重新格式化,这也可以让旧的Ext2系统更加稳定。而主要和Ext2的差別是 增加了日誌系统(metadata),所以在不正常开关机后,可以迅速使系统恢复。而因为它与旧有的文件系统兼容,因此很多发行版都缺省使用Ext3。但 是在实际测试上,它的硬盘使用率其实不佳,大概只有真正空间的93%会被使用到,至於其它性能测试表现则为中等。在格式化与创建文件系统的时间也是其它文 件系统的数十倍。

● ReiserFS:http://www.namesys.com:採用日誌型的文件系统,为Hans Reiser所创,因此以他的名字来命名。技术上使用的是B*-tree为基础的文件系统,其特色为从处理大型文件到眾多小文件都可以用很高的效率处理。 实务上ReiserFS 在处理文件小於1k的小文件时,效率甚至可以比Ext3快約10倍,所以ReiserFS专长是在处理很多小文件。而在一般操作上,它的性能表现也有中上 的程度。

● XFS:http://oss.sgi.com/projects/xfs/:绘图工作站公司SGI为了高级绘图处理器系统IRIX所设计的文件格式,也 是属於日誌型文件系统。而SGI亦将其移植到GNU/Linux上。因为原本是针对高性能绘图设计,且为高阶工作站所使用,所以在稳定性和效率上是无雍置 疑的。论其在实务上的表现,它在处理各种文件尺寸混合的情況下效率最好,並且在一般使用上有
不错的表现。

● JFS:http://jfs.sourceforge.net:为全球最大计算机供应商IBM为AIX系列设计的日誌型文件系统,技术上使用的是B+- tree为基础的文件系统和ReiserFS使用B*-tree不同。IBM AIX服务器在很多金融机构上使用,所以稳定性是沒话說的。而它最重要的特色是在处理文件I/O的时候是所有文件系统里面最不佔CPU资源的,也就是 CPU使用率最低。而且在这樣节省使用CPU的情況下,它的效率表现还有中上以上的程度。

虽然Ext3性能不好(在日誌型文件系统中效率上算是最糟糕的) ,那为何还有那麼多人使用?那是因为当时Ext3可以直接从Ext2升级,而不需要先备份数据,然后格式化后再把文件复制回去,所以使用人数最多。但这也 不能全然怪它,因为它为了和Ext2兼容,所以背负了很多的历史包袱。因此我推荐新的电脑考虑使用ReiserFX、XFS或JFS。若是以性能为考虑, 则可以选择ReiserFS或XFS。若是系统资源不多,要使用最低的CPU使用率,那麼可以选择JFS,因为它有著最好的性能资源比。

在网络上有一些文件系统性能评估,这裡列出来给大家参考一下:

★ http://www.debian-administration.org/articles/388

★ http://fsbench.netnation.com/

★ http://linuxgazette.net/122/TWDT.html

★ http://linuxgazette.net/102/piszcz.html


开始规划你的硬盘

随著任务的不同,你可以有各种不同的硬盘规划。笔者假设你使用80 GB的IDE硬盘,内存512 MB,因此规划swap是512 MB,硬盘设备别名是hda。


以下是几种不同的硬盘规划,分別是适合入门,高级和服务器所需要,大家可以视需求自行参考。不过你在进行分割之后,有可能会因为換算的关系,少了个几MB,那是沒有关系的,只要不要太离谱,都应该是沒问题的。





每个分割区都是可以存放独立的文件系统,互相不影响,所以大家也可以在hdal安装Windows XP,然后hda2安装GNU/Linux,再通过MBR上的bootloader来选择要用哪个分割区来开机。如果读者真的想要使用双系统的话,推荐是 先安装Windows XP,並且在安装时留下剩下的空间来做额外的分割区给Ubuntu使用,如此在安装Ubuntu以后,Ubuntu的bootloader-GRUB将会 自动设置成启动的时候可以有双系统供你选择。请记得最好不要先安装Ubuntu再安装Windows XP,这樣GRUB的设置会被Windows XP洗掉,那你就得要手动重新安装GRUB到MBR了。

若是你真的不想重装Windows XP,可以先重整硬盘,然后用SPFDISK这个工具程序把硬盘的分割表更改尺寸,这樣就可以挤出空间来装Ubuntu,但这个方法特別留意,並不一定会成功,而且也许会造成你的数据遗失。



只有注册用户登录后才能发表评论。


网站导航: