Linux 是需要安裝在 PC 上面的,而且要用到硬碟啊!所以安裝 Linux 或者使用 Linux 之前,先來規劃一下主機吧!
事實上,要安裝好一部Linux主機並不是那麼簡單的事情,你必須要針對distributions的特性、伺服器軟體的能力、 未來的升級需求、硬體擴充性需求等等來考量,還得要知道磁碟分割、檔案系統、Linux操作較頻繁的目錄等等, 都得要有一定程度的瞭解才行,所以,安裝Linux並不是那麼簡單的工作喔! 不過,要學習Linux總得要有Linux系統存在吧?所以鳥哥在這裡還是得要提前說明如何安裝一部Linux練習機。 在這一章裡面,鳥哥會介紹一下,在開始安裝Linux之前,您應該要先思考哪些工作? 好讓您後續的主機維護輕鬆愉快啊!此外,要瞭解這個章節的重要性,您至少需要瞭解到Linux檔案系統的基本概念, 這部份初學者是不可能具備的!所以初學者在這個章節裡面可能會覺得很多部份都是莫名其妙!沒關係! 在您完成了後面的相關章節之後,記得要再回來這裡看看如何規劃主機即可! ^_^
雖然個人電腦各元件的主要介面是大同小異的,包括前面第零章計算機概論講到的種種介面等, 但是由於新的技術來得太快,Linux核心針對新硬體所納入的驅動程式模組比不上硬體更新的速度, 加上硬體廠商針對Linux所推出的驅動程式較慢,因此你在選購新的個人電腦(或伺服器)時, 應該要選擇已經過安裝Linux測試的硬體比較好。
此外,在安裝Linux之前,你最好瞭解一下你的Linux預計是想達成什麼任務,這樣在選購硬體時才會知道那個元件是最重要的。 舉例來說,桌面電腦(Desktop)的使用者,應該會用到X Window系統, 此時,顯示卡的優劣與記憶體的大小可就佔有很重大的影響。如果是想要做成檔案伺服器, 那麼硬碟或者是其他的儲存設備,應該就是您最想要增購的元件囉!所以說,功課還是需要作的啊!
鳥哥在這裡要不厭其煩的再次的強調,Linux對於電腦各元件/裝置的分辨, 與大家慣用的Windows系統完全不一樣!因為,各個元件或裝置在Linux底下都是『一個檔案!』 這個觀念我們在第一章Linux是什麼裡面已經提過, 這裡我們再次的強調。因此,你在認識各項裝置之後,學習Linux的裝置檔名之前, 務必要先將Windows對於裝置名稱的概念先拿掉~否則會很難理解喔!
『什麼?學Linux還得要玩硬體?』呵呵!沒錯! 這也是為什麼鳥哥要將計算機概論搬上檯面之故! 我們這裡主要是介紹較為普遍的個人電腦架構來設定Linux伺服器,因為比較便宜啦! 至於各相關的硬體元件說明已經在第零章計概內講過了,這裡不再重複說明。 僅將重要的主機板與元件的相關性圖示如下:
那麼我們應該如何挑選電腦硬體呢?隨便買買就好,還是有特殊的考量?底下有些思考角度可以提供給大家參考看看:
事實上,電腦主機的硬體配備與這部主機未來的功能是很有相關性的!舉例來說,家裡有小孩, 或者自己仍然算是小孩的朋友大概都知道:『要用來打Game的『遊戲機電腦』 所需要的配備一定比辦公室用的『工作機電腦』配備更高檔』,為什麼呢? 因為現在一般的三維(3D)電腦遊戲所需要的3D光影運算太多了,所以顯示卡與CPU資源都會被耗用的非常多! 當然就需要比較高級的配備囉,尤其是在顯示卡、CPU(例如Intel的 I5, I7 系列的) 及主機板晶片組方面的功能。
至於辦公室的工作環境中,最常使用到的軟體大多是辦公軟體(Office),最常使用的網路功能是瀏覽器, 這些軟體所需要的運算並不高,理論上目前的入門級電腦都能夠跑得非常順暢了! 甚至很多企業都喜歡購買將顯示卡、主機板晶片組整合在一起的整合型晶片的電腦,因為便宜又好用!
並不是『貴就比較好』喔!在目前(2015)電費居高不下的情況,如何兼顧省錢與電腦硬體的效能問題,很重要! 如果你喜歡購買最新最快的電腦零件,這些剛出爐的元件都非常的貴,而且作業系統還不見得能夠完整的支援。 所以,鳥哥都比較喜歡購買主流級的產品而非最高檔的。因為我們最好能夠考慮到效能/價格比。 如果高一級的產品讓你的花費多一倍,但是新增加的效能卻只有10%而已,那這個效能/價格的比值太低,不建議啦!
此外,由於電價越來越高,如何『省電』就很重要啦!因此目前硬體評論界有所謂的『每瓦效能』的單位, 每瓦電力所發揮的效能越高,當然代表越省電啊!這也是購買硬體時的考量之一啦!要知道,如果是做為伺服器用, 一年365天中時時刻刻都開機,則你的電腦多花費50瓦的電力時,每年就得要多花450度電左右(50W*365天*24小時/天/1000W=438度電),如果以企業來講, 每百部電腦每年多花450度電的話,每年得多花十萬塊以上的電費呢 (以一度電3塊錢來計算) !所以這也需要考量啊!
並非所有的產品都會支援特定的作業系統,這牽涉到硬體開發商是否有意願提供適當的驅動程式之故。 因此,當我們想要購買或者是升級某些電腦元件時,應該要特別注意該硬體是否有針對您的作業系統提供適當的驅動程式, 否則,買了無法使用,那才是叫人嘔死啊!因此,針對Linux來說,底下的硬體分析就重要啦!
由於硬體的加速發展與作業系統核心功能的增強,導致較早期的電腦已經沒有能力再負荷新的作業系統了。 舉例來說,Pentun-III以前的硬體配備可能已經不再適合現在的新的Linux distribution。 而且較早期的硬體配備也可能由於保存的問題或者是電子零件老化的問題, 導致這樣的電腦系統反而非常容易在運作過程中出現不明的當機情況,因此在利用舊零件拼湊Linux使用的電腦系統時, 真的得要特別留意呢!
不過由於Linux運作所需要的硬體配備實在不需要太高檔,因此,如果有近期汰換下來的五年內的電腦, 不必急著丟棄。由於 CPU 為 i3 等級的硬體不算太老舊,在效能方面其實也算的上非常OK了~所以, 鳥哥建議您如果有五年內的電腦被淘汰,可以拿下來測試一下,說不定能夠作為你日常生活的Linux伺服器, 或者是備用伺服器,都是非常好用的功能哩!
但是由於不同的任務的主機所需要的硬體配備並不相同,舉例來說,如果你的Linux主機是要作為企業內部的Mail server或者是Proxy server時,或者是需要使用到圖形介面的運算(X Window內的Open GL等等功能), 那麼你就必須要選擇高檔一點的電腦配備了,使用過去的電腦零件可能並不適合呢。
底下我們稍微談一下,如果你的Linux主要是作為小型伺服器使用,並不負責學術方面的大量運算, 而且也沒有使用X Window的圖形介面,那你的硬體需求只要像底下這樣就差不多了:
底下鳥哥針對一般你可能會接觸到的電腦主機的用途與相關硬體配備的基本要求來說明一下好了:
總之,鳥哥在這裡僅是提出一個方向:如果你的Linux主機是小型環境使用的,即時當機也不太會影響到企業環境的運作時, 那麼使用升級後被淘汰下來的零件以組成電腦系統來運作,那是非常好的回收再利用的案例。 但如果你的主機系統是非常重要的,你想要更一部更穩定的Linux伺服器,那考慮系統的整體搭配與運作效能的考量, 購買已組裝測試過的商用伺服器會是一個比較好的選擇喔!
此外,Linux開發商在釋出Linux distribution之前,都會針對該版所預設可以支援的硬體做說明, 因此,你除了可以在Linux的Howto文件去查詢硬體的支援度之外,也可以到各個相關的Linux distributions網站去查詢呢! 底下鳥哥列出幾個常用的硬體與Linux distributions搭配的網站,建議大家想要瞭解你的主機支不支援該版Linux時, 務必到相關的網站去搜尋一下喔!
總之,如果是自己維護的一個小網站,考慮到經濟因素,你可以自行組裝一部主機來架設。 而如果是中、大型企業,那麼主機的錢不要省~因為,省了這些錢,未來主機掛點時, 光是要找出哪個元件出問題,或者是系統過熱的問題,會氣死人ㄟ! 而且,要注意的就是未來你的Linux主機規劃的『用途』來決定你的Linux主機硬體配備喔!相當的重要呢!
選擇好你所需要的硬體配備後,接下來得要瞭解一下各硬體在Linux當中所扮演的角色囉。 這裡鳥哥再次的強調一下:『在Linux系統中,每個裝置都被當成一個檔案來對待』 舉例來說,SATA介面的硬碟的檔案名稱即為/dev/sd[a-d],其中, 括號內的字母為a-d當中的任意一個,亦即有/dev/sda, /dev/sdb, /dev/sdc, 及 /dev/sdd這四個檔案的意思。
那麼印表機與軟碟呢?分別是/dev/lp0, /dev/fd0囉!好了,其他的周邊設備呢? 底下列出幾個常見的裝置與其在Linux當中的檔名囉:
裝置 | 裝置在Linux內的檔名 |
SCSI/SATA/USB硬碟機 | /dev/sd[a-p] |
USB快閃碟 | /dev/sd[a-p] (與SATA相同) |
VirtI/O界面 | /dev/vd[a-p] (用於虛擬機器內) |
軟碟機 | /dev/fd[0-1] |
印表機 | /dev/lp[0-2] (25針印表機) /dev/usb/lp[0-15] (USB 介面) |
滑鼠 | /dev/input/mouse[0-15] (通用) /dev/psaux (PS/2界面) /dev/mouse (當前滑鼠) |
CDROM/DVDROM | /dev/scd[0-1] (通用) /dev/sr[0-1] (通用,CentOS 較常見) /dev/cdrom (當前 CDROM) |
磁帶機 | /dev/ht0 (IDE 界面) /dev/st0 (SATA/SCSI界面) /dev/tape (當前磁帶) |
IDE硬碟機 | /dev/hd[a-d] (舊式系統才有) |
時至今日,由於 IDE 界面的磁碟機幾乎已經被淘汰,太少見了!因此現在連 IDE 界面的磁碟檔名也都被模擬成 /dev/sd[a-p] 了!此外, 如果你的機器使用的是跟網際網路供應商 (ISP) 申請使用的雲端機器,這時可能會得到的是虛擬機器。為了加速,虛擬機器內的磁碟是使用模擬器產生, 該模擬器產生的磁碟檔名為 /dev/vd[a-p] 系列的檔名喔!要注意!要注意!
由於近年來硬體虛擬化技術的成熟,目前普通的中階個人電腦的 CPU 微指令集中,就已經整合了硬體虛擬化指令集了! 所以,隨便一台電腦就能夠虛擬化出好幾台邏輯獨立的系統了!很讚!
因為虛擬化系統可以很簡單的製作出相仿的硬體資源,因此我們在學習的時候,比較能夠取得相同的環境來查閱學習的效果! 所以,在本書的後續所有動作中,我們都是使用虛擬化系統來做說明!畢竟未來你實際接觸到 Linux 系統時,很有可能公司交代給你的就是虛擬機了! 趁早學也不錯!
由於虛擬化的軟體非常之多,網路上也有一堆朋友的教學在。如果你的系統是 windows 系列的話,鳥哥個人推薦你使用 virtualbox 這個軟體! 至於如果你原本就用 Linux 系統,例如 Fedora/Ubuntu 等系列的話,那麼建議你使用原本系統內就有的虛擬機器管理員來處理即可。目前 Linux 系統大多使用 KVM 這個虛擬化軟體就是了。底下提供一些網站給您學習學習!鳥哥之後的章節所使用的機器,就是透過 KVM 建置出來的系統喔! 提供給妳作參考囉。
這一章在規劃的重點是為了要安裝Linux,那Linux系統是安裝在電腦元件的那個部分呢?就是磁碟啦!所以我們當然要來認識一下磁碟先。 我們知道一塊磁碟是可以被分割成多個分割槽的(partition),以舊有的Windows觀點來看,你可能會有一顆磁碟並且將他分割成為C:, D:, E:槽對吧!那個C, D, E就是分割槽(partition)囉。但是Linux的裝置都是以檔案的型態存在,那分割槽的檔名又是什麼? 如何進行磁碟分割?磁碟分割有哪些限制?目前的 BIOS 與 UEFI 分別是啥?MSDOS 與 GPT 又是啥? 都是我們這個小節所要探討的內容囉。
由第零章提到的磁碟說明,我們知道個人電腦常見的磁碟介面有兩種, 分別是SATA與SAS介面,目前(2015)的主流是SATA介面。不過更老舊的電腦則有可能是已經不再流行的IDE界面喔! 以前的IDE界面與SATA界面在Linux的磁碟代號並不相同,不過近年來為了統一處理,大部分Linux distribution已經將IDE界面的磁碟檔名也模擬成跟SATA一樣了! 所以你大概不用太擔心磁碟裝置檔名的問題了!
時代在改變啊~既然IDE界面都可以消失了,那磁碟檔名還有什麼可談的呢?嘿嘿!有啊!如同上一小節談到的,虛擬化是目前很常見的一項技術, 因此你在使用的機器很可能就是虛擬機器,這些虛擬機器使用的『虛擬磁碟』並不是正規的磁碟界面!這種情況底下,你的磁碟檔名就不一樣了! 正常的實體機器大概使用的都是 /dev/sd[a-] 的磁碟檔名,至於虛擬機器環境底下,為了加速,可能就會使用 /dev/vd[a-p] 這種裝置檔名喔! 因此在實際處理你的系統時,可能得要了解為啥會有兩種不同磁碟檔名的原因才好!
再以SATA介面來說,由於SATA/USB/SAS等磁碟介面都是使用SCSI模組來驅動的, 因此這些介面的磁碟裝置檔名都是/dev/sd[a-p]的格式。 所以SATA/USB介面的磁碟根本就沒有一定的順序,那如何決定他的裝置檔名呢? 這個時候就得要根據Linux核心偵測到磁碟的順序了!這裡以底下的例子來讓你瞭解囉。
通過上面的介紹後,你應該知道了在Linux系統下的各種不同介面的磁碟的裝置檔名了。 OK!好像沒問題了呦!才不是呢~問題很大呦! 因為如果你的磁碟被分割成兩個分割槽,那麼每個分割槽的裝置檔名又是什麼?在瞭解這個問題之前,我們先來複習一下磁碟的組成, 因為現今磁碟的分割與他物理的組成很有關係!
我們在計算機概論談過磁碟的組成主要有磁碟盤、機械手臂、磁碟讀取頭與主軸馬達所組成, 而資料的寫入其實是在磁碟盤上面。磁碟盤上面又可細分出磁區(Sector)與磁軌(Track)兩種單位, 其中磁區的物理量設計有兩種大小,分別是 512bytes 與 4Kbytes。假設磁碟只有一個磁碟盤,那麼磁碟盤有點像底下這樣:
那麼是否每個磁區都一樣重要呢?其實整顆磁碟的第一個磁區特別的重要,因為他記錄了整顆磁碟的重要資訊! 早期磁碟第一個磁區裡面含有的重要資訊我們稱為MBR (Master Boot Record) 格式,但是由於近年來磁碟的容量不斷擴大,造成讀寫上的一些困擾, 甚至有些大於 2TB 以上的磁碟分割已經讓某些作業系統無法存取。因此後來又多了一個新的磁碟分割格式,稱為 GPT (GUID partition table)! 這兩種分割格式與限制不太相同啦!
那麼分割表又是啥?其實妳剛剛拿到的整顆硬碟就像一根原木,你必須要在這根原木上面切割出你想要的區段, 這個區段才能夠再製作成為你想要的家具!如果沒有進行切割,那麼原木就不能被有效的使用。 同樣的道理,你必須要針對你的硬碟進行分割,這樣硬碟才可以被你使用的!
但是硬碟總不能真的拿鋸子來切切割割吧?那硬碟還真的是會壞掉去!那怎辦?在前一小節的圖示中, 我們有看到『開始與結束磁軌』吧?而通常磁碟可能有多個磁碟盤,所有磁碟盤的同一個磁軌我們稱為磁柱 (Cylinder), 通常那是檔案系統的最小單位,也就是分割槽的最小單位啦!為什麼說『通常』呢?因為近來有 GPT 這個可達到 64bit 紀錄功能的分割表, 現在我們甚至可以使用磁區 (sector) 號碼來作為分割單位哩!厲害了! 所以說,我們就是利用參考對照磁柱或磁區號碼的方式來處理啦!
也就是說,分割表其實目前有兩種格式喔!我們就依序來談談這兩種分割表格式吧。
早期的 Linux 系統為了相容於 Windows 的磁碟,因此使用的是支援 Windows 的 MBR(Master Boot Record, 主要開機紀錄區) 的方式來處理開機管理程式與分割表!而開機管理程式紀錄區與分割表則通通放在磁碟的第一個磁區, 這個磁區通常是 512bytes 的大小 (舊的磁碟磁區都是 512bytes 喔!),所以說,第一個磁區 512bytes 會有這兩個資料:
由於分割表所在區塊僅有64 bytes容量,因此最多僅能有四組記錄區,每組記錄區記錄了該區段的啟始與結束的磁柱號碼。 若將硬碟以長條形來看,然後將磁柱以直條圖來看,那麼那64 bytes的記錄區段有點像底下的圖示:
假設上面的硬碟裝置檔名為/dev/sda時,那麼這四個分割槽在Linux系統中的裝置檔名如下所示, 重點在於檔名後面會再接一個數字,這個數字與該分割槽所在的位置有關喔!
上圖中我們假設硬碟只有400個磁柱,共分割成為四個分割槽,第四個分割槽所在為第301到400號磁柱的範圍。 當你的作業系統為Windows時,那麼第一到第四個分割槽的代號應該就是C, D, E, F。當你有資料要寫入F槽時, 你的資料會被寫入這顆磁碟的301~400號磁柱之間的意思。
由於分割表就只有64 bytes而已,最多只能容納四筆分割的記錄, 這四個分割的記錄被稱為主要(Primary)或延伸(Extended)分割槽。 根據上面的圖示與說明,我們可以得到幾個重點資訊:
咦!你會不會突然想到,為啥要分割啊?基本上你可以這樣思考分割的角度:
既然分割表只有記錄四組資料的空間,那麼是否代表我一顆硬碟最多只能分割出四個分割槽?當然不是啦!有經驗的朋友都知道, 你可以將一顆硬碟分割成十個以上的分割槽的!那又是如何達到的呢?在Windows/Linux系統中, 我們是透過剛剛談到的延伸分割(Extended)的方式來處理的啦!延伸分割的想法是: 既然第一個磁區所在的分割表只能記錄四筆資料, 那我可否利用額外的磁區來記錄更多的分割資訊?實際上圖示有點像底下這樣:
在上圖當中,我們知道硬碟的四個分割記錄區僅使用到兩個,P1為主要分割,而P2則為延伸分割。請注意, 延伸分割的目的是使用額外的磁區來記錄分割資訊,延伸分割本身並不能被拿來格式化。 然後我們可以透過延伸分割所指向的那個區塊繼續作分割的記錄。
如上圖右下方那個區塊有繼續分割出五個分割槽, 這五個由延伸分割繼續切出來的分割槽,就被稱為邏輯分割槽(logical partition)。 同時注意一下,由於邏輯分割槽是由延伸分割繼續分割出來的,所以他可以使用的磁柱範圍就是延伸分割所設定的範圍喔! 也就是圖中的101~400啦!
同樣的,上述的分割槽在Linux系統中的裝置檔名分別如下:
仔細看看,怎麼裝置檔名沒有/dev/sda3與/dev/sda4呢?因為前面四個號碼都是保留給Primary或Extended用的嘛! 所以邏輯分割槽的裝置名稱號碼就由5號開始了!這在 MBR 方式的分割表中是個很重要的特性,不能忘記喔!
MBR 主要分割、延伸分割與邏輯分割的特性我們作個簡單的定義囉:
事實上,分割是個很麻煩的東西,因為他是以磁柱為單位的『連續』磁碟空間, 且延伸分割又是個類似獨立的磁碟空間,所以在分割的時候得要特別注意。我們舉底下的例子來解釋一下好了:
由於第一個磁區所記錄的分割表與MBR是這麼的重要,幾乎只要讀取硬碟都會先由這個磁區先讀起。 因此,如果整顆硬碟的第一個磁區(就是MBR與partition table所在的磁區)物理實體壞掉了,那這個硬碟大概就沒有用了! 因為系統如果找不到分割表,怎麼知道如何讀取磁柱區間呢?您說是吧!底下還有一些例題您可以思考看看:
MBR 分割表除了上述的主分割、延伸分割、邏輯分割需要注意之外,由於每組分割表僅有 16bytes 而已,因此可紀錄的資訊真的是相當有限的! 所以,在過去 MBR 分割表的限制中經常可以發現如下的問題:
這個 2.2TB 限制的現象在早期並不會很嚴重。但是,近年來硬碟廠商動不動推出的磁碟容量就高達好幾個 TB 的容量!目前 (2015) 單一磁碟最高容量甚至高達 8TB 了! 如果使用磁碟陣列的系統,像鳥哥的一組系統中,用了 24 顆 4TB 磁碟搭建出磁碟陣列,那在 Linux 底下就會看到有一顆 70TB 左右的磁碟! 如果使用 MBR 的話...那得要 2TB/2TB 的割下去,雖然 Linux kernel 現在已經可以透過某些機制讓磁碟分割高過 63 個以上,但是這樣就得要割出將近 40 個分割槽~ 真要命... 為了解決這個問題,所以後來就有 GPT 這個磁碟分割的格式出現了!
因為過去一個磁區大小就是 512bytes 而已,不過目前已經有 4K 的磁區設計出現!為了相容於所有的磁碟,因此在磁區的定義上面, 大多會使用所謂的邏輯區塊位址(Logical Block Address, LBA)來處理。GPT 將磁碟所有區塊以此 LBA(預設為 512bytes 喔!) 來規劃,而第一個 LBA 稱為 LBA0 (從 0 開始編號)。
與 MBR 僅使用第一個 512bytes 區塊來紀錄不同, GPT 使用了 34 個 LBA 區塊來紀錄分割資訊!同時與過去 MBR 僅有一的區塊,被幹掉就死光光的情況不同, GPT 除了前面 34 個 LBA 之外,整個磁碟的最後 33 個 LBA 也拿來作為另一個備份!這樣或許會比較安全些吧!詳細的結構有點像底下的模樣(註1):
上述圖示的解釋說明如下:
與 MBR 模式相似的,這個相容區塊也分為兩個部份,一個就是跟之前 446 bytes 相似的區塊,儲存了第一階段的開機管理程式! 而在原本的分割表的紀錄區內,這個相容模式僅放入一個特殊標誌的分割,用來表示此磁碟為 GPT 格式之意。而不懂 GPT 分割表的磁碟管理程式, 就不會認識這顆磁碟,除非用戶有特別要求要處理這顆磁碟,否則該管理軟體不能修改此分割資訊,進一步保護了此磁碟喔!
這個部份紀錄了分割表本身的位置與大小,同時紀錄了備份用的 GPT 分割 (就是前面談到的在最後 34 個 LBA 區塊) 放置的位置, 同時放置了分割表的檢驗機制碼 (CRC32),作業系統可以根據這個檢驗碼來判斷 GPT 是否正確。若有錯誤,還可以透過這個紀錄區來取得備份的 GPT(磁碟最後的那個備份區塊) 來恢復 GPT 的正常運作!
從 LBA2 區塊開始,每個 LBA 都可以紀錄 4 筆分割紀錄,所以在預設的情況下,總共可以有 4*32 = 128 筆分割紀錄喔!因為每個 LBA 有 512bytes,因此每筆紀錄用到 128 bytes 的空間,除了每筆紀錄所需要的識別碼與相關的紀錄之外,GPT 在每筆紀錄中分別提供了 64bits 來記載開始/結束的磁區號碼,因此,GPT 分割表對於單一分割槽來說, 他的最大容量限制就會在『 264 * 512bytes = 263 * 1Kbytes = 233*TB = 8 ZB 』,要注意 1ZB = 230TB 啦! 你說有沒有夠大了?
現在 GPT 分割預設可以提供多達 128 筆紀錄,而在 Linux 本身的核心裝置紀錄中,針對單一磁碟來說,雖然過去最多只能到達 15 個分割槽,不過由於 Linux kernel 透過 udev 等方式的處理,現在 Linux 也已經沒有這個限制在了! 此外,GPT 分割已經沒有所謂的主、延伸、邏輯分割的概念,既然每筆紀錄都可以獨立存在, 當然每個都可以視為是主分割!每一個分割都可以拿來格式化使用喔!
雖然新版的 Linux 大多認識了 GPT 分割表,沒辦法,我們 server 常常需要比較高容量的磁碟嘛!不過,在磁碟管理工具上面, fdisk 這個老牌的軟體並不認識 GPT 喔!要使用 GPT 的話,得要操作類似 gdisk 或者是 parted 指令才行!這部份我們會在第二篇再來談一談。 另外,開機管理程式方面, grub 第一版並不認識 GPT 喔!得要 grub2 以後才會認識的!開機管理程式這部份則第五篇再來談喔!
並不是所有的作業系統都可以讀取到 GPT 的磁碟分割格式喔!同時,也不是所有的硬體都可以支援 GPT 格式喔!是否能夠讀寫 GPT 格式又與開機的檢測程式有關! 那開機的檢測程式又分成啥鬼東西呢?就是 BIOS 與 UEFI 啦!那這兩個又是啥東西?就讓我們來聊一聊!
我們在計算機概論裡面談到了,沒有執行軟體的硬體是沒有用的,除了會電人之外..., 而為了電腦硬體系統的資源合理分配,因此有了作業系統這個系統軟體的產生。由於作業系統會控制所有的硬體並且提供核心功能, 因此我們的電腦就能夠認識硬碟內的檔案系統,並且進一步的讀取硬碟內的軟體檔案與執行該軟體來達成各項軟體的執行目的。
問題是,你有沒有發現,既然作業系統也是軟體,那麼我的電腦又是如何認識這個作業系統軟體並且執行他的? 明明開機時我的電腦還沒有任何軟體系統,那他要如何讀取硬碟內的作業系統檔案啊?嘿嘿!這就得要牽涉到電腦的開機程序了! 底下就讓我們來談一談這個開機程序吧!
基本上,目前的主機系統在載入硬體驅動方面的程序,主要有早期的 BIOS 與新的 UEFI 兩種機制,我們分別來談談囉!
在計算機概論裡面我們有談到那個可愛的BIOS與CMOS兩個東西, CMOS是記錄各項硬體參數且嵌入在主機板上面的儲存器,BIOS則是一個寫入到主機板上的一個韌體(再次說明, 韌體就是寫入到硬體上的一個軟體程式)。這個BIOS就是在開機的時候,電腦系統會主動執行的第一個程式了!
接下來BIOS會去分析電腦裡面有哪些儲存設備,我們以硬碟為例,BIOS會依據使用者的設定去取得能夠開機的硬碟, 並且到該硬碟裡面去讀取第一個磁區的MBR位置。 MBR這個僅有446 bytes的硬碟容量裡面會放置最基本的開機管理程式, 此時BIOS就功成圓滿,而接下來就是MBR內的開機管理程式的工作了。
這個開機管理程式的目的是在載入(load)核心檔案, 由於開機管理程式是作業系統在安裝的時候所提供的,所以他會認識硬碟內的檔案系統格式,因此就能夠讀取核心檔案, 然後接下來就是核心檔案的工作,開機管理程式與 BIOS 也功成圓滿,將之後的工作就交給大家所知道的作業系統啦!
簡單的說,整個開機流程到作業系統之前的動作應該是這樣的:
第二點要注意,如果你的分割表為 GPT 格式的話,那麼 BIOS 也能夠從 LBA0 的 MBR 相容區塊讀取第一階段的開機管理程式碼, 如果你的開機管理程式能夠認識 GPT 的話,那麼使用 BIOS 同樣可以讀取到正確的作業系統核心喔!換句話說, 如果開機管理程式不懂 GPT ,例如 Windows XP 的環境,那自然就無法讀取核心檔案,開機就失敗了!
由上面的說明我們會知道,BIOS與MBR都是硬體本身會支援的功能,至於Boot loader則是作業系統安裝在MBR上面的一套軟體了。由於MBR僅有446 bytes而已,因此這個開機管理程式是非常小而美的。 這個boot loader的主要任務有底下這些項目:
上面前兩點還容易理解,但是第三點很有趣喔!那表示你的電腦系統裡面可能具有兩個以上的開機管理程式呢! 有可能嗎?我們的硬碟不是只有一個MBR而已?是沒錯啦!但是開機管理程式除了可以安裝在MBR之外, 還可以安裝在每個分割槽的開機磁區(boot sector)喔!瞎密?分割槽還有各別的開機磁區喔? 沒錯啊!這個特色才能造就『多重開機』的功能啊!
我們舉一個例子來說,假設你的個人電腦只有一個硬碟,裡面切成四個分割槽,其中第一、二分割槽分別安裝了Windows及Linux, 你要如何在開機的時候選擇用Windows還是Linux開機呢?假設MBR內安裝的是可同時認識Windows/Linux作業系統的開機管理程式, 那麼整個流程可以圖示如下:
在上圖中我們可以發現,MBR的開機管理程式提供兩個選單,選單一(M1)可以直接載入Windows的核心檔案來開機; 選單二(M2)則是將開機管理工作交給第二個分割槽的開機磁區(boot sector)。當使用者在開機的時候選擇選單二時, 那麼整個開機管理工作就會交給第二分割槽的開機管理程式了。 當第二個開機管理程式啟動後,該開機管理程式內(上圖中)僅有一個開機選單,因此就能夠使用Linux的核心檔案來開機囉。 這就是多重開機的工作情況啦!我們將上圖作個總結:
那現在請你想一想,為什麼人家常常說:『如果要安裝多重開機, 最好先安裝Windows再安裝Linux』呢?這是因為:
因此,如果先安裝Linux再安裝Windows的話,那MBR的開機管理程式就只會有Windows的項目,而不會有Linux的項目 (因為原本在MBR內的Linux的開機管理程式就會被覆蓋掉)。 那需要重新安裝Linux一次嗎?當然不需要,你只要用盡各種方法來處理MBR的內容即可。 例如利用Linux的救援模式來挽救MBR啊!
我們現在知道 GPT 可以提供到 64bit 的定址,然後也能夠使用較大的區塊來處理開機管理程式。但是 BIOS 其實不懂 GPT 耶!還得要透過 GPT 提供相容模式才能夠讀寫這個磁碟裝置~而且 BIOS 僅為 16 位元的程式,在與現階段新的作業系統接軌方面有點弱掉了! 為了解決這個問題,因此就有了 UEFI (Unified Extensible Firmware Interface) 這個統一可延伸韌體界面的產生。
UEFI 主要是想要取代 BIOS 這個韌體界面,因此我們也稱 UEFI 為 UEFI BIOS 就是了。UEFI 使用 C 程式語言,比起使用組合語言的傳統 BIOS 要更容易開發!也因為使用 C 語言來撰寫,因此如果開發者夠厲害,甚至可以在 UEFI 開機階段就讓該系統了解 TCP/IP 而直接上網! 根本不需要進入作業系統耶!這讓小型系統的開發充滿各式各樣的可能性!
基本上,傳統 BIOS 與 UEFI 的差異可以用T客幫雜誌彙整的表格來說明(註2):
比較項目 | 傳統 BIOS | UEFI |
使用程式語言 | 組合語言 | C 語言 |
硬體資源控制 | 使用中斷 (IRQ) 管理 不可變的記憶體存取 不可變得輸入/輸出存取 | 使用驅動程式與協定 |
處理器運作環境 | 16 位元 | CPU 保護模式 |
擴充方式 | 透過 IRQ 連結 | 直接載入驅動程式 |
第三方廠商支援 | 較差 | 較佳且可支援多平台 |
圖形化能力 | 較差 | 較佳 |
內建簡化作業系統前環境 | 不支援 | 支援 |
從上頭我們可以發現,與傳統的 BIOS 不同,UEFI 簡直就像是一個低階的作業系統~甚至於連主機板上面的硬體資源的管理, 也跟作業系統相當類似,只需要載入驅動程式即可控制操作。同時由於程式控制得宜,一般來說,使用 UEFI 介面的主機,在開機的速度上要比 BIOS 來的快上許多! 因此很多人都覺得 UEFI 似乎可以發展成為一個很有用的作業系統耶~不過,關於這個,你無須擔心未來除了 Linux 之外,還得要增加學一個 UEFI 的作業系統啦!為啥呢?
UEFI 當初在發展的時候,就制定一些控制在裡頭,包括硬體資源的管理使用輪詢 (polling) 的方式來管理,與 BIOS 直接了解 CPU 以中斷的方式來管理比較, 這種 polling 的效率是稍微慢一些的,另外,UEFI 並不能提供完整的快取功能,因此執行效率也沒有辦法提昇。不過由於載入所有的 UEFI 驅動程式之後, 系統會開啟一個類似作業系統的 shell 環境,使用者可以此環境中執行任意的 UEFI 應用程式,而且效果比 MSDOS 更好哩。
所以囉,因為效果華麗但效能不佳,因此這個 UEFI 大多用來作為啟動作業系統之前的硬體檢測、開機管理、軟體設定等目的,基本上是比較難的。 同時,當載入作業系統後,一般來說,UEFI 就會停止工作,並將系統交給作業系統,這與早期的 BIOS 差異不大。比較特別的是,某些特定的環境下, 這些 UEFI 程式是可以部份繼續執行的,以協助某些作業系統無法找到特定裝置時,該裝置還是可以持續運作。
此外,由於過去 cracker 經常藉由 BIOS 開機階段來破壞系統,並取得系統的控制權,因此 UEFI 加入了一個所謂的安全啟動 (secure boot) 機制, 這個機制代表著即將開機的作業系統必須要被 UEFI 所驗證,否則就無法順利開機!微軟用了很多這樣的機制來管理硬體。 不過加入這個機制後,許多的作業系統,包括 Linux ,就很有可能無法順利開機喔!所以,某些時刻,你可能得要將 UEFI 的 secure boot 功能關閉, 才能夠順利的進入 Linux 哩! (這一點讓自由軟體工作者相當感冒啦!)
另外,與 BIOS 模式相比,雖然 UEFI 可以直接取得 GPT 的分割表,不過最好依舊擁有 BIOS boot 的分割槽支援, 同時,為了與 windows 相容,並且提供其他第三方廠商所使用的 UEFI 應用程式儲存的空間,你必須要格式化一個 vfat 的檔案系統, 大約提供 512MB 到 1G 左右的容量,以讓其他 UEFI 執行較為方便。
在 windows 系統重灌之前,你可能都會事先考量,到底系統碟 C 槽要有多少容量?而資料碟 D 槽又要給多大容量等等, 然後實際安裝的時候,你會發現到其實 C 槽之前會有個 100MB 的分割槽被獨立出來~所以實際上你就會有三個分割槽就是了。那 Linux 底下又該如何設計類似的東西呢?
我們前面有談過Linux內的所有資料都是以檔案的形態來呈現的,所以囉,整個Linux系統最重要的地方就是在於目錄樹架構。 所謂的目錄樹架構(directory tree)就是以根目錄為主,然後向下呈現分支狀的目錄結構的一種檔案架構。 所以,整個目錄樹架構最重要的就是那個根目錄(root directory),這個根目錄的表示方法為一條斜線『/』, 所有的檔案都與目錄樹有關。目錄樹的呈現方式如下圖所示:
如上圖所示,所有的檔案都是由根目錄(/)衍生來的,而次目錄之下還能夠有其他的資料存在。上圖中長方形為目錄, 波浪形則為檔案。那當我們想要取得mydata那個檔案時,系統就得由根目錄開始找,然後找到home接下來找到dmtsai, 最終的檔名為:/home/dmtsai/mydata的意思。
我們現在知道整個Linux系統使用的是目錄樹架構,但是我們的檔案資料其實是放置在磁碟分割槽當中的, 現在的問題是『如何結合目錄樹的架構與磁碟內的資料』呢? 這個時候就牽扯到『掛載(mount)』的問題啦!
所謂的『掛載』就是利用一個目錄當成進入點,將磁碟分割槽的資料放置在該目錄下; 也就是說,進入該目錄就可以讀取該分割槽的意思。這個動作我們稱為『掛載』,那個進入點的目錄我們稱為『掛載點』。 由於整個Linux系統最重要的是根目錄,因此根目錄一定需要掛載到某個分割槽的。 至於其他的目錄則可依使用者自己的需求來給予掛載到不同的分割槽。我們以下圖來作為一個說明:
上圖中假設我的硬碟分為兩槽,partition 1是掛載到根目錄,至於partition 2則是掛載到/home這個目錄。 這也就是說,當我的資料放置在/home內的各次目錄時,資料是放置到partition 2的,如果不是放在/home底下的目錄, 那麼資料就會被放置到partition 1了!
其實判斷某個檔案在那個partition底下是很簡單的,透過反向追蹤即可。以上圖來說, 當我想要知道/home/vbird/test這個檔案在哪個partition時,由test --> vbird --> home --> /,看那個『進入點』先被查到那就是使用的進入點了。 所以test使用的是/home這個進入點而不是/喔!
既然我們在Linux系統下使用的是目錄樹系統,所以安裝的時候自然就得要規劃磁碟分割與目錄樹的掛載了。 實際上,在Linux安裝的時候已經提供了相當多的預設模式讓你選擇分割的方式了, 不過,無論如何,分割的結果可能都不是很能符合自己主機的樣子!因為畢竟每個人的『想法』都不太一樣! 因此,強烈建議使用『自訂安裝, Custom 』這個安裝模式!在某些Linux distribution中,會將這個模式寫的很厲害,叫做是『Expert, 專家模式』,這個就厲害了, 請相信您自己,瞭解上面的說明後,就請自稱為專家了吧!沒有問題!
通常初次安裝Linux系統的朋友們,我們都會建議他直接以一個最大的分割槽『 / 』來安裝系統。 這樣作有個好處,就是不怕分割錯誤造成無法安裝的困境!例如/usr是Linux的可執行程式及相關的文件擺放的目錄, 所以他的容量需求蠻大的,萬一你分割了一塊分割槽給/usr,但是卻給的不夠大,那麼就傷腦筋了! 因為會造成無法將資料完全寫入的問題,就有可能會無法安裝啦!因此如果你是初次安裝的話, 那麼可以僅分割成兩個分割槽『 / 與 Swap 』即可。
在想要學習Linux的朋友中,最麻煩的可能就是得要常常處理分割的問題,因為分割是系統管理員很重要的一個任務。 但如果你將整個硬碟的容量都用光了,那麼你要如何練習分割呢?^_^。所以鳥哥在後續的練習中也會這樣做, 就是請你特別預留一塊不分割的磁碟容量,作為後續練習時可以用來分割之用!
此外,預留的分割槽也可以拿來做為備份之用。因為我們在實際操作Linux系統的過程中, 可能會發現某些script或者是重要的檔案很值得備份時,就可以使用這個剩餘的容量分割出新的分割槽, 並使用來備份重要的設定檔或者是script。這有個最大的好處, 就是當我的Linux重新安裝的時候,我的一些軟體或工具程式馬上就可以直接在硬碟當中找到!呵呵!重新安裝比較便利啦。 為什麼要重新安裝?因為沒有安裝過Linux十次以上,不要說你學會了Linux了啦!慢慢體會這句話吧! ^_^
對於首次接觸Linux的朋友們,鳥哥通常不建議使用各個distribution所提供預設的Server安裝方式, 因為會讓你無法得知Linux在搞什麼鬼,而且也不見得可以符合你的需求!而且要注意的是, 選擇Server的時候,請『確定』你的硬碟資料是不再需要!因為Linux會自動的把你的硬碟裡面舊有的資料全部殺掉!
現在你知道Linux為什麼不好學了吧?因為很多基礎知識都得要先瞭解!否則連安裝都不知道怎麼安裝~ 現在你知道Linux的可愛了吧!因為如果你學會了,嘿嘿!很多電腦系統/作業系統的概念都很清晰, 轉換到不同的資訊跑道是比較容易的喔!^_^
安裝最重要的第一件事,就是要取得Linux distributions的光碟資料,該如何去下載? 目前有這麼多的distributions,你應該要選擇哪一個版本比較好?為什麼會比較好? 在台灣,你可以在哪裡下載你所需要的Linux 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完全相容的版本來練習, 目前(2015/05)最新的版本是CentOS 7.1版。不過,從 CentOS 7.0 版本開始,安裝光碟已經不再提供 386 相容版本了, 亦即僅有 64 位元的硬體才能夠使用該安裝光碟來裝系統了!舊的 32 位元硬體系統已經不主動提供安裝光碟了喔!
你可以選擇到CentOS的官方網站去下載最新的版本,不過我們在台灣嘛!台灣有映設站台(mirror site), 所以由映設站台來下載比較快啊!底下列出CentOS的下載點:
CentOS 7.x 有提供完整版本 (everything) 以及大部分安裝軟體的 DVD1 版本,鳥哥建議如果你的網路速度夠大,下載 everything 版本即可, 如果你得要使用光碟機來安裝的話,那直接下載 DVD 版本並且燒錄到 DVD 光碟上面即可安裝了。如果不想要安裝,只想要看看到底開機會是什麼 Linux 環境, 可以下載 LiveCD/LiveGNOME/LiveKDE 等版本來測試喔!如果想要練功,可以直接使用最小安裝光碟版 (Minimal) 來安裝!
不知道你有沒有發現,怎麼我想要下載的檔名會是 CentOS-7-x86_64-Everything-1503-01.iso 這樣的格式?那個 1503 是啥東西啊? 其實從 CentOS 7 之後,版本命名的依據就跟發表的日期有關了!那個 CentOS-7 講的是 7.x 版本,x86_64 指的是 64 位元作業系統, Everything 指的是包山包海的版本,1503 指的是 2015 年的 3 月發表的版本, 01.iso 則得要與 CentOS7 搭配,所以是 CentOS 7.1 版的意思! 這樣有看懂嗎?
我們前面已經提過,由於主機的服務目的不同,所需要的硬體等級與配備自然也就不一樣! 底下鳥哥稍微提一提每種服務可能會需要的硬體配備規劃,當然,還是得提醒, 每個朋友的需求都不一樣,所以設計您的主機之前,請先針對自己的需求進行考量。而, 如果您不知道自己的考量為何,那麼就先拿一部普通的電腦來玩一玩吧!不過要記得! 不要將重要資料放在練習用的Linux主機上面。
在某些情況之下,你可能會想要在『一部主機上面安裝兩套以上的作業系統』, 例如底下這些狀況:
果真如此的話,那麼剛剛我們在上一個小節談到的開機流程與多重開機的資料就很重要了。 因為需要如此你才能夠在一部主機上面操弄兩種不同的作業系統嘛!
如果你的Linux主機已經是想要拿來作為某些服務之用時,那麼務必不要選擇太老舊的硬體喔! 前面談到過,太老舊的硬體可能會有電子零件老化的問題~另外,如果你的Linux主機必須要全年無休的開機著, 那麼擺放這部主機的位置也需要選擇啊!好了,底下再來談一談,在一般小型企業或學校單位中, 常見的某些服務與你的硬體關係有哪些?
通常小型企業或者是學校單位大多僅會有一條對外的連線,然後全公司/學校內的電腦全部透過這條連線連到網際網路上。 此時我們就得要使用IP分享器來讓這一條對外連線分享給所有的公司內部員工使用。 那麼Linux能不能達到此一IP分享的功能呢?當然可以,就是透過NAT服務即可達成這項任務了!
在這種環境中,由於Linux作為一個內/外分離的實體,因此網路流量會比較大一點。 此時Linux主機的網路卡就需要比較好些的配備。其他的CPU、RAM、硬碟等等的影響就小很多。 事實上,單利用Linux作為NAT主機來分享IP是很不智的~因為PC的耗電能力比IP分享器要大的多~
那麼為什麼你還要使用Linux作為NAT呢?因為Linux NAT還可以額外的加裝很多分析軟體, 可以用來分析用戶端的連線,或者是用來控制頻寬與流量,達到更公平的頻寬使用呢! 更多的功能則有待後續更多的學習囉!你也可以參考我們在伺服器架設篇當中的資料囉!
在你的Windows系統之間如何傳輸資料呢?當然就是透過網路上的芳鄰來傳輸啦!那還用問。 這也是學校老師在上課過程中要分享資料給同學常用的機制了。問題是,Windows 7 的網芳一般只能同時分享十部用戶端連線,超過的話就得要等待了~真不人性化。
我們可以使用Linux上面的SAMBA這個軟體來達成加入Windows網芳的功能喔!SAMBA的效能不錯, 也沒有用戶端連線數的限制,相當適合於一般學校環境的檔案伺服器(file server)的角色呢!
這種伺服器由於分享的資料量較大,對於系統的網路卡與硬碟的大小及速度就比較重要, 如果你還針對不同的使用者提供檔案伺服器功能,那麼/home這個目錄可以考慮獨立出來,並且加大容量。
郵件伺服器是非常重要的,尤其對於現代人來說,電子郵件幾乎已經取代了傳統的人工郵件遞送了。 拜硬碟價格大跌及Google/Yahoo/MicroSoft公平競爭之賜,一般免費的email信箱幾乎都提供了很不錯的郵件服務, 包過Web介面的傳輸、大於2GB以上的容量空間及全年無休的服務等等。例如非常多人使用的gmail就是一例: http://gmail.com。
雖然免費的信箱已經非常夠用了,老實說,鳥哥也不建議您架設mail server了。問題是, 如果你是一間私人單位的公司,你的公司內傳送的email是具有商業機密或隱私性的,那你還想要交給免費信箱去管理嗎? 此時才有需要架設mail server囉。在mail server上面,重要的也是硬碟容量與網路卡速度,在此情境中,也可以將/var目錄獨立出來,並加大容量。
WWW伺服器幾乎是所有的網路主機都會安裝的一個功能,因為他除了可以提供Internet的WWW連線之外, 很多在網路主機上面的軟體功能(例如某些分析軟體所提供的最終分析結果的畫面)也都使用WWW作為顯示的介面, 所以這傢伙真是重要到不行的。
CentOS使用的是Apache這套軟體來達成WWW網站的功能,在WWW伺服器上面,如果你還有提供資料庫系統的話, 那麼CPU的等級就不能太低,而最重要的則是RAM了!要增加WWW伺服器的效能,通常提升RAM是一個不錯的考量。
如果你是個區域網路管理員,你的區網內共有20部以上的電腦給一般員工使用,這些員工假設並沒有電腦網路的維護技能。 那你想要讓這些電腦在連上Internet時需要手動去設定IP還是他可以自動的取得IP呢?當然是自動取得比較方便啦! 這就是DHCP服務的功能了!用戶端電腦只要選擇『自動取得IP』,其他的,就是你系統管理員在DHCP伺服器上面設定一下即可。 這個咚咚的硬體要求可以不必很高囉。
常常看到很多朋友喜歡架設FTP去進行網路資料的傳輸,甚至很多人會架設地下FTP網站去傳輸些違法的資料。 老實說,『FTP傳輸再怎麼地下化也是很容易被捉到的』啦!所以,鳥哥相當不建議您架設FTP的喔! 不過,對於大專院校來說,因為常常需要分享給全校師生一些免費的資源, 此時匿名使用者的FTP軟體功能就很需要存在了。對於FTP的硬體需求來說,硬碟容量與網路卡好壞相關性較高。
大致上我們會安裝的伺服器軟體就是這一些囉! 當然啦,還是那句老話,在目前你剛接觸Linux的這個階段中,還是以Linux基礎為主, 鳥哥也希望你先瞭解Linux的相關主機操作技巧,其他的架站,未來再談吧! 而上面列出的各項服務,僅是提供給你,如果想要架設某種網路服務的主機時,你應該如何規劃主機比較好!
系統對於硬碟的需求跟剛剛提到的主機開放的服務有關,那麼除了這點之外,還有沒有其他的注意事項呢? 當然有,那就是資料的分類與資料安全性的考量。所謂的『資料安全』並不是指資料被網路cracker所破壞, 而是指『當主機系統的硬體出現問題時,你的檔案資料能否安全的保存』之意。
常常會發現網路上有些朋友在問『我的Linux主機因為跳電的關係,造成不正常的關機,結果導致無法開機,這該如何是好?』 呵呵,幸運一點的可以使用fsck來解決硬碟的問題,麻煩一點的可能還需要重新安裝Linux呢!傷腦筋吧!另外, 由於Linux是多人多工的環境,因此很可能上面已經有很多人的資料在其中了, 如果需要重新安裝的話,光是搬移與備份資料就會瘋掉了!所以硬碟的分割考量是相當重要的!
雖然我們在本章的第二小節部分有談論過磁碟分割了,但是,硬碟的規劃對於Linux新鮮人而言,那將是造成你『頭疼』的主要兇手之一! 因為硬碟的分割技巧需要對於Linux檔案結構有相當程度的認知之後才能夠做比較完善的規劃的! 所以,在這裡你只要有個基礎的認識即可。老實說,沒有安裝過十次以上的Linux系統,是學不會Linux與磁碟分割的啦!
無論如何,底下還是說明一下基本硬碟分割的模式吧!
以鳥哥為例,通常我會希望我的郵件主機大一些,因此我的/var通常會給個數GB的大小, 如此一來就可以不擔心會有郵件空間不足的情況了!另外,由於我開放SAMBA服務, 因此提供每個研究室內人員的資料備份空間,所以囉,/home所開放的空間也很大!至於/usr/的容量, 大概只要給2-5GB即可!凡此種種均與您當初預計的主機服務有關! 因此,請特別注意您的服務項目!然後才來進行硬碟的規劃。
這裡說一下鳥哥的兩個實際的案例,這兩個案例是目前還在運作的主機喔! 要先聲明的是,鳥哥的範例不見得是最好的,因為每個人的考量並不一樣。我只是提供相對可以使用的方案而已喔!
在上面的案例中,案例一是屬於小規模的主機系統,因此只要使用預計被淘汰的配備即可進行主機的架設! 唯一可能需要購買的大概是網路卡吧!呵呵!而在案例二中,由於我需要大量的數值運算, 且運算結果的資料非常的龐大,因此就需要比較大的磁碟容量與較佳的網路系統了。 以上的資料請先記得,因為下一章節在實際安裝Linux之前,你得先進行主機的規劃呀!