df、du、fdisk:Linux磁盤管理三板斧的使用心得
原創(chuàng)【51CTO獨(dú)家特稿】磁盤是Linux系統(tǒng)中一項(xiàng)非常重要的資源,如何對其進(jìn)行有效的管理直接關(guān)系到整個(gè)系統(tǒng)的性能問題。對Linux磁盤管理稍微有一些學(xué)習(xí)和經(jīng)驗(yàn)的朋友們應(yīng)該都知道df、du和fdisk這三個(gè)常用命令:df用于檢查文件系統(tǒng)磁盤占用情況,du檢查磁盤空間占用情況,而fdisk用于磁盤分區(qū)。這三個(gè)工具是本人在進(jìn)行Linux磁盤管理時(shí)常用的工具,下面跟大家分享一些使用心得。
作者介紹:李洋(博客),博士畢業(yè)于中科院計(jì)算所。10多年來一直從事計(jì)算機(jī)網(wǎng)絡(luò)信息安全研發(fā)工作,曾主持和參與多項(xiàng)國家重點(diǎn)項(xiàng)目以及信息安全系統(tǒng)和企業(yè)信息安全系統(tǒng)的研發(fā)工作。具有Linux系統(tǒng)應(yīng)用、管理、安全及內(nèi)核的研發(fā)經(jīng)驗(yàn),擅長網(wǎng)絡(luò)安全技術(shù)、協(xié)議分析、Linux系統(tǒng)安全技術(shù)、Linux系統(tǒng)及網(wǎng)絡(luò)管理、Linux內(nèi)核開發(fā)等。
1.df
df命令可以獲取硬盤被占用了多少空間,目前還剩下多少空間等信息,它也可以顯示所有文件系統(tǒng)對i節(jié)點(diǎn)和磁盤塊的使用情況。
df命令各個(gè)選項(xiàng)的含義如下:
-a:顯示所有文件系統(tǒng)的磁盤使用情況,包括0塊(block)的文件系統(tǒng),如/proc文件系統(tǒng)。 -k:以k字節(jié)為單位顯示。 -i:顯示i節(jié)點(diǎn)信息,而不是磁盤塊。 -t:顯示各指定類型的文件系統(tǒng)的磁盤空間使用情況。 -x:列出不是某一指定類型文件系統(tǒng)的磁盤空間使用情況(與t選項(xiàng)相反)。 -T:顯示文件系統(tǒng)類型。
我們先看看使用df命令的例子:
//列出各文件系統(tǒng)的磁盤空間使用情況 #df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 381139 332921 28540 93% / /dev/hda1 46636 6871 37357 16% /boot /dev/hda3 10041144 6632528 2898556 70% /home none 127372 0 127372 0% /dev/shm /dev/hda2 27474876 24130460 1948772 93% /usr /dev/hda6 256667 232729 10686 96% /var
第1列是代表文件系統(tǒng)對應(yīng)的設(shè)備文件的路徑名(一般是硬盤上的分區(qū));第2列給出分區(qū)包含的數(shù)據(jù)塊(1024字節(jié))的數(shù)目;第3,4列分別表示已用的和可用的數(shù)據(jù)塊數(shù)目。
◆用戶也許會感到奇怪,第3,4列塊數(shù)之和不等于第2列中的塊數(shù)。這是因?yàn)槟J(rèn)的每個(gè)分區(qū)都留了少量空間供系統(tǒng)管理員使用的緣故。即使遇到普通用戶空間已滿的情況,管理員仍能登錄和留有解決問題所需的工作空間。清單中Use%列表示普通用戶空間使用的百分比,若這一數(shù)字達(dá)到100%,分區(qū)仍然留有系統(tǒng)管理員使用的空間。
***,Mounted on列表示文件系統(tǒng)的安裝點(diǎn)。
//列出各文件系統(tǒng)的i節(jié)點(diǎn)使用情況。 #df -ia Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda5 98392 23919 74473 25% / none 0 0 0 - /proc /dev/hda1 12048 38 12010 1% /boot none 0 0 0 - /dev/pts /dev/hda3 1275456 355008 920448 28% /home none 31843 1 31842 1% /dev/shm /dev/hda2 3489792 133637 3356155 4% /usr /dev/hda6 66264 9876 56388 15% /var //列出文件系統(tǒng)的類型。 #df -T Filesystem Type 1k-blocks Used Available Use% Mounted on /dev/hda5 ext3 381139 332921 28540 93% / /dev/hda1 ext3 46636 6871 37357 16% /boot /dev/hda3 ext3 10041144 6632528 2898556 70% /home none tmpfs 127372 0 127372 0% /dev/shm /dev/hda2 ext3 27474876 24130460 1948772 93% /usr /dev/hda6 ext3 256667 232729 10686 96% /var2
#p#
2. du
du的英文原義為“disk usage”,含義為顯示磁盤空間的使用情況,統(tǒng)計(jì)目錄(或文件)所占磁盤空間的大小。該命令的功能是逐級進(jìn)入指定目錄的每一個(gè)子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊(1024字節(jié))的情況。若沒有給出指定目錄,則對當(dāng)前目錄進(jìn)行統(tǒng)計(jì)。
df命令的各個(gè)選項(xiàng)含義如下:
-s:對每個(gè)Names參數(shù)只給出占用的數(shù)據(jù)塊總數(shù)。 -a:遞歸地顯示指定目錄中各文件及子目錄中各文件占用的數(shù)據(jù)塊數(shù)。若既不指定-s,也不指定-a,則只顯示Names中的每一個(gè)目錄及其中的各子目錄所占的磁盤塊數(shù)。 -b:以字節(jié)為單位列出磁盤空間使用情況(系統(tǒng)默認(rèn)以k字節(jié)為單位)。 -k:以1024字節(jié)為單位列出磁盤空間使用情況。 -c:***再加上一個(gè)總計(jì)(系統(tǒng)默認(rèn)設(shè)置)。 -l:計(jì)算所有的文件大小,對硬鏈接文件,則計(jì)算多次。 -x:跳過在不同文件系統(tǒng)上的目錄不予統(tǒng)計(jì)。
下面舉例說明du命令的使用:
//查看/mnt目錄占用磁盤空間的情況 #du –abk /mnt 1 /mnt/cdrom 1 /mnt/floppy 3 /mnt //列出各目錄所占的磁盤空間,但不詳細(xì)列出每個(gè)文件所占的空間 #du 3684 ./log 84 ./libnids-1.17/doc 720 ./libnids-1.17/src 32 ./libnids-1.17/samples 1064 ./libnids-1.17 4944 .
輸出清單中的第1列是以塊為單位計(jì)的磁盤空間容量,第2列列出目錄中使用這些空間的目錄名稱。
◆這可能是一個(gè)很長的清單,有時(shí)只需要一個(gè)總數(shù)。這時(shí)可在du命令中加-s選項(xiàng)來取得總數(shù):
#du –s /mnt 3 /mnt //列出所有文件和目錄所占的空間(使用a選項(xiàng)),并以字節(jié)為單位(使用b選項(xiàng))來計(jì)算大小 #du –ab /root/mail 6144 mail/sent-mail 1024 mail/saved-messages 8192 mail
#p#
3、fdisk
fdisk可以劃分磁盤分區(qū)。下面給出使用Fdisk命令進(jìn)行磁盤分區(qū)的操作步驟:
#fdisk /dev/had //使用/dev/had作為默認(rèn)的分區(qū)設(shè)備 Command (m for help): m //選擇命令選項(xiàng) Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
用戶通過提示鍵入“m”,可以顯示Fdisk命令各個(gè)參數(shù)的說明。
Fdisk有很多參數(shù),可是經(jīng)常使用的只有幾個(gè)。
◆在Linux分區(qū)過程,一般是先通過p參數(shù)來顯示硬盤分區(qū)表信息,然后根據(jù)信息確定將來的分區(qū)。如下所示:
Disk /dev/sda: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 41 522 3871665 83 Linux /dev/hda2 1 40 321268+ 82 Linux swap Partition table entries are not in disk order Command (m for help):
◆如果想完全改變硬盤的分區(qū)格式,就可以通過d參數(shù)一個(gè)一個(gè)地刪除存在的硬盤分區(qū)。刪除完畢,就可以通過n參數(shù)來增加新的分區(qū)。當(dāng)按下“n”后,可以看到如下所示:
Command (m for help): n Command action e extended p primary partition (1-4) p Partiton number(1-4):1 First cylinder(1-1023):1 Last cylinder or + size or +sizeK or + sizeM(1-1023):+258M
這里要選擇新建的分區(qū)類型,是主分區(qū)還是擴(kuò)展分區(qū);并選擇p或是e。然后就是設(shè)置分區(qū)的大小。
◆要提醒注意的是,如果硬盤上有擴(kuò)展分區(qū),就只能增加邏輯分區(qū),不能增加擴(kuò)展分區(qū)。
◆在增加分區(qū)的時(shí)候,其類型都是默認(rèn)的Linux Native,如果要把其中的某些分區(qū)改變?yōu)槠渌愋停鏛inux Swap或FAT32等,可以通過命令t來改變,當(dāng)按下“t”改變分區(qū)類型的時(shí)候,系統(tǒng)會提示要改變哪個(gè)分區(qū)、以及改變?yōu)槭裁搭愋停ㄈ绻胫老到y(tǒng)所支持的分區(qū)類型,鍵入l),如下所示:
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap)
改變完了分區(qū)類型,就可以按下“w”,保存并退出。如果不想保存,那么可以選擇“q”直接退出,如下所示:
Command (m for help):w
通過如上的操作,就可以按照需要成功地劃分磁盤分區(qū)了。
【51CTO.com獨(dú)家特稿,轉(zhuǎn)載請注明原文作者和出處?!?/p>
【編輯推薦】



























