Linux 磁盤管理好壞至關(guān)重要
Linux磁盤管理好壞直接關(guān)系到整個系統(tǒng)的性能問題。
Linux磁盤管理常用三個命令為df、du和fdisk。
·df:列出文件系統(tǒng)的整體磁盤使用量
·du:檢查磁盤空間使用量
·fdisk:用于磁盤分區(qū)
df
df命令參數(shù)功能:檢查文件系統(tǒng)的磁盤空間占用情況??梢岳迷撁顏慝@取硬盤被占用了多少空間,目前還剩下多少空間等信息。
語法:
df [-ahikHTm] [目錄或文件名]
選項與參數(shù):
·-a :列出所有的文件系統(tǒng),包括系統(tǒng)特有的 /proc 等文件系統(tǒng);
·-k :以 KBytes 的容量顯示各文件系統(tǒng);
·-m :以 MBytes 的容量顯示各文件系統(tǒng);
·-h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
·-H :以 M=1000K 取代 M=1024K 的進位方式;
·-T :顯示文件系統(tǒng)類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
·-i :不用硬盤容量,而以 inode 的數(shù)量來顯示
實例 1
將系統(tǒng)內(nèi)所有的文件系統(tǒng)列出來!
[root@www ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/hdc2 9920624 3823112 5585444 41% //dev/hdc3 4956316 141376 4559108 4% /home/dev/hdc1 101086 11126 84741 12% /boot
tmpfs 371332 0 371332 0% /dev/shm
在 Linux 底下如果 df 沒有加任何選項,那么默認會將系統(tǒng)內(nèi)所有的 (不含特殊內(nèi)存內(nèi)的文件系統(tǒng)與 swap) 都以 1 Kbytes 的容量來列出來!
實例 2
將容量結(jié)果以易讀的容量格式顯示出來
[root@www ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/hdc2 9.5G 3.7G 5.4G 41% //dev/hdc3 4.8G 139M 4.4G 4% /home/dev/hdc1 99M 11M 83M 12% /boot
tmpfs 363M 0 363M 0% /dev/shm
實例 3
將系統(tǒng)內(nèi)的所有特殊文件格式及名稱都列出來
[root@www ~]# df -aTFilesystem Type 1K-blocks Used Available Use% Mounted on/dev/hdc2 ext3 9920624 3823112 5585444 41% /
proc proc 0 0 0 - /proc
sysfs sysfs 0 0 0 - /sys
devpts devpts 0 0 0 - /dev/pts/dev/hdc3 ext3 4956316 141376 4559108 4% /home/dev/hdc1 ext3 101086 11126 84741 12% /boot
tmpfs tmpfs 371332 0 371332 0% /dev/shm
none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs
實例 4
將 /etc 底下的可用的磁盤容量以易讀的容量格式顯示
[root@www ~]# df -h /etcFilesystem Size Used Avail Use% Mounted on/dev/hdc2 9.5G 3.7G 5.4G 41% /
du
Linux du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區(qū)別的,這里介紹Linux du命令。
語法:
du [-ahskm] 文件或目錄名稱
選項與參數(shù):
·-a :列出所有的文件與目錄容量,因為默認僅統(tǒng)計目錄底下的文件量而已。
·-h :以人們較易讀的容量格式 (G/M) 顯示;
·-s :列出總量而已,而不列出每個各別的目錄占用容量;
·-S :不包括子目錄下的總計,與 -s 有點差別。
·-k :以 KBytes 列出容量顯示;
·-m :以 MBytes 列出容量顯示;
實例 1
列出目前目錄下的所有文件容量
[root@www ~]# du8 ./test4 <==每個目錄都會列出來8 ??????./test2....中間省略....12 ?????./.gconfd ??<==包括隱藏文件的目錄220 ????. ??????????<==這個目錄(.)所占用的總量
直接輸入 du 沒有加任何選項時,則 du 會分析當(dāng)前所在目錄的文件與目錄所占用的硬盤空間。
實例 2
將文件的容量也列出來
[root@www ~]# du -a12 ./install.log.syslog <==有文件的列表了8 ??????./.bash_logout8 ??????./test48 ??????./test2....中間省略....12 ?????./.gconfd220 ????.
實例 3
檢查根目錄底下每個目錄所占用的容量
[root@www ~]# du -sm /*
7 /bin
6 /boot
.....中間省略....
0 /proc
.....中間省略....
1 /tmp
3859 /usr <==系統(tǒng)初期最大就是他了啦!
77 /var
通配符 * 來代表每個目錄。
與 df 不一樣的是,du 這個命令其實會直接到文件系統(tǒng)內(nèi)去搜尋所有的文件數(shù)據(jù)。
fdisk
fdisk 是 Linux 的磁盤分區(qū)表操作工具。
語法:
fdisk [-l] 裝置名稱
選項與參數(shù):
·-l :輸出后面接的裝置所有的分區(qū)內(nèi)容。若僅有 fdisk -l 時, 則系統(tǒng)將會把整個系統(tǒng)內(nèi)能夠搜尋到的裝置的分區(qū)均列出來。
實例 1
列出所有分區(qū)信息
[root@AY120919111755c246621 tmp]# fdisk -l
Disk /dev/xvda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000
Device Boot Start End Blocks Id System/dev/xvda1 * 1 2550 20480000 83 Linux/dev/xvda2 2550 2611 490496 82 Linux swap / Solaris
Disk /dev/xvdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x56f40944
Device Boot Start End Blocks Id System/dev/xvdb2 1 2610 20964793+ 83 Linux
實例 2
找出你系統(tǒng)中的根目錄所在磁盤,并查閱該硬盤內(nèi)的相關(guān)信息
[root@www ~]# df / <==注意:重點在找出磁盤文件名而已Filesystem ??????????1K-blocks ?????Used Available Use% Mounted on/dev/hdc2 ?????????????9920624 ??3823168 ??5585388 ?41% /
[root@www ~]# fdisk /dev/hdc <==仔細看,不要加上數(shù)字喔!The number of cylinders for this disk is set to 5005.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <==等待你的輸入!
輸入 m 后,就會看到底下這些命令介紹
Command (m for help): m <== 輸入 m 后,就會看到底下這些命令介紹Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition <==刪除一個partition
l list known partition types
m print this menu
n add a new partition <==新增一個partition
o create a new empty DOS partition table
p print the partition table <==在屏幕上顯示分割表
q quit without saving changes <==不儲存離開fdisk程序
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)
離開 fdisk 時按下 q,那么所有的動作都不會生效!相反的, 按下w就是動作生效的意思。
Command (m for help): p <== 這里可以輸出目前磁盤的狀態(tài)
Disk /dev/hdc: 41.1 GB, 41174138880 bytes <==這個磁盤的文件名與容量255 heads, 63 sectors/track, 5005 cylinders ?????<==磁頭、扇區(qū)與磁柱大小Units = cylinders of 16065 * 512 = 8225280 bytes <==每個磁柱的大小
Device Boot Start End Blocks Id System/dev/hdc1 * 1 13 104391 83 Linux/dev/hdc2 14 1288 10241437+ 83 Linux/dev/hdc3 1289 1925 5116702+ 83 Linux/dev/hdc4 1926 5005 24740100 5 Extended/dev/hdc5 1926 2052 1020096 82 Linux swap / Solaris# 裝置文件名 啟動區(qū)否 開始磁柱 結(jié)束磁柱 1K大小容量 磁盤分區(qū)槽內(nèi)的系統(tǒng)
Command (m for help): q
想要不儲存離開嗎?按下 q 就對了!不要隨便按 w 啊!
使用 p可以列出目前這顆磁盤的分割表信息,這個信息的上半部在顯示整體磁盤的狀態(tài)。
磁盤格式化
磁盤分割完畢后自然就是要進行文件系統(tǒng)的格式化,格式化的命令非常的簡單,使用 mkfs(make filesystem) 命令。
語法:
mkfs [-t 文件系統(tǒng)格式] 裝置文件名
選項與參數(shù):
·-t :可以接文件系統(tǒng)格式,例如 ext3, ext2, vfat 等(系統(tǒng)有支持才會生效)
實例 1
查看 mkfs 支持的文件格式
[root@www ~]# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
按下兩個[tab],會發(fā)現(xiàn) mkfs 支持的文件格式如上所示。
實例 2
將分區(qū) /dev/hdc6(可指定你自己的分區(qū)) 格式化為 ext3 文件系統(tǒng):
[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)Filesystem label= <==這里指的是分割槽的名稱(label)
OS type: LinuxBlock size=4096 (log=2) <==block 的大小配置為 4K Fragment size=4096 (log=2)251392 inodes, 502023 blocks ????<==由此配置決定的inode/block數(shù)量25101 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=51589939216 block groups32768 blocks per group, 32768 fragments per group15712 inodes per groupSuperblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: doneCreating journal (8192 blocks): done <==有日志記錄Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.# 這樣就創(chuàng)建起來我們所需要的 Ext3 文件系統(tǒng)了!簡單明了!
磁盤檢驗
fsck(file system check)用來檢查和維護不一致的文件系統(tǒng)。
若系統(tǒng)掉電或磁盤發(fā)生問題,可利用fsck命令對文件系統(tǒng)進行檢查。
語法:
fsck [-t 文件系統(tǒng)] [-ACay] 裝置名稱
選項與參數(shù):
·-t : 給定檔案系統(tǒng)的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數(shù)
·-s : 依序一個一個地執(zhí)行 fsck 的指令來檢查
·-A : 對/etc/fstab 中所有列出來的 分區(qū)(partition)做檢查
·-C : 顯示完整的檢查進度
·-d : 打印出 e2fsck 的 debug 結(jié)果
·-p : 同時有 -A 條件時,同時有多個 fsck 的檢查一起執(zhí)行
·-R : 同時有 -A 條件時,省略 / 不檢查
·-V : 詳細顯示模式
·-a : 如果檢查有錯則自動修復(fù)
·-r : 如果檢查有錯則由使用者回答是否修復(fù)
·-y : 選項指定檢測每個文件是自動輸入yes,在不確定那些是不正常的時候,可以執(zhí)行 # fsck -y 全部檢查修復(fù)。
實例 1
查看系統(tǒng)有多少文件系統(tǒng)支持的 fsck 命令:
[root@www ~]# fsck[tab][tab]
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat
實例 2
強制檢測 /dev/hdc6 分區(qū):
[root@www ~]# fsck -C -f -t ext3 /dev/hdc6
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks
如果沒有加上 -f 的選項,則由于這個文件系統(tǒng)不曾出現(xiàn)問題,檢查的經(jīng)過非??焖?!若加上 -f 強制檢查,才會一項一項的顯示過程。
磁盤掛載與卸除
Linux 的磁盤掛載使用 mount命令,卸載使用 umount命令。
磁盤掛載語法:
mount [-t 文件系統(tǒng)] [-L Label名] [-o 額外選項] [-n] 裝置文件名 掛載點
實例 1
用默認的方式,將剛剛創(chuàng)建的 /dev/hdc6 掛載到 /mnt/hdc6 上面!
[root@www ~]# mkdir /mnt/hdc6[root@www ~]# mount /dev/hdc6 /mnt/hdc6[root@www ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on.....中間省略...../dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6
磁盤卸載命令 umount語法:
umount [-fn] 裝置文件名或掛載點
選項與參數(shù):
·-f :強制卸除!可用在類似網(wǎng)絡(luò)文件系統(tǒng) (NFS) 無法讀取到的情況下;
·-n :不升級 /etc/mtab 情況下卸除。
卸載/dev/hdc6
[root@www ~]# umount /dev/hdc6
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209535 -
磁盤
+關(guān)注
關(guān)注
1文章
379瀏覽量
25209
原文標題:Linux 磁盤管理好壞至關(guān)重要
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論