今天看了 LinuxTOY 上推薦的《Arch Linux安裝指南》,看到其中關(guān)于分區(qū)的部分,我突然想寫篇文章來(lái)討論一下 Linux中應(yīng)該怎么分區(qū)、應(yīng)該怎么選文件系統(tǒng)、應(yīng)該怎么配置才會(huì)比較不錯(cuò)。
第一個(gè)問(wèn)題是哪些東西單獨(dú)分區(qū)比較好。我在 Ubuntu 的社區(qū)上看到的建議有很多種,比如最基本的把 /boot、/home 單獨(dú)分出來(lái)的,也有把/tmp、/var 或 /usr 也單獨(dú)分出來(lái)的。不過(guò)根據(jù)我的觀察以及設(shè)想來(lái)說(shuō),我覺(jué)得,而且我個(gè)人采用的是把 /boot、/tmp 及 /home 單獨(dú)分區(qū),為什么這樣選擇呢?
首先是 /boot 區(qū),由于裝載的是啟動(dòng)器,一般來(lái)說(shuō)比較建議單獨(dú)分區(qū),這樣可以減小損壞導(dǎo)致完全不能啟動(dòng)的風(fēng)險(xiǎn),而且由于單獨(dú)分區(qū),在磁盤上的區(qū)域較集中,對(duì)于啟動(dòng)效率也有一定改善吧~下面是 /tmp 區(qū),這個(gè)區(qū)我覺(jué)得是一定要分出來(lái)的,因?yàn)檫@幾乎是 Linux 里面操作最頻繁的一個(gè)區(qū)了,各種雜七雜八的臨時(shí)文件裝在里面。最后是 /home區(qū),把這個(gè)區(qū)單獨(dú)分有一個(gè)最重要的好處就是,每次重裝不需要額外的備份操作,直接沿用原來(lái)的分區(qū)就可以了~此外,還有比較喜歡更多分區(qū)的人也可以考慮把/var 也單獨(dú)分出來(lái),這個(gè)作為日志及某些服務(wù)的資料儲(chǔ)存地的操作頻繁度也是與根目錄相當(dāng)不同的。至于把 /usr 單獨(dú)分出來(lái),我覺(jué)得是毫無(wú)道理的……個(gè)人看法~最后,我們還有一個(gè)區(qū),就是 swap區(qū),無(wú)論內(nèi)存多大,都建議建一個(gè) swap 區(qū)!
接下來(lái)我們的問(wèn)題是,每個(gè)分區(qū)該有多大?說(shuō)實(shí)話,這并不是一個(gè)十分難辦的問(wèn)題,因?yàn)楝F(xiàn)在的GParted 等軟件能夠很輕松安全的改變分區(qū)大小,如果設(shè)不好大不了花一點(diǎn)時(shí)間調(diào)整咯。不過(guò)還是要稍微討論一下的。
/boot 區(qū)是一個(gè)對(duì)空間要求非常寬松的分區(qū),一般來(lái)說(shuō)可以根據(jù)自己硬盤的寬裕程度給他分50MB-200MB 都是沒(méi)什么問(wèn)題的,就一堆啟動(dòng)文件嘛~至于 /tmp 區(qū),據(jù)說(shuō)如果要刻錄DVD,至少要給這個(gè)區(qū)留 4.2GB 以上的空間。我個(gè)人是沒(méi)有 DVD刻錄機(jī)的,因此對(duì)這個(gè)不太了解,不過(guò)如果這樣的話那以后刻藍(lán)光難道要預(yù)留25GB?我是留了 1GB 的空間,據(jù)觀察利用率并不高,通常維持在 10%以下,但考慮到某些時(shí)候說(shuō)不定會(huì)突然暴增,維持一定量給它總沒(méi)什么壞處吧……然后是swap 區(qū),這個(gè)前人總結(jié)的很多了,這里轉(zhuǎn)引一下,一般來(lái)說(shuō)就是內(nèi)存 1GB以下的設(shè)為兩倍內(nèi)存,1GB 及以上的給個(gè) 1GB就差不多了,當(dāng)然,如果想要能夠使用休眠這個(gè)功能,swap區(qū)至少要和內(nèi)存一樣大,這個(gè)問(wèn)題上就看個(gè)人喜好自己權(quán)衡咯。根目錄依自己的情況給個(gè)10GB、20GB 的應(yīng)該是足夠了,硬盤大得蛋疼的給個(gè) 50GB我看一般來(lái)說(shuō)也差不多了,我給了 20GB,安裝各種軟件,至今也只用了55%。剩下的就是給 /home 目錄了,各種資料盡存其中~至于部分人可能愿意分出來(lái)的 /var區(qū),剛剛查了一下我自己的情況,我估計(jì)要給個(gè) 1G-2G,特別是對(duì)于那些用 Debian系卻從來(lái)不清里安裝包緩存的人,更要分大一點(diǎn)。
現(xiàn)在的問(wèn)題就是,我們需要什么樣的文件系統(tǒng)?現(xiàn)在主流的桌面級(jí)文件系統(tǒng)大概有這幾個(gè):ext3、ext4、reiserfs、jfs。其他的文件系統(tǒng)大體上不是淘汰過(guò)時(shí)就是支持不完善,或者難以使用。
這幾個(gè)文件系統(tǒng)可謂各有千秋,首先說(shuō)說(shuō) ext3,這是 Linux中這幾個(gè)文件系統(tǒng)經(jīng)歷最長(zhǎng)時(shí)間考驗(yàn)的,因此應(yīng)該說(shuō)穩(wěn)定性是很優(yōu)秀的,重要的東西放在這里面自然比較安心一些,但為了能從ext2 平穩(wěn)升級(jí),沿用了線性目錄儲(chǔ)存的方式,效率自然打了些折扣。而 ext4剛剛進(jìn)入穩(wěn)定版不久,說(shuō)實(shí)話,我對(duì)開(kāi)源界的穩(wěn)定版感覺(jué)相當(dāng)不好,Ubuntu 9.04正式版出來(lái)不到一周后我下載安裝,就增加了數(shù)十個(gè)安全更新……而 ext4亦在穩(wěn)定不久后爆出了丟失數(shù)據(jù)的bug。因此,對(duì)于 ext4的穩(wěn)定性我想還有待進(jìn)一步的檢驗(yàn),我猜也正是這個(gè)原因 Ubuntu 9.04最終沒(méi)選擇這個(gè)作為默認(rèn)文件系統(tǒng)。但其效率確實(shí)是有提高的,我想作為一些不需要經(jīng)常修改的東西存放的地方還是很好的。下面來(lái)看看reiserfs,這是一個(gè)很優(yōu)秀的文件系統(tǒng),可惜作者被抓起來(lái)了……這個(gè)文件系統(tǒng)對(duì)于小文件的存取具有很大的優(yōu)勢(shì),并且在許多測(cè)試中有不俗表現(xiàn)。最后是jfs,這是一個(gè)企業(yè)級(jí)的文件系統(tǒng),似乎是有很穩(wěn)定的性能,不過(guò)總體性能似乎不強(qiáng)。
好了,分析完這些文件系統(tǒng)的特性,我們大概可以知道應(yīng)該怎么做了。當(dāng)然,swap區(qū)一定要用 swap 文件系統(tǒng)是必然的了。我想先看看 /tmp所在的區(qū),我想這里面大多是小文件,而且存在時(shí)間不長(zhǎng),加之重啟就可以消掉,對(duì)穩(wěn)定性要求不高,但如果比較高效是不錯(cuò)的,因此我個(gè)人選擇了reiserfs。當(dāng)然,有人內(nèi)存夠大直接把 /tmp 掛到內(nèi)存里做個(gè) tmpfs對(duì)效率提高很有好處。然后是 /home 區(qū),我想 ext3作為一個(gè)成熟和穩(wěn)定的文件系統(tǒng),放在 /home 再合適不過(guò)了,而且 /home區(qū)里面通常一個(gè)文件夾我們都不會(huì)存太多文件導(dǎo)致其效率嚴(yán)重下降。至于根目錄,我想ext4 和 reiserfs 應(yīng)該都不是太差的選擇,而 ext3顯得就不太優(yōu)越了,因?yàn)楦夸浝锩嬉粋€(gè)目錄下有成百上千的文件是很常見(jiàn)的(如/usr/bin、/usr/lib 之類的……),而且大多數(shù)文件是小文件,ext3的效率實(shí)在堪憂。而相比之下,ext4也對(duì)小文件的訪問(wèn)做了一些優(yōu)化,而且默認(rèn)開(kāi)啟了對(duì)樹(shù)型數(shù)據(jù)結(jié)構(gòu)的支持,使得其管理文件的效率也有一定的提高。至于reiserfs 前面也說(shuō)過(guò)了,顯然在這里都是合適的~至于 /boot 區(qū),我想不應(yīng)該選 reiserfs和 ext4 這樣支持 extents的文件系統(tǒng),即使可以支持效率也高不了。其實(shí)我一直在想弄一個(gè)不需要載入 GRUB stage1.5 的應(yīng)該是最快的了~最后 /var 區(qū)我沒(méi)有經(jīng)驗(yàn),就不說(shuō)了……
最后是不是非常重要的一個(gè)問(wèn)題,怎么排順序?我們都知道在傳統(tǒng)機(jī)械硬盤上,分區(qū)越靠前意味著尋道時(shí)間越短,也即速度越快,因此我們顯然要將經(jīng)常要的放前面,以提高整體效率。此外我們都知道另外一個(gè)事實(shí),如果你的內(nèi)存比較大,Linux幾乎是不使用 swap 區(qū)的。因此我一向很反對(duì)把 swap 區(qū)放在前面,取而代之我覺(jué)得應(yīng)該把/tmp 放在最前面,根目錄放其次,我想內(nèi)存大于 1G 的可以把 swap扔到第三個(gè),再大的直接扔最后一個(gè)都無(wú)所謂……這里我還基于另外一個(gè)猜想:減慢 swap訪問(wèn)速度有助于在有程序異常占用內(nèi)存的時(shí)候減緩其擴(kuò)張進(jìn)程,給我們留一點(diǎn)時(shí)間解決這些程序……當(dāng)然,這個(gè)猜想不一定是對(duì)的哈~
好了,上面都是關(guān)于傳統(tǒng)機(jī)械硬盤的,我也想談?wù)劰虘B(tài)硬盤的問(wèn)題。我的上網(wǎng)本就是配了個(gè)16GB SSD……
對(duì)于 SSD,顯然應(yīng)該把頻繁寫入的東西移走,我的基本方案就是:把/tmp、/var/log、/var/tmp 這類文件夾直接移入內(nèi)存掛載為tmpfs,然后整個(gè)硬盤分成兩個(gè)區(qū):一個(gè)swap,一個(gè)根目錄。顯然在這么小的盤里你想放什么東西幾乎是不可能的,因此我掛了一個(gè)外部硬盤作為我主文件夾的一個(gè)子目錄,就不把/home 單獨(dú)分出來(lái)了。而且此處使用了 ext4,因?yàn)閾?jù)說(shuō) ext4 是為 SSD優(yōu)化過(guò)的。至于為什么還要給 swap,這個(gè)上面也解釋過(guò)了,雖然看起來(lái)很矛盾 _-b不過(guò)這也是沒(méi)有辦法的……
很久沒(méi)寫這么長(zhǎng)的東西了……僅是小弟我的個(gè)人意見(jiàn),肯定有許多不正確和不完善之處,還請(qǐng)各位高手多多指教。
聯(lián)系客服