顧翠文 (win2linux@163.com)
原文在: http://218.80.193.92/partition.html
??吹絣inux論壇上有人問(wèn)linux該怎么分,得到的回答通常是:分兩個(gè)區,一個(gè)/一個(gè)swap.短短一句話(huà)就沒(méi)有了下文.讓人看后還是不解.我想針對不同階段不同水平的linux使用者給出我自己認為比較合理的分區方案以供大家參考.
一,linux新人.
對于這類(lèi)linux sir 他們往往是對linux比較好奇,剛剛聽(tīng)說(shuō)這個(gè)系統,對這個(gè)系統沒(méi)有任何感性的了解.在這種情況下,他們安裝linux的目的通常是滿(mǎn)足一下好奇心或者是求異的心理,(和當初的我一樣).對于linux能給他們帶來(lái)什么,到底有什么用,他們沒(méi)有明確的目標,也許今天剛剛裝上去,明天就覺(jué)得linux是一灘難用的垃圾,于是就跑到他們心愛(ài)的Windows系統下去了.
他們即要嘗嘗鮮又不肯馬上輕易舍棄心愛(ài)的Windows.所以,對于這樣剛剛接觸linux系統的新人,沒(méi)有必要花很多心思去考慮如何把硬盤(pán)分區分得合理和高效.對于這些用戶(hù),只需要滿(mǎn)足一下兩點(diǎn):
1,windows 無(wú)論如何要保留著(zhù),而且在分區的時(shí)候不能破壞原來(lái)的系統.
2,確保linux 能裝上并且可以運行.
所以不能破壞原來(lái)的分區來(lái)重新給整塊硬盤(pán)分區,所以常用的方案是采用現有的Windows分區來(lái)裝linux系統. 通常使用windows中的最后一個(gè)盤(pán),即最后一個(gè)分區來(lái)安裝linux系統.
假設原來(lái)Windows系統中有6個(gè)分區: C,D,E,F,G,H通常的建議是把最后一個(gè)分區作為安裝linux的根分區.linux完全安裝需要5G左右的空間(指目前比較流行的Redhat8 Redhat9等).千萬(wàn)不要驚訝linux為何會(huì )耗費掉這么多空間,其實(shí)linux系統本身并不大,而且可以十分靈活的定制,小到幾M,大到幾G的空間上都可以裝上不同用途,不同性能的linux系統.之所以完全安裝要費5G的空間,是應為這5G中除了基本的系統外還包括了各種的數據庫,OFFICE套件,各種應用程序,各種服務(wù)器程序,各種的桌面管理器等,花幾十塊錢(qián)買(mǎi)一套linux系統,你就不必要再花錢(qián)買(mǎi)任何常規軟件了. 是不是要把這5G的東西全部裝上呢?
對于初學(xué)者,如果硬盤(pán)空間不緊張的話(huà)我建議全部都裝上,以免今后在安裝其他軟件的時(shí)候遇到各種煩人的動(dòng)態(tài)庫倚賴(lài)問(wèn)題和找不到在教材上看到的命令的問(wèn)題,而初學(xué)者又不知道如何裝上那些他們在系統安裝的時(shí)候沒(méi)有裝上的軟件,這樣就會(huì )浪費很多時(shí)間走很多彎路.就我而言,我第一次裝linux的時(shí)候是裝的Redhat7.1,由于空間不多,(更多原因是抱著(zhù)Microsoft Windows不放),所以只分了1G的空間給linux,結果又什么都不懂,在安裝的時(shí)候才發(fā)現默認安裝空間不夠,結果在不知道KDE是什么,GNOME是什么,X是什么的情況下把KDE和GNOME都勾掉了,只甚下一個(gè)X,當我興致勃勃的按書(shū)上寫(xiě)的輸入startx 命令后,屏幕上只出現了一個(gè)黑色的X一個(gè)灰色的背景,和一個(gè)閃著(zhù)提示符的xterm,不知道該如何才好,胡亂在xterm中敲了一個(gè)DOS明令dir,結果被我瞎帽遇到死耗子,還真輸出了些信息.最后不得不重新分了一個(gè)比較大的區再把KDE和GNOME裝上.
因此,這里我建議初學(xué)者第一次裝的時(shí)候把所有東西都裝上,以免遇到各種問(wèn)題,linux不像Windows,它十分的靈活,但是正因為這一點(diǎn),它也十分麻煩,如果對它沒(méi)有一定的了解是很難駕馭它的,所以為了避免麻煩,建議你把所有的東西都裝上,在安裝的時(shí)候選擇全部.假如硬盤(pán)空間比較緊張,至少也要把安裝程序默認的那些東西裝上,估計會(huì )花費不到2G的空間.也可以不選擇"定制",直接選工作站安裝方式.等到將來(lái)對系統有了一定的了解,知道了自己的需求,明白了哪些東西是自己想要的,哪些對自己來(lái)說(shuō)是多余的的時(shí)候就可以根據自己的需求重新劃分分區,選擇軟件安裝了. 具體的分區方案如下:
在Windows下把最后一個(gè)盤(pán)用分區工具刪除,如果最后一個(gè)盤(pán)空間太小的話(huà)就把最后兩個(gè)都刪除.刪除后硬盤(pán)上就有了多于的空間,就可以開(kāi)始安裝系統了,一般來(lái)說(shuō)安裝linux需要兩個(gè)分區,一個(gè)是裝系統文件的跟分區(/),一個(gè)是作為虛擬內存的交換分區(swap),這是和Windows不同的,需要注意.所以,我們可以現在Windows下借助Windows下的分區工具,在剛剛騰出來(lái)的空間上建立兩個(gè)分區,前面一個(gè)根分區,后面一個(gè)交換分區,交換分區不用很大,按照官方的說(shuō)法,虛擬內存應該是實(shí)際內存的兩倍大小,或者是在32M和實(shí)際內存兩倍這兩個(gè)值中選較大值,這是針對內存十分少的老機器的.但是在實(shí)際應用中分實(shí)際內存的兩倍大小顯然有點(diǎn)浪費,就如我有256M內存,160M 的交換分區,實(shí)際使用中swap只用掉3~5M,即使在使用VMware等及費內存的軟件時(shí),swap的耗費量也只有60M,所以分100~200M的swap已經(jīng)足夠了,不閉按照官方文檔說(shuō)的分2倍的實(shí)際內存大小,如果你有512M內存難道你真的要分1G的交換分區嗎?
注意,如果交換分區的大小小于內存兩倍,安裝程序會(huì )有警告,只要忽略警告繼續安裝就可以了,個(gè)別版本的linux在交換分區小于實(shí)際內存兩倍的情況下,安裝程序將不能通過(guò),比如TURBO linux 6.0 這種情況下可以暫時(shí)分一個(gè)大點(diǎn)的分區,等裝好后再把分區刪除,劃個(gè)小分區掛上.如果發(fā)現裝好后交換分區不夠用了也別急,你可以手工再建立交換文件,這將在后面說(shuō)明.
分區分好后別急著(zhù)格式化,linux有自己的文件系統,大部分版本的linux都不能裝在Windows的FAT或者NTFS分區上.所以你要做的只是重新啟動(dòng)系統,啟動(dòng)電腦,放入安裝光盤(pán),安裝程序會(huì )幫你格式化你分出的兩個(gè)分區.其中的安裝細節不在本文討論范圍之內,隨便買(mǎi)一本入門(mén)教材上面都說(shuō)的很清楚.
二,linux中鳥(niǎo)
對于這些linux Sir ,他們已經(jīng)學(xué)會(huì )了linux的基本操作,學(xué)會(huì )了如何安裝軟件,常用linux命令等,也知道了linux系統的基本結構和linux跟文件系統下各個(gè)目錄的意義并且知道了光盤(pán)上那么多東西哪些是自己需要的,哪些是自己可能一輩子都不會(huì )用到的.于是就想著(zhù)開(kāi)始自己定制系統劃分出比較合理的分區大小和數目.下面我想以我目前的硬盤(pán)劃分情況為列,給這些linux進(jìn)階用戶(hù)給一個(gè)我自認為比較合理的分區方案.
下面是我的硬盤(pán)分區情況(我有兩個(gè)硬盤(pán),但是系統主要裝在第一個(gè),第二個(gè)只用來(lái)拷貝數據,裝裝實(shí)驗性系統等)
Disk /dev/hda: 255 heads, 63 sectors, 2491 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 392 3148708+ 83 Linux
/dev/hda2 393 589 1582402+ 83 Linux
/dev/hda3 590 981 3148740 7 HPFS/NTFS
/dev/hda4 982 2491 12129075 f Win95 Ext'd (LBA)
/dev/hda5 982 1504 4200966 83 Linux
/dev/hda6 1505 2027 4200966 b Win95 FAT32
/dev/hda7 2028 2289 2104483+ 83 Linux
/dev/hda8 2290 2420 1052226 83 Linux
/dev/hda9 2421 2471 409626 83 Linux
/dev/hda10 2472 2491 160618+ 82 Linux swap
Disk /dev/hdb: 128 heads, 63 sectors, 1023 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 * 1 520 2096608+ b Win95 FAT32
/dev/hdb2 521 910 1572480 83 Linux
/dev/hdb3 911 986 306432 83 Linux
/dev/hdb4 987 1023 149184 83 Linux
[root@gucuiwen root]#
掛裝點(diǎn)和空間使用情況:
[root@gucuiwen root]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 3.0G 2.0G 839M 71% /
/dev/hda2 1.5G 990M 531M 66% /mnt/hda2
/dev/hda5 3.9G 2.8G 986M 75% /mnt/hda5
/dev/hda6 4.0G 1.6G 2.4G 40% /mnt/hda6
/dev/hda7 2.0G 1.2G 745M 62% /home
/dev/hda8 1011M 176M 784M 19% /mnt/hda8
/dev/hdb1 2.0G 1.8G 207M 90% /mnt/hdb1
/dev/hdb2 1.5G 185M 1.1G 14% /mnt/hdb2
none 125M 0 124M 0% /dev/shm
/dev/hda9 387M 180M 188M 49% /var
我把第一個(gè)硬盤(pán)分了三個(gè)主分區,以便在安裝多套系統的時(shí)候互不影響.至于為什么要分三個(gè)主分區,我在<充份利用多個(gè)主分區安裝多套系統>一文中已經(jīng)說(shuō)過(guò).其好處是很多的.詳見(jiàn):
http://go.6to23.com/gucuiwen/linux
我的硬盤(pán)雖然只有2OG,但是我卻分了9個(gè)分區,這也是為了管理方便經(jīng)過(guò)多次劃分后做出的選擇. 首先我把linux的跟(/)裝在第一個(gè)主分區hda1.這個(gè)分區大小為3G,這上面包括:
/boot
/bin
/dev
/etc
/lib
/sbin
/usr
還有空目錄和掛裝點(diǎn):
/opt
/mnt
/initrd
/var
/home
/proc
/misc
由于/boot /bin /dev /etc /lib /sbin 下的東西都比較小,沒(méi)有必要單獨劃分分區掛裝他們,事實(shí)上把這些目錄單獨劃分區掛裝反而不利,應為這些目錄中放著(zhù)系統啟動(dòng)時(shí)的關(guān)鍵信息和文件,系統啟動(dòng)之初卻只掛裝上/分區,因此,萬(wàn)一其中的某一個(gè)分掛裝失敗系統將不能正常啟動(dòng).比如/etc目錄中存放著(zhù)系統軟的硬件配置信息,包括分區的掛裝點(diǎn)分區類(lèi)型等配置信息,系統啟動(dòng)的時(shí)候需要讀取這些信息,如果把/etc單獨放在一個(gè)小的分區上,系統啟動(dòng)的時(shí)候到哪里去讀分區的掛裝點(diǎn)信息呢?類(lèi)似的/sbin /dev等必需放在根分區上. 只有/boot中存放的是系統內核和引導工具,某些情況下為了解決一些老主板不支持大硬盤(pán)的情況下,才單獨在硬盤(pán)1024柱面以?xún)确忠粋€(gè)小分區裝/boot的內容.不過(guò)目前的主板大多不存在這個(gè)問(wèn)題.另外/usr下的內容一般不經(jīng)常改變,因此,我也把它放在/目錄上.可以看出,我是把所有文件大小不經(jīng)常變化的,不會(huì )引起文件系統碎的所有東西裝在/分區上面.
另外,我分了2G的空間存放我自己平時(shí)下載的圖片和資料以及軟件等.掛裝在了/home目錄,重裝系統的時(shí)候不動(dòng)這個(gè)分區,就算格式化也只格掉 / 分區, /var 和swap分區,其他分區上的內容都可以保留,在裝系統的時(shí)候再掛裝到系統里.
我的第二個(gè)主分區hda2暫時(shí)放著(zhù)些臨時(shí)文件,平時(shí)主要是用來(lái)裝一些實(shí)驗性的系統的,比如出了一個(gè)新的linux版本,我就把它裝在這個(gè)分區里體驗,而swap /home可以和原來(lái)那套系統公用.
我的第三個(gè)主分區大小3G,我裝了WIN2K系統,由于現在Windows系統使用的比較少了,(主要是給沒(méi)有電腦的同學(xué)用)所以只分派了兩個(gè)區,一個(gè)安裝系統和常規的軟件,就是第三個(gè)主分區 hda3,文件系統格式為NTFS.另外一個(gè)是一個(gè)邏輯分區hda6大小為4G,文件系統為FAT32,主要用來(lái)零時(shí)性的裝裝電影啊音樂(lè )啊,虛擬光盤(pán)印象GHOST印象文件等.這兩個(gè)區在Windows下分別顯示為C盤(pán)和D盤(pán).
下面說(shuō)說(shuō)其他的幾個(gè)邏輯分區:
分區設備名 掛裝點(diǎn) 文件系統 大小 作用
/dev/hda5 /mnt/hda5 ext3 4G 存放音樂(lè ),電影等大而固定不變的文件
/dev/hda6 /mnt/hda6 FAT32 4G Windows下的D盤(pán)
/dev/hda7 /home ext3 2G 我的文檔,下載的軟件,書(shū)籍,圖片等
/dev/hda8 /mnt/hda8 ext3 1G 編譯大型軟件用的零時(shí)分區.
/dev/hda9 /var ext3 400M 系統中經(jīng)常變化大小的日志文件.
/dev/hda10 swap swap 160M 交換分區
對于已經(jīng)進(jìn)階的linux用戶(hù),你可能不原意把硬盤(pán)分的那么細,甚至不分/home, /usr, /usr/local 但是/var是無(wú)論如何都應該分一下的.因為系統的所有日志文件,PID文件,RPM數據庫文件等等,這些大小經(jīng)常發(fā)聲變化的文件都放在這個(gè)目錄下,所以這個(gè)目錄是最容易產(chǎn)生碎片的.如果不單獨分一個(gè)分區而混在/一起的話(huà),很容易弄亂/文件系統,使系統性能下將,特別是一個(gè)多用戶(hù)環(huán)境和一個(gè)對外服務(wù)的網(wǎng)站主機系統,更應該如此,對于個(gè)人用戶(hù)這個(gè)分區有300~500M就可以了.
還有/tmp也是一個(gè)文件大小經(jīng)常變化的目錄,但是對于個(gè)人用戶(hù)來(lái)說(shuō),里面內容很少,單獨分一個(gè)區也沒(méi)必要,但和/分區混在一起又總覺(jué)得有一種"一滴鼻涕毀一鍋粥"的感覺(jué).我的解決方案是把原來(lái)的 /tmp目錄刪除,而作一個(gè)到 /var/tmp目錄的鏈接,就像系統本身就有的 /usr/tmp目錄一樣. 還有 /root 目錄大小也經(jīng)常發(fā)生變化,我也把他刪除,作了一個(gè)到 /var/root的鏈接,這樣,系統中所有大小經(jīng)常變化,易引起文件系統碎片的東西就全歸到 /var 分區上,這就叫"爛也只爛一個(gè)蘋(píng)果",以后可以只整理 /var 分區.
如何整理呢?通常我用一種最簡(jiǎn)單的辦法:
用單用戶(hù)模式啟動(dòng)系統 LILO: linux single 如果是用GRUB引導,在啟動(dòng)時(shí)按字母 a,然后追加內核參數 linux single (這種模式不掛裝除/以外的其他文件系統,因此可以安全的對其他分區操作.) 然后刪掉一些你認為沒(méi)用的日志文件,再把/var 全考到其他地方去,接下來(lái)刪除原來(lái)/var 下的所由內容,最后把剛才復制的 /var 分區下的內容拷貝回去,經(jīng)過(guò)這么搬動(dòng)一次后,文件系統上的碎片就可以消除.ext3本來(lái)是一個(gè)碎量很少的優(yōu)秀文件系統,據說(shuō)比NTFS還要少的多,因此沒(méi)有必要經(jīng)常這么做.
這里要提醒一點(diǎn),把/tmp目錄刪除鏈接到 /var/tmp目錄后一定要把/var/tmp目錄的權限設置為 777否則普通用戶(hù)將無(wú)法啟動(dòng)X(jué).
如下圖:
[root@gucuiwen /]# ll
total 189
drwxr-xr-x 2 root root 4096 2月 3 02:21 bin
drwxr-xr-x 3 root root 4096 2月 2 18:36 boot
drwxr-xr-x 20 root root 118784 2月 11 20:10 dev
drwxr-xr-x 59 root root 4096 2月 11 20:10 etc
drwxr-xr-x 22 root root 4096 2月 10 16:53 home
drwxr-xr-x 2 root root 4096 6月 22 2001 initrd
drwxr-xr-x 7 root root 4096 2月 6 23:29 lib
drwx------ 2 root root 16384 2月 3 01:54 lost+found
drwxr-xr-x 2 root root 4096 8月 27 2002 misc
drwxr-xr-x 12 root root 4096 2月 8 20:57 mnt
drwxr-xr-x 2 root root 4096 8月 24 1999 opt
dr-xr-xr-x 73 root root 0 2月 12 2004 proc
lrwxrwxrwx 1 root root 10 2月 2 18:29 root -> /var/root/
drwxr-xr-x 2 root root 8192 2月 6 23:29 sbin
lrwxrwxrwx 1 root root 9 2月 2 18:29 tmp -> /var/tmp/
drwxr-xr-x 17 root root 4096 2月 2 20:16 usr
drwxr-xr-x 23 root root 1024 2月 7 21:57 var
drwxr-xr-x 8 root root 4096 2月 6 23:25 www
[root@gucuiwen /]# ll -d /var/tmp
drwxrwxrwt 14 root root 1024 2月 12 01:04 /var/tmp
[root@gucuiwen /]#
當然由于很多用戶(hù)還舍棄不下Windows系統,并且大部份時(shí)間都在用Windows系統,所以可以把我格式化成ext3格式的 hda5 hda7等分區格式化成fat32文件系統,這樣在Windows和linux下都可以很方便的使用這些分區,兩者兼顧.這里的方案也只是一個(gè)范例,用戶(hù)可以根據自己硬盤(pán)的實(shí)際大小來(lái)劃分.
三,系統管理員和網(wǎng)站管理員
對于這些用戶(hù),我想也不必要多說(shuō)了,他們通常都是玩轉系統的老手,把linux系統把玩的隨心所欲,拿捏的恰到好處,他們總能根據實(shí)際需求定制出一個(gè)完美的方案.
對于一個(gè)服務(wù)器上的系統 /var /tmp /usr /home等目錄是肯定要單獨分區的,對于大型的站點(diǎn),每天的系統日志都有好幾百M,單獨分一個(gè)幾G大的/var分區甚至單獨分派一個(gè)硬盤(pán)都是不為過(guò)的./tmp下的文件也不會(huì )像個(gè)人用戶(hù)的系統那樣只有幾M的文件,所以對于一個(gè)服務(wù)器系統,分一個(gè)/tmp分區或者單獨掛一個(gè)硬盤(pán)是每個(gè)系統管理員都會(huì )做的事情.除了這些目錄外通常還需要分一個(gè)/usr/local分區,因為服務(wù)器上通常需要安裝大量的軟件.
對于大型的FTP服務(wù)器,HTTP服務(wù)器和代理服務(wù)器等,通常還要單獨劃出分區分區或者分派硬盤(pán)來(lái)存放文件.這些內容對于初學(xué)者來(lái)說(shuō)不會(huì )遇到,所以就不多說(shuō)了.
附: linux 分區的常見(jiàn)問(wèn)題
1,只有一個(gè)分區可以裝linux嗎?
完全可以,linux的虛擬內存并不一定要單獨分一個(gè)swap分區,也可以像Windows系統那樣,在系統所在的分區劃出空間來(lái)做虛擬內存.只是單獨分出一個(gè)分區來(lái)作swap的話(huà)性能比在系統分區上劃空間做swap要好.對于某些版本的linux,如果沒(méi)有swap分區,安裝程序會(huì )不允許安裝,對于這些版本,可以先劃一個(gè)大的區或暫時(shí)用一個(gè)沒(méi)有用的Windows分區做swap,騙過(guò)安裝程序,然后再裝.
2,如何在一個(gè)分區上劃出空間來(lái)做swap?
選一個(gè)有足夠空間的分區用如下命令:
#dd if=/dev/zero of=swapfile bs=1k count=50000
這樣就得到了一個(gè)大小為50M的連續文件(作swap的文件必需連續) 然后把這個(gè)50M的文件"格式化"成swap文件:
#mkswap swapfile
最后啟用這個(gè)swap文件
#swapon swapfile
用free命令查看一下,是不是 swap多了50M呢? 可以把這個(gè)命令寫(xiě)進(jìn) /etc/rc.d/rc.local 中,讓系統啟動(dòng)的時(shí)候自動(dòng)開(kāi)啟swap.
如果是把整個(gè)分區做swap可以這樣:
#mkswap /dev/hda? (?為具體的分區號)
#swapon /dev/hda?
3,linux最多支持多少個(gè)swap分區?
16個(gè) (新版的可能支持更多)
4,如何備份linux系統?
專(zhuān)業(yè)的網(wǎng)站和多用戶(hù)系統通常用磁帶機等專(zhuān)用備份設備,對于個(gè)人用戶(hù)最簡(jiǎn)單的辦法是直接拷貝一份到空的分區上,等原系統壞了就用備份系統,給內核添加root=?參數就可以啟動(dòng)備份系統.比如你把系統備份在 /dev/hda6上,給內核參數 LILO:linux root=/dev/hda6 就可以啟動(dòng)備份系統,也可以直接寫(xiě)進(jìn)lilo.conf,達到兩套linux系統共存一塊硬盤(pán)同時(shí)使用的目的.另外目前最新版本的GHOST已經(jīng)可以支持EXT3文件系統的備份.
5,如何"格式化"一個(gè)分區?
其實(shí),我們通常所說(shuō)的"格式化",真正的含義是創(chuàng )建文件系統,"格式化"的最初的意思是我們平時(shí)說(shuō)的"低級格式化".只有"低級格式化"才是真正的"格式化",而平時(shí)大家說(shuō)的"格式化"或者"高級格式化"只是創(chuàng )見(jiàn)文件系統,由于微軟的系統里一直不區分這兩個(gè)概念的含義,所以謊言重復一千遍就成了真理,把"創(chuàng )見(jiàn)文件系統"統一說(shuō)成了"格式化".
在linux系統里可以用 mkfs (make filesysge 創(chuàng )建文件系統) 來(lái)"格式化"一個(gè)分區.
#mkfs -t ext2 /dev/hda1
或
#mkfs.ext2 /dev/hda1
把 /dev/hda1"格式化"成ext2格式
#mkfs -t ext3 -c /dev/hda1
或
#mkfs.ext3 -c /dev/hda1
把 /dev/hda1"格式化"成ext3格式,并監查硬盤(pán)壞塊
#mkfs -t vfat /dev/hda1
或
#mkfs.vfat /dev/hda1
把 /dev/hda1"格式化"成FAT32格式
#mkfs -t msdos /dev/hda1
或
#mkfs.msdos /dev/hda1
把 /dev/hda1"格式化"成FAT16或FAT12格式(具體由容量決定)
#mkfs -t minix /dev/hda1
或
#mkfs.minix /dev/hda1
把 /dev/hda1"格式化"成minix格式
對于軟盤(pán)可以這樣:
# fdformat /dev/fd0H1440 (注意,這里真正的格式化,即所謂的低級格式化)
#mkfs.msdos /dev/df0