Linux学习笔记之——Linux硬盘分区知识
生活随笔
收集整理的這篇文章主要介紹了
Linux学习笔记之——Linux硬盘分区知识
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
搭建Linux環境之前,有必要對Linux的硬盤分區知識有所了解。本文總結Linux的硬盤分區知識。
一、關于硬盤種類、物理幾何結構及硬盤容量、分區大小計算
????? 首先了解一下硬盤本身的一些信息。
1、硬盤種類、物理幾何結構
????? 硬盤的種類主要是SCSI 、IDE及目前流行的SATA等;所有一種硬盤的生產都要一定的標準;隨著相應的標準的升級,硬盤生產技術也在升級;比如SCSI標準已經歷了SCSI- 1 、SCSI-2、SCSI-3;其中目前咱們經常在服務器網站看到的Ultral-160就是基于SCSI-3標準的;IDE
遵循的是ATA標準,而目前流行的SATA,是ATA標準的升級版本;IDE是并口設備,而SATA是串口,SATA的發展目的是替換IDE;
????? 硬盤的物理幾何結構是由盤、磁盤表面、柱面、扇區組成,一個張硬盤內部是由幾張碟片疊加在一起,這樣形成一個柱體面;每個碟片都有上下表面;磁頭和磁盤表 面接觸從而能讀取數據;
2、硬盤容量及分區大小的算法
???? 在Linux下執行fdisk -l命令,將出現類似下面的信息:
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
?? Device Boot????? Start???????? End????? Blocks?? Id? System
/dev/hda1?? *?????????? 1???????? 765???? 6144831??? 7? HPFS/NTFS
/dev/hda2???????????? 766??????? 2805??? 16386300??? c? W95 FAT32 (LBA)
/dev/hda3??????????? 2806??????? 9729??? 55617030??? 5? Extended
/dev/hda5??????????? 2806??????? 3825???? 8193118+? 83? Linux
/dev/hda6??????????? 3826??????? 5100??? 10241406?? 83? Linux
/dev/hda7??????????? 5101??????? 5198????? 787153+? 82? Linux swap / Solaris
/dev/hda8??????????? 5199??????? 6657??? 11719386?? 83? Linux
/dev/hda9??????????? 6658??????? 7751???? 8787523+? 83? Linux
/dev/hda10?????????? 7752??????? 9729??? 15888253+? 83? Linux
其中 heads 是磁盤面;sectors 是扇區;cylinders 是柱面;每個扇區大小是 512byte,也就是0.5K;
通過上面的例子,我們發現此硬盤有 255個磁盤面,有63個扇區,有9729個柱面;所以整個硬盤體積換算公式應該是:
磁面個數 x 扇區個數 x 每個扇區的大小512 x? 柱面個數 = 硬盤體積 (單位bytes)
所以在本例中磁盤的大小應該計算如下:
255 x 63? x? 512 x 9729 =? 80023749120 bytes?
提示:由于硬盤生產商和操作系統換算不太相同,硬盤廠家以10進位的辦法來換算,而操作系統是以2進位制來換算,所以在換算成M或G 時,不同的算法結果卻不相同;所以我們的硬盤有時標出的是80G,在操作系統下看卻少幾M;
上面例子中,硬盤廠家算法 和 操作系統算數比較:
硬盤廠家: 80023749120 bytes = 80023749.120 K = 80023.749120 M? (向大單位換算,每次除以1000)
操作系統: 80023749120 bytes = 78148192.5 K = 76316.594238281 M? (向大單位換算,每次除以1024)
我們在查看分區大小的時候,能用生產廠家提供的算法來簡單推算分區的大小;把小數點向前移動六位就是以G表示的大小;比如 hda1 的大小約為 6.144831G ;
二、關于硬盤分區劃分標準及合理分區結構
1、硬盤分區劃分標準
????? 硬盤的分區由主分區、擴展分區和邏輯分區組成;所以我們在對硬盤分區時要遵循這個標準;主分區(包括擴展分區)的最大個數是四個且擴展分區不能包圍在主分 區之間,主分區(包含擴展分區)的個數由硬盤的主引導記錄MBR(Master Boot Recorder)決定的,MBR存放啟動管理程式(GRUB,LILO,NTLOARDER等)和分區表記錄。其中擴展分區也算一個主 分區;擴展分區下能包含更多的邏輯分區;所以主分區(包括擴展分區)范圍是從1-4,邏輯分區是從5開始的;比如下面的例子:
?? Device Boot????? Start???????? End????? Blocks?? Id? System
/dev/hda1?? *?????????? 1???????? 765???? 6144831??? 7? HPFS/NTFS
/dev/hda2???????????? 766??????? 2805??? 16386300??? c? W95 FAT32 (LBA)
/dev/hda3??????????? 2806??????? 9729??? 55617030??? 5? Extended
/dev/hda5??????????? 2806??????? 3825???? 8193118+? 83? Linux
/dev/hda6??????????? 3826??????? 5100??? 10241406?? 83? Linux
/dev/hda7??????????? 5101??????? 5198????? 787153+? 82? Linux swap / Solaris
/dev/hda8??????????? 5199??????? 6657??? 11719386?? 83? Linux
/dev/hda9??????????? 6658??????? 7751???? 8787523+? 83? Linux
/dev/hda10?????????? 7752??????? 9729??? 15888253+? 83? Linux
通過這個例子,我們能看到主分區有3個,從 hda1-hda3 ,擴展分區由 hda5-hda10 ;此硬盤沒有主分區4,所以也沒有顯示主分區hda4 ;但邏輯分區不可能從4開始,因為那是主分區的位置,明白了吧;而且可以看出hda3是擴展分區,邏輯分區就是從該分區劃分出來的。
另外,可以將L i n u x 安裝在一個或多個類型為"Linux Native"的硬盤分區,通常稱為"L i n u x原始分區或主分區"。同時還需要一個類型為"Linux Swap "的分區,也叫做"L i n u x 交換分區",關于Swap,一會詳細說明。
PS:Windows與Linux硬盤分區對比:
2、硬盤設備(包括移動存儲設備)在Linux或其他類Unix系統的表示;
IDE 硬盤在Linux或其他類Unix系統的一般表示為 hd* ,比如hda、hdb ... ... ,我們能通過 fdisk-l 來查看;有時你可能只有一個硬盤,在操作系統中看到的卻是 hdb ,這和硬盤的跳線有關;另外hdc大多表示是光驅設備;如果你有兩塊硬盤,大多是 hda和hdb。在這方面說的太多也無用,還是以fdisk -l 為準為好;SCSI 和SATA 硬盤在Linux通常也是表示為 sd* ,比如 sda 、sdb ... ...?? 以fdisk -l 為準;移動存儲設備在linux表示為 sd* ,比如 sda 、sdb ... ...? 以fdisk -l 為準
3、合理的規劃分區
在對硬盤進行分區前,應該先弄清楚計算機擔負的工作及硬盤的容量有多大,還要考慮到以下幾個問題。
第一點也是最重要的一點,要知道當前安裝Linux的開機管理程序(boot loader)是使用LILO(Linux Loader)的版本,因為LILO2.21及早期版本對硬盤大小有限制,如果安裝LILO到1023磁道以外即 8G的空間以外,LILO就無法啟動。但一些BIOS較老的機器,LINUX仍然無法突破1024磁道的限制,因此這些BIOS無法認出大于1024的硬盤空間。
還需要考慮的問題有:
◆ 是否限制用戶可使用的磁盤空間大小?
◆ 在系統中需要安裝哪些軟件?
◆ 交換分區需要多大?
◆ 系統是否有多個硬盤?
下面,我們按系統工作性質的不同對分區的劃分提出了一些建議。當然,根據實際情況,在滿足系統工作需求的前提下,下面的分區大小也可以靈活的變 動。
基本工作站的分區方案
假設系統的硬盤大小是10G。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. /root 9.85G?
建立一個20M的/boot分區是為了避免將系統內核文件放到1024磁道以外,如果將/boot做為root分區的一個子目錄,內核文件就會安 裝在root分區的任何地方,因為硬盤的大小超過了8G,所以在啟動時就有可能出現問題。建議將交換分區的大小設置為內存的兩倍,在這里我們假設系統的內 存為64M。最后我們將硬盤的剩余空間全部分給了root分區。
Red Hat Linux 6.2 及其早期版本上的基本服務器硬盤分區方案
這里的服務器我們假設只提供幾種通用的服務,如WWW服務及FTP服務等幾種服務,通過telnet登錄的用戶數很少。假設其硬盤大小為25G。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. / 10G??
?? 4. /home 13G??
?? 5. /var 2G?
在硬盤的最前面創建20M大小的/boot分區,原因同上。交換分區的大小也是128M,因為內存的大小為64M。
/ ,即root分區設為10G這么大是因為其中有一個/usr目錄,這個目錄可能會占用很多硬盤空間,特別是在安裝了X Server,運行圖形界面的應用程序的時候。
/home分區是硬盤中最大的分區,這似乎與我們假設系統用戶數不多有些矛盾。實際上在/home目錄下確實沒有幾個用戶目錄,但在Red Hat6.2及更早的版本中,Apache服務器和wu-ftpd FTP服務器被放在了/home/httpd及/home/ftp目錄中。所以這個分區這么大也是有原因的。
最后,/var目錄獨自占用了一個分區,因為系統的所有日志都寫到了/var/log目錄下,這將會占用很大的硬盤空間。如果系統日志記錄得非常 詳細,整個目錄很快會被寫滿,導致系統工作呆滯。當然,可以通過系統日志后臺守護程序syslogd來修改日志配置,避免發生這種情況。
Red Hat 7及以上版本的基本服務器分區方案
這種情況同前一個方案的情況相同,不同的是LINUX版本為Red Hat 7.0及其以上版本。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. / 10G??
?? 4. /var 15G?
與RedHat6不同,在RedHat7中HTTP服務和FTP服務的目錄現在位于 /var/www/ 和/var/ftp/,因此/var分區有15G之大也就不難理解了。
多用戶服務器分區方案
在這種服務器系統中,同時有多個用戶通過telnet, ssh, rlogin或其方式在遠程訪問系統。系統中有三個35G的硬盤驅動器,總共有105G的磁盤空間 。系統中用到了RAID 5技術做數據冗余。這種情況下,管理員必須為每個用戶分配磁盤空間。對RedHat 6.2及更早的版本,分區如下:
?? 1. Disk 1:??
?? 2. /boot 20M??
?? 3. / 4G??
?? 4. /var 3GB??
?? 5. /home 27.98G??
?? 6. Disk 2:??
?? 7. swap 20MB??
?? 8. / 4GB??
?? 9. /var 3GB??
? 10. /home 27.98GB??
? 11. Disk 3:??
? 12. swap 20MB??
? 13. / 4GB??
? 14. /var 3GB??
? 15. /home 27.98GB?
這樣分區的原因:首先,Disk1上的20M /boot分區不屬于任何RAID陣列,否則如果你將/boot放至RAID陣列中,以后就不能系統內核升級了。
為了方便管理,在其它兩個硬盤中建立了20M的交換分區。這種服務器一般配有1G以上的內存,因此交換分區的大小不成問題。如果增大交換分區,就 會減少RAID分區空間,所以20M是足夠的。RAID分區的分組如下:
◆ 1-A, 2-A, and 3-A 一起組成一個8G的 RAID 5 驅動器,做為/根目錄打開。
◆ 1-B, 2-B, and 3-B 組成 6GB的 RAID 5 驅動器,做為 /var目錄。
◆ 1-C, 2-C, and 3-C 組成 55.96GB RAID 5 驅動器, 做為 /home.目錄。
這種分配方案總共有55.96G的空間分配給所有用戶及Apache和FTP服務,在/var下用6G空間用做記錄日志、郵件,這么大的空間是足 夠的。
如果安裝Red Hat7或以上版本,應給/var分區更大的空間,因為它同時還存放著WEB和FTP服務的兩個目錄。 希望你能學會這些Linux硬盤分區的最佳方案。
三、交換分區與交換文件
當程序需要的內存比電腦上擁有的物理內存還要大的時候,不管是 Windows 也好,Linux 也好,解決辦法就是把存不下的東西轉移到硬盤上的“虛擬內存”中去,盡管硬盤的速度比內存慢上很多,但是至少容量要大上很多。
另外,操作系統也可以把一些很久不活動的程序轉移到虛擬內存中去,留出更多的主內存給需要的程序和磁盤緩沖。
Linux 在安裝的時候,一般需要劃出一個分區作為 Linux 的“交換分區”,作為虛擬內存內容的保存分區。
swapon -s 這個命令,可以查看當前系統的虛擬內存的情況,這條命令需要 root 來運行。
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
可以看到常常看到當前的交換分區為 /dev/sda3,第 2 欄的 Type 中顯示為 partition,說明這是個交換分區,那么,還有其他的 Type 嗎?
當然,其實 Linux 也可以像 Windows 一樣,用交換文件來保存虛擬內存的內容,這樣即使你忘記劃出交換分區也不要緊,而且靈活性上會更大一些。下面我們看看如何創建交換文件。
交換文件和交換分區一樣,大小是固定的,比如你想要一個 1G 的交換文件,那么首先要創建一個 1G 的空白文件,我們用 dd 這個工具來完成這個任務:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
1048576 就是 1G 用 KB 表示的大小,如果你想要其他大小的文件,更改這個數字即可。
上面的命令,會在根目錄下創建 swapfile 這個文件,然后,我們需要將它格式化為交換文件的格式:
mkswap /swapfile
然后把掛載上去,就可以立刻應用這個交換文件了:
swapon /swapfile
你可以運行 swapon -s 查看一下:
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
/swapfile file 1048486 0 -2
多出來了一項,Type 為 file,確實是我們創建的交換文件,系統已經在使用了。
如果你想開機的時候自動掛載這個交換文件,那么還要在 /etc/fstab 中加上下面這一句:
/swapfile none swap sw 0 0
這樣就 OK 了。
經常有人問,虛擬內存要設多大才合適,是主內存的幾點幾倍性能最好云云,其實作為一般用途來講,1~2G 就到頂了,妄想從虛擬內存上提高系統性能,是不可能的,去買內存條才是王道。
PS:
交換分區的創建與使用
一.創建交換分區
系統內存無法存放更多數據的時候linux會自動使用交換分區,如果分區的時候沒有創建交換分區,可以格式化一個分區為交換分區,然后在創建交換 分區。
mkswap /dev/hda1 將/dev/hda1格式化為交換分區
mkswap -c /dev/hda1 將/dev/hda1格式化為交換分區,并檢查交換分區有無壞塊
在文件中創建交換分區:
dd if=/dev/zero of=/tmp/swapfile count=65536 創建一個32M的swapfile文件
chmod 666 /tmp/swapfile 指定/tmp/swapfile文件的權限
mkswap /tmp/swapfile 將/tmp/swapfile格式化成交換分區
二.使用交換分區
swapon /dev/hda1 開啟/dev/hda1分區的交換功能
swapon -v /dev/hda1 開啟/dev/hda1分區的交換功能,并輸出詳細信息
swapon -v /tmp/swapfile? 開啟/tmp/swapfile文件的交換功能,并輸出詳細信息
swapon -s 查看開啟的全部交換分區或交換文件
swapon -v -p 1 /dev/hda1 將/dev/hda1設置成最高優先級,-p選項指定優先級
swapoff -v /tmp/swapfile 關閉交換區
參考網址:
1、http://www.sudu.cn/info/html/edu/20080425/301647.html
2、http://os.51cto.com/art/200912/171215.htm
3、http://linux.ccidnet.com/art/9513/20080108/1334995_1.html
4、http://huanxiangwu.com/277/linux%E4%BA%A4%E6%8D%A2%E5%88%86%E5%8C%BA%E7%9A%84%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8
一、關于硬盤種類、物理幾何結構及硬盤容量、分區大小計算
????? 首先了解一下硬盤本身的一些信息。
1、硬盤種類、物理幾何結構
????? 硬盤的種類主要是SCSI 、IDE及目前流行的SATA等;所有一種硬盤的生產都要一定的標準;隨著相應的標準的升級,硬盤生產技術也在升級;比如SCSI標準已經歷了SCSI- 1 、SCSI-2、SCSI-3;其中目前咱們經常在服務器網站看到的Ultral-160就是基于SCSI-3標準的;IDE
遵循的是ATA標準,而目前流行的SATA,是ATA標準的升級版本;IDE是并口設備,而SATA是串口,SATA的發展目的是替換IDE;
????? 硬盤的物理幾何結構是由盤、磁盤表面、柱面、扇區組成,一個張硬盤內部是由幾張碟片疊加在一起,這樣形成一個柱體面;每個碟片都有上下表面;磁頭和磁盤表 面接觸從而能讀取數據;
2、硬盤容量及分區大小的算法
???? 在Linux下執行fdisk -l命令,將出現類似下面的信息:
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
?? Device Boot????? Start???????? End????? Blocks?? Id? System
/dev/hda1?? *?????????? 1???????? 765???? 6144831??? 7? HPFS/NTFS
/dev/hda2???????????? 766??????? 2805??? 16386300??? c? W95 FAT32 (LBA)
/dev/hda3??????????? 2806??????? 9729??? 55617030??? 5? Extended
/dev/hda5??????????? 2806??????? 3825???? 8193118+? 83? Linux
/dev/hda6??????????? 3826??????? 5100??? 10241406?? 83? Linux
/dev/hda7??????????? 5101??????? 5198????? 787153+? 82? Linux swap / Solaris
/dev/hda8??????????? 5199??????? 6657??? 11719386?? 83? Linux
/dev/hda9??????????? 6658??????? 7751???? 8787523+? 83? Linux
/dev/hda10?????????? 7752??????? 9729??? 15888253+? 83? Linux
其中 heads 是磁盤面;sectors 是扇區;cylinders 是柱面;每個扇區大小是 512byte,也就是0.5K;
通過上面的例子,我們發現此硬盤有 255個磁盤面,有63個扇區,有9729個柱面;所以整個硬盤體積換算公式應該是:
磁面個數 x 扇區個數 x 每個扇區的大小512 x? 柱面個數 = 硬盤體積 (單位bytes)
所以在本例中磁盤的大小應該計算如下:
255 x 63? x? 512 x 9729 =? 80023749120 bytes?
提示:由于硬盤生產商和操作系統換算不太相同,硬盤廠家以10進位的辦法來換算,而操作系統是以2進位制來換算,所以在換算成M或G 時,不同的算法結果卻不相同;所以我們的硬盤有時標出的是80G,在操作系統下看卻少幾M;
上面例子中,硬盤廠家算法 和 操作系統算數比較:
硬盤廠家: 80023749120 bytes = 80023749.120 K = 80023.749120 M? (向大單位換算,每次除以1000)
操作系統: 80023749120 bytes = 78148192.5 K = 76316.594238281 M? (向大單位換算,每次除以1024)
我們在查看分區大小的時候,能用生產廠家提供的算法來簡單推算分區的大小;把小數點向前移動六位就是以G表示的大小;比如 hda1 的大小約為 6.144831G ;
二、關于硬盤分區劃分標準及合理分區結構
1、硬盤分區劃分標準
????? 硬盤的分區由主分區、擴展分區和邏輯分區組成;所以我們在對硬盤分區時要遵循這個標準;主分區(包括擴展分區)的最大個數是四個且擴展分區不能包圍在主分 區之間,主分區(包含擴展分區)的個數由硬盤的主引導記錄MBR(Master Boot Recorder)決定的,MBR存放啟動管理程式(GRUB,LILO,NTLOARDER等)和分區表記錄。其中擴展分區也算一個主 分區;擴展分區下能包含更多的邏輯分區;所以主分區(包括擴展分區)范圍是從1-4,邏輯分區是從5開始的;比如下面的例子:
?? Device Boot????? Start???????? End????? Blocks?? Id? System
/dev/hda1?? *?????????? 1???????? 765???? 6144831??? 7? HPFS/NTFS
/dev/hda2???????????? 766??????? 2805??? 16386300??? c? W95 FAT32 (LBA)
/dev/hda3??????????? 2806??????? 9729??? 55617030??? 5? Extended
/dev/hda5??????????? 2806??????? 3825???? 8193118+? 83? Linux
/dev/hda6??????????? 3826??????? 5100??? 10241406?? 83? Linux
/dev/hda7??????????? 5101??????? 5198????? 787153+? 82? Linux swap / Solaris
/dev/hda8??????????? 5199??????? 6657??? 11719386?? 83? Linux
/dev/hda9??????????? 6658??????? 7751???? 8787523+? 83? Linux
/dev/hda10?????????? 7752??????? 9729??? 15888253+? 83? Linux
通過這個例子,我們能看到主分區有3個,從 hda1-hda3 ,擴展分區由 hda5-hda10 ;此硬盤沒有主分區4,所以也沒有顯示主分區hda4 ;但邏輯分區不可能從4開始,因為那是主分區的位置,明白了吧;而且可以看出hda3是擴展分區,邏輯分區就是從該分區劃分出來的。
另外,可以將L i n u x 安裝在一個或多個類型為"Linux Native"的硬盤分區,通常稱為"L i n u x原始分區或主分區"。同時還需要一個類型為"Linux Swap "的分區,也叫做"L i n u x 交換分區",關于Swap,一會詳細說明。
PS:Windows與Linux硬盤分區對比:
2、硬盤設備(包括移動存儲設備)在Linux或其他類Unix系統的表示;
IDE 硬盤在Linux或其他類Unix系統的一般表示為 hd* ,比如hda、hdb ... ... ,我們能通過 fdisk-l 來查看;有時你可能只有一個硬盤,在操作系統中看到的卻是 hdb ,這和硬盤的跳線有關;另外hdc大多表示是光驅設備;如果你有兩塊硬盤,大多是 hda和hdb。在這方面說的太多也無用,還是以fdisk -l 為準為好;SCSI 和SATA 硬盤在Linux通常也是表示為 sd* ,比如 sda 、sdb ... ...?? 以fdisk -l 為準;移動存儲設備在linux表示為 sd* ,比如 sda 、sdb ... ...? 以fdisk -l 為準
3、合理的規劃分區
在對硬盤進行分區前,應該先弄清楚計算機擔負的工作及硬盤的容量有多大,還要考慮到以下幾個問題。
第一點也是最重要的一點,要知道當前安裝Linux的開機管理程序(boot loader)是使用LILO(Linux Loader)的版本,因為LILO2.21及早期版本對硬盤大小有限制,如果安裝LILO到1023磁道以外即 8G的空間以外,LILO就無法啟動。但一些BIOS較老的機器,LINUX仍然無法突破1024磁道的限制,因此這些BIOS無法認出大于1024的硬盤空間。
還需要考慮的問題有:
◆ 是否限制用戶可使用的磁盤空間大小?
◆ 在系統中需要安裝哪些軟件?
◆ 交換分區需要多大?
◆ 系統是否有多個硬盤?
下面,我們按系統工作性質的不同對分區的劃分提出了一些建議。當然,根據實際情況,在滿足系統工作需求的前提下,下面的分區大小也可以靈活的變 動。
基本工作站的分區方案
假設系統的硬盤大小是10G。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. /root 9.85G?
建立一個20M的/boot分區是為了避免將系統內核文件放到1024磁道以外,如果將/boot做為root分區的一個子目錄,內核文件就會安 裝在root分區的任何地方,因為硬盤的大小超過了8G,所以在啟動時就有可能出現問題。建議將交換分區的大小設置為內存的兩倍,在這里我們假設系統的內 存為64M。最后我們將硬盤的剩余空間全部分給了root分區。
Red Hat Linux 6.2 及其早期版本上的基本服務器硬盤分區方案
這里的服務器我們假設只提供幾種通用的服務,如WWW服務及FTP服務等幾種服務,通過telnet登錄的用戶數很少。假設其硬盤大小為25G。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. / 10G??
?? 4. /home 13G??
?? 5. /var 2G?
在硬盤的最前面創建20M大小的/boot分區,原因同上。交換分區的大小也是128M,因為內存的大小為64M。
/ ,即root分區設為10G這么大是因為其中有一個/usr目錄,這個目錄可能會占用很多硬盤空間,特別是在安裝了X Server,運行圖形界面的應用程序的時候。
/home分區是硬盤中最大的分區,這似乎與我們假設系統用戶數不多有些矛盾。實際上在/home目錄下確實沒有幾個用戶目錄,但在Red Hat6.2及更早的版本中,Apache服務器和wu-ftpd FTP服務器被放在了/home/httpd及/home/ftp目錄中。所以這個分區這么大也是有原因的。
最后,/var目錄獨自占用了一個分區,因為系統的所有日志都寫到了/var/log目錄下,這將會占用很大的硬盤空間。如果系統日志記錄得非常 詳細,整個目錄很快會被寫滿,導致系統工作呆滯。當然,可以通過系統日志后臺守護程序syslogd來修改日志配置,避免發生這種情況。
Red Hat 7及以上版本的基本服務器分區方案
這種情況同前一個方案的情況相同,不同的是LINUX版本為Red Hat 7.0及其以上版本。
?? 1. /boot 20M??
?? 2. Swap 128M??
?? 3. / 10G??
?? 4. /var 15G?
與RedHat6不同,在RedHat7中HTTP服務和FTP服務的目錄現在位于 /var/www/ 和/var/ftp/,因此/var分區有15G之大也就不難理解了。
多用戶服務器分區方案
在這種服務器系統中,同時有多個用戶通過telnet, ssh, rlogin或其方式在遠程訪問系統。系統中有三個35G的硬盤驅動器,總共有105G的磁盤空間 。系統中用到了RAID 5技術做數據冗余。這種情況下,管理員必須為每個用戶分配磁盤空間。對RedHat 6.2及更早的版本,分區如下:
?? 1. Disk 1:??
?? 2. /boot 20M??
?? 3. / 4G??
?? 4. /var 3GB??
?? 5. /home 27.98G??
?? 6. Disk 2:??
?? 7. swap 20MB??
?? 8. / 4GB??
?? 9. /var 3GB??
? 10. /home 27.98GB??
? 11. Disk 3:??
? 12. swap 20MB??
? 13. / 4GB??
? 14. /var 3GB??
? 15. /home 27.98GB?
這樣分區的原因:首先,Disk1上的20M /boot分區不屬于任何RAID陣列,否則如果你將/boot放至RAID陣列中,以后就不能系統內核升級了。
為了方便管理,在其它兩個硬盤中建立了20M的交換分區。這種服務器一般配有1G以上的內存,因此交換分區的大小不成問題。如果增大交換分區,就 會減少RAID分區空間,所以20M是足夠的。RAID分區的分組如下:
◆ 1-A, 2-A, and 3-A 一起組成一個8G的 RAID 5 驅動器,做為/根目錄打開。
◆ 1-B, 2-B, and 3-B 組成 6GB的 RAID 5 驅動器,做為 /var目錄。
◆ 1-C, 2-C, and 3-C 組成 55.96GB RAID 5 驅動器, 做為 /home.目錄。
這種分配方案總共有55.96G的空間分配給所有用戶及Apache和FTP服務,在/var下用6G空間用做記錄日志、郵件,這么大的空間是足 夠的。
如果安裝Red Hat7或以上版本,應給/var分區更大的空間,因為它同時還存放著WEB和FTP服務的兩個目錄。 希望你能學會這些Linux硬盤分區的最佳方案。
三、交換分區與交換文件
當程序需要的內存比電腦上擁有的物理內存還要大的時候,不管是 Windows 也好,Linux 也好,解決辦法就是把存不下的東西轉移到硬盤上的“虛擬內存”中去,盡管硬盤的速度比內存慢上很多,但是至少容量要大上很多。
另外,操作系統也可以把一些很久不活動的程序轉移到虛擬內存中去,留出更多的主內存給需要的程序和磁盤緩沖。
Linux 在安裝的時候,一般需要劃出一個分區作為 Linux 的“交換分區”,作為虛擬內存內容的保存分區。
swapon -s 這個命令,可以查看當前系統的虛擬內存的情況,這條命令需要 root 來運行。
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
可以看到常常看到當前的交換分區為 /dev/sda3,第 2 欄的 Type 中顯示為 partition,說明這是個交換分區,那么,還有其他的 Type 嗎?
當然,其實 Linux 也可以像 Windows 一樣,用交換文件來保存虛擬內存的內容,這樣即使你忘記劃出交換分區也不要緊,而且靈活性上會更大一些。下面我們看看如何創建交換文件。
交換文件和交換分區一樣,大小是固定的,比如你想要一個 1G 的交換文件,那么首先要創建一個 1G 的空白文件,我們用 dd 這個工具來完成這個任務:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
1048576 就是 1G 用 KB 表示的大小,如果你想要其他大小的文件,更改這個數字即可。
上面的命令,會在根目錄下創建 swapfile 這個文件,然后,我們需要將它格式化為交換文件的格式:
mkswap /swapfile
然后把掛載上去,就可以立刻應用這個交換文件了:
swapon /swapfile
你可以運行 swapon -s 查看一下:
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
/swapfile file 1048486 0 -2
多出來了一項,Type 為 file,確實是我們創建的交換文件,系統已經在使用了。
如果你想開機的時候自動掛載這個交換文件,那么還要在 /etc/fstab 中加上下面這一句:
/swapfile none swap sw 0 0
這樣就 OK 了。
經常有人問,虛擬內存要設多大才合適,是主內存的幾點幾倍性能最好云云,其實作為一般用途來講,1~2G 就到頂了,妄想從虛擬內存上提高系統性能,是不可能的,去買內存條才是王道。
PS:
交換分區的創建與使用
一.創建交換分區
系統內存無法存放更多數據的時候linux會自動使用交換分區,如果分區的時候沒有創建交換分區,可以格式化一個分區為交換分區,然后在創建交換 分區。
mkswap /dev/hda1 將/dev/hda1格式化為交換分區
mkswap -c /dev/hda1 將/dev/hda1格式化為交換分區,并檢查交換分區有無壞塊
在文件中創建交換分區:
dd if=/dev/zero of=/tmp/swapfile count=65536 創建一個32M的swapfile文件
chmod 666 /tmp/swapfile 指定/tmp/swapfile文件的權限
mkswap /tmp/swapfile 將/tmp/swapfile格式化成交換分區
二.使用交換分區
swapon /dev/hda1 開啟/dev/hda1分區的交換功能
swapon -v /dev/hda1 開啟/dev/hda1分區的交換功能,并輸出詳細信息
swapon -v /tmp/swapfile? 開啟/tmp/swapfile文件的交換功能,并輸出詳細信息
swapon -s 查看開啟的全部交換分區或交換文件
swapon -v -p 1 /dev/hda1 將/dev/hda1設置成最高優先級,-p選項指定優先級
swapoff -v /tmp/swapfile 關閉交換區
參考網址:
1、http://www.sudu.cn/info/html/edu/20080425/301647.html
2、http://os.51cto.com/art/200912/171215.htm
3、http://linux.ccidnet.com/art/9513/20080108/1334995_1.html
4、http://huanxiangwu.com/277/linux%E4%BA%A4%E6%8D%A2%E5%88%86%E5%8C%BA%E7%9A%84%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8
轉載于:https://blog.51cto.com/polaris/349653
總結
以上是生活随笔為你收集整理的Linux学习笔记之——Linux硬盘分区知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一周安全事件点评:***黑手正伸向商业数
- 下一篇: linux cut 命令(转)