Ubuntu Linux硬盤分區(qū)引導(dǎo)程序
特別值得一提的是Ubuntu Linux有很多值得學(xué)習(xí)的地方,這里我們主要介紹Ubuntu Linux,包括介紹Ubuntu Linux等方面。安裝Ubuntu Linux的預(yù)備知識。
本文涉及到的很多內(nèi)容是只是粗略的描述,如想深入了解更多的相關(guān)知識,請求助搜索引擎,而我的唯一建議是,請盡量看新的文章,Ubuntu Linux的發(fā)展日新月異,老舊的Ubuntu Linux文檔很可能會對讀者認(rèn)識Ubuntu Linux產(chǎn)生誤導(dǎo)。
1) 硬盤分區(qū)
一塊硬盤可以分為四個主分區(qū),或三個主分區(qū)加上一個擴(kuò)展分區(qū)。所謂的擴(kuò)展分區(qū),其實只是一個容器,實際上,我們并不直接使用擴(kuò)展分區(qū)。在擴(kuò)展分區(qū)內(nèi),我們可以進(jìn)一步劃分邏輯分區(qū)。一般認(rèn)為在一個擴(kuò)展分區(qū)內(nèi),能分出無數(shù)個邏輯分區(qū)。正因為有了邏輯分區(qū),一塊硬盤才能被分成很多個分區(qū)。
另一個可能涉及的概念是活動分區(qū)。電腦加電啟動時,BIOS會尋找硬盤上有活動分區(qū)標(biāo)識的分區(qū)尋找操作系統(tǒng)引導(dǎo)程序。如果一塊硬盤上沒有活動分區(qū),則即使這塊硬盤上有引導(dǎo)程序和完好的操作系統(tǒng),也將無法成功啟動。一塊硬盤上有且只能有一個活動分區(qū),而且只有主分區(qū)才能成為活動分區(qū)。
2) Ubuntu Linux中的硬盤分區(qū)
與Windows不同,Ubuntu Linux并不是用C, D, E, F等盤符來標(biāo)識每一個分區(qū)的,而是用一系列設(shè)備文件來標(biāo)識。Ubuntu Linux把一切硬件設(shè)備都當(dāng)成文件。比如,Ubuntu Linux下,四個主分區(qū)分別對應(yīng)/dev /sda1, /dev/sda2, /dev/sda3和/dev/sda4。其中,/dev是硬件設(shè)備文件所在的目錄(即:文件夾,下同),sd代表SCSI Disk,a代表***個SCSI設(shè)備,數(shù)字1,2,3,4分別代表了四個主分區(qū)。
如果你不知道什么是SCSI Disk,不用擔(dān)心,因為你并不需要知道它究竟是什么。通常,如果你的電腦中只有一塊硬盤,那么,這塊硬盤一定是/dev/sda。 可能你以前接觸過Ubuntu Linux,或曾經(jīng)在一些老舊的資料中看到過/dev/hda代表***個主IDE通道上的硬盤。那么,你現(xiàn)在已經(jīng)無需知道這些了。因為Ubuntu Linux已經(jīng)取消了用hd和sd區(qū)分不同類型的硬盤的機制,取而代之的,用sda統(tǒng)一代表電腦中的***塊硬盤。
Ubuntu Linux下,/dev/sdaX中的數(shù)字X的編號是有限的。在Ubuntu Linux下,***的分區(qū)編號是16。因此,主分區(qū)和擴(kuò)展分區(qū)編號占用 1~4,邏輯分區(qū)占用5~16。也就是說,即使你的硬盤中只有一個主分區(qū)(如,/dev/sda1)和一個擴(kuò)展分區(qū)(/dev/sda2),剩下的兩個主分區(qū)編號: /dev/sda3, dev/sda4 也不會分配給邏輯分區(qū)。***個邏輯分區(qū)一定是從/dev/sda5開始編號的。這點與Windows下盤符的編制類似。如:A盤一定是3.5英寸軟驅(qū),B盤一定是5.25英寸軟驅(qū),而從C盤開始才是硬盤分區(qū)。即使電腦上沒有軟驅(qū),***個硬盤分區(qū)的編號也是C,而不是A。
3) 引導(dǎo)程序與MBR(Master Boot Record)
引導(dǎo)程序是負(fù)責(zé)將操作系統(tǒng)的內(nèi)核從硬盤上加載到內(nèi)存中的程序。在使用Windows的時候,我們似乎從沒有關(guān)心過引導(dǎo)程序。不過安裝過雙Windows系統(tǒng)的讀者一定認(rèn)識Windows的引導(dǎo)程序,即使你從來沒有意識到這一點。Windows的引導(dǎo)程序叫做OS Loader,即操作系統(tǒng)加載器,負(fù)責(zé)在啟動的時候根據(jù)boot.ini中的配置信息,在屏幕上顯示操作系統(tǒng)選擇菜單,然后根據(jù)用戶的選擇引導(dǎo)合適的操作系統(tǒng)。
Ubuntu Linux下有兩種引導(dǎo)程序:一種叫做Lilo,另一種叫做Grub。Lilo是一個非常經(jīng)典的引導(dǎo)程序,最初因為它不支持引導(dǎo)位于1024柱面后的Ubuntu Linux內(nèi)核,而被Grub所取代。新版的Lilo已經(jīng)能夠支持引導(dǎo)1024柱面后的Ubuntu Linux內(nèi)核了?,F(xiàn)在,幾乎所有的主流發(fā)行版的Ubuntu Linux都使用Grub作為默認(rèn)的引導(dǎo)程序。Ubuntu Linux的引導(dǎo)程序與Windows的OS Loader類似。比如,Grub的作用就是負(fù)責(zé)讀取配置文件(menu.lst),顯示操作系統(tǒng)的選擇菜單,并根據(jù)用戶的選擇引導(dǎo)合適的操作系統(tǒng)。MBR又稱主引導(dǎo)記錄,位于硬盤的***個柱面的***個磁道的***個扇區(qū)中,大小為512B,引導(dǎo)程序就位于MBR中。
BIOS在開機過程中,會讀取并運行MBR中的引導(dǎo)程序,由它來加載操作系統(tǒng)內(nèi)核。同樣位于***個柱面的***個磁道的***個扇區(qū)中的還有主分區(qū)表。因為主分區(qū)表的大小有限,因此只能存下四個分區(qū)的信息,這也是一塊硬盤只能分為四個主分區(qū)的原因。也許你也猜到了,還有一個叫做“擴(kuò)展分區(qū)表”的東東,位于擴(kuò)展分區(qū)的最前面,保存了邏輯分區(qū)的信息。Ubuntu Linux安裝時,通常會把Grub安裝到MBR。這樣,你就可以用Grub同時引導(dǎo)Ubuntu Linux和Windows了。
4) 文件系統(tǒng)和SWAP
在一個硬盤分區(qū)可以使用之前,必須格式化成特定的文件系統(tǒng)。Windows下常見的文件系統(tǒng)有FAT32和NTFS。一些U盤的文件系統(tǒng)還可能是FAT(16)格式的。關(guān)于FAT(16)、FAT32和NTFS這三種文件系統(tǒng)之間的區(qū)別,你只要知道FAT(16)支持的***單個文件為2GB,F(xiàn)AT32支持的***單個文件為4GB,而NTFS則可以支持大于4GB的單個文件。Ubuntu Linux支持很多種不同類型的文件系統(tǒng)。Ubuntu Linux能夠?qū)AT16/32和NTFS進(jìn)行讀寫。
但是因為這兩種文件系統(tǒng)不支持Ubuntu Linux文件權(quán)限,因此Ubuntu Linux操作系統(tǒng)無法安裝在這兩種文件系統(tǒng)的分區(qū)中。常見的用于安裝Linux的文件系統(tǒng)主要有EXT3、ReiserFS、XFS和JFS等。關(guān)于Ubuntu Linux支持的文件系統(tǒng),可以列出長長的一串來。通常我們都會使用EXT3作為默認(rèn)的文件系統(tǒng)。關(guān)于各種文件系統(tǒng)孰優(yōu)孰劣的爭論,實在是太多了,個人的看法是,我們使用Ubuntu Linux是作為桌面系統(tǒng)來使用的,大多數(shù)情況下,文件系統(tǒng)的性能并不是我們所需要考慮的大問題。也許你會看到很多對EXT3的負(fù)面評價,但是EXT3畢竟是最老牌,最久經(jīng)考驗的Linux文件系統(tǒng),所以選擇它沒錯。
事實上,如果安裝的是Gentoo Linux,則選擇ReiserFS或許會更好。因為ReiserFS處理大量小文件的性能非常出眾。此外,你可能還會見到一種叫做EXT2的文件系統(tǒng),正如其名字所暗示的那樣,EXT3是EXT2的升級版本。Linux SWAP,即Linux的交換分區(qū),也是一種文件系統(tǒng),它的作用是作為Linux的虛擬內(nèi)存。在Windows下,虛擬內(nèi)存是一個文件: pagefile.sys,而Linux下,虛擬內(nèi)存需要使用獨立分區(qū),這樣做的目的,據(jù)說是為了提高虛擬內(nèi)存的性能。通常,虛擬內(nèi)存的大小設(shè)置為物理內(nèi)存的1~2倍。
5) Linux的文件結(jié)構(gòu)、掛載與分區(qū)建議
Windows的文件結(jié)構(gòu)是多個并列的樹狀結(jié)構(gòu),最頂部的是不同的磁盤(分區(qū)),如:C,D,E,F(xiàn)等。Linux的文件結(jié)構(gòu)是單個的樹狀結(jié)構(gòu)。最頂部的為根目錄,即/。在根目錄下,分為多個子目錄,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。這些目錄的具體作用在這里就不做詳細(xì)介紹了。
磁盤分區(qū)都必須掛載到目錄樹中的某個具體的目錄上才能進(jìn)行讀寫操作。顯然,根目錄是所有Ubuntu Linux的文件和目錄所在的地方,需要掛載上一個磁盤分區(qū)。上面還提到,Ubuntu Linux交換分區(qū)也需要獨立使用一個分區(qū),因此,安裝一個Ubuntu Linux至少需要兩個分區(qū)。(事實上,只使用一個分區(qū)安裝Linux也是可能的,而且,如果電腦的物理內(nèi)存足夠大,交換分區(qū)并不是必須的)在不同的Ubuntu Linux安裝教程中,不同的作者闡述了各種不同的分區(qū)建議,本文也不例外。以下的一些建議,有很多都是個人的喜好,因此讀者并不一定要完全按照這些建議進(jìn)行分區(qū),選擇最適合自己的方案才是***的。
/boot:在很多老舊的教程中,都會讓用戶在/boot目錄上掛載一個大小為100MB左右的獨立分區(qū),并推薦把該/boot放在硬盤的前面,即1024柱面之前。事實上,那是Lilo無法引導(dǎo)1024柱面后的操作系統(tǒng)內(nèi)核的時代遺物了。當(dāng)然,也有作者宣稱,獨立掛載/boot的好處是可以讓多個Ubuntu Linux共享一個/boot。其實,無論是基于上述的哪種理由,都沒有必要把/boot分區(qū)獨立出來。
首先,Grub可以引導(dǎo)1024柱面后的Ubuntu Linux內(nèi)核;其次,即使是安裝有多個Linux,也完全可以不共享/boot。因為/boot目錄的大小通常都非常小,大約20MB,分一個100MB的分區(qū)無疑是一種浪費,而且還把硬盤分的支離破碎,不方便管理。另外,如果讓兩個Linux共享一個/boot,每次升級內(nèi)核,都會導(dǎo)致Grub的配置文件沖突,帶來不必要的麻煩。
而且,不獨立/boot分區(qū)僅僅占用了根目錄下的大約20MB左右的空間,根本不會對根目錄的使用造成任何影響。值得注意的是,隨著硬盤容量的增大,無法引導(dǎo)Linux內(nèi)核的現(xiàn)象再次出現(xiàn),這也就是著名的137GB限制。很遺憾,Grub是無法引導(dǎo)137GB之后的分區(qū)中的Ubuntu Linux內(nèi)核的。如果你不巧遇到了這樣的情況(我就遇到過),你就要考慮把/boot獨立掛載到位于137GB前方的獨立分區(qū)中,或者索性就把 Ubuntu Linux的分區(qū)都往前移動,讓根目錄所在分區(qū)位于137GB之前。
/usr/local:建議把/opt、/usr或/usr/local獨立出來的教程,基本上也是非常老的了。使用Ubuntu時,我們一般都是使用系統(tǒng)的軟件包管理器安裝軟件,很少自己編譯安裝任何軟件。而建議獨立/usr、/opt、/usr/local的理由無非是為了重裝系統(tǒng)時不再重新編譯軟件而直接使用早先編譯好的版本。因此對于大多數(shù)的普通用戶來說,這個建議通常是沒有意義的。
/var:建議把/var和/tmp獨立出來的教程通常是面向服務(wù)器的。因為高負(fù)載的服務(wù)器通常會產(chǎn)生很多日志文件和臨時文件,而這些文件又經(jīng)常改變,因此把/var和/tmp獨立出來,有利于提高服務(wù)器的性能。我們使用Ubuntu是做桌面的,甚至有些用戶根本從來就沒有關(guān)心過系統(tǒng)日志這玩意兒,所以根本沒有必要獨立的為/var和/tmp掛載分區(qū)。
/home:這可能是唯一一個值得獨立掛載分區(qū)的目錄了。/home是用戶文件夾所在的地方。一個用戶可能在/home/user中存放了大量的文件資料,如果獨立掛載/home,即使遇到Ubuntu系統(tǒng)無故身亡的尷尬局面,也可以立刻重裝系統(tǒng),取得自己的文件資料。因此,/home是唯一可以考慮獨立掛載分區(qū)的目錄。
看了上面的一些介紹,你可能已經(jīng)知道我的建議了:
雙分區(qū)方案
/:至少3GB,建議根據(jù)實際情況,盡可能多分一些,特別是喜歡玩各式軟件的讀者。SWAP:物理內(nèi)存小于等于512MB,建議分配實際物理內(nèi)存容量2倍大小的SWAP;物理內(nèi)存大于512MB,建議分配與物理內(nèi)存等容量的SWAP。
三分區(qū)方案
/:至少3GB,建議根據(jù)實際情況,盡可能多分一些,特別是喜歡玩各式軟件的讀者。/home:根據(jù)實際需要分配1GB~100GB或更多,酌情處理。SWAP:物理內(nèi)存小于等于512MB,建議分配實際物理內(nèi)存容量2倍大小的SWAP;物理內(nèi)存大于512MB,建議分配與物理內(nèi)存等容量的SWAP。
另外需要說明的一點是,有些老舊的教程中建議把Linux安裝在主分區(qū)中,或在/boot下掛載一個主分區(qū)。事實上,這也是不需要的。Linux的所有分區(qū)都可以位于邏輯分區(qū)中。所以,不要再被這些老舊的教程所誤導(dǎo)了,不要再浪費有限的主分區(qū)了,放心地把Linux安裝在邏輯分區(qū)中吧。
【編輯推薦】