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 閱讀(288) 評論(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,但這個方法特別留意,並不一定會成功,而且也許會造成你的數據遺失。


          主站蜘蛛池模板: 英吉沙县| 理塘县| 会昌县| 宁陵县| 安岳县| 五寨县| 石柱| 新津县| 若尔盖县| 家居| 克东县| 拉萨市| 九江市| 天柱县| 全南县| 察隅县| 穆棱市| 江达县| 东辽县| 南丰县| 武清区| 左权县| 北安市| 壶关县| 江陵县| 南丰县| 宝兴县| 望城县| 黎平县| 壤塘县| 台前县| 唐河县| 临江市| 泗阳县| 海门市| 石嘴山市| 涪陵区| 嘉黎县| 讷河市| 兴义市| 鹤壁市|