發布時間:2021-01-14
Linux磁盤管理好壞直接關系到整個系統的性能問題。
Linux磁盤管理常用三個命令為df、du和fdisk。
df:列出文件系統的整體磁盤使用量
du:檢查磁盤空間使用量
fdisk:用于磁盤分區
df命令參數功能:檢查文件系統的磁盤空間占用情況。可以利用該命令來獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。
語法:
df [-ahikHTm][目錄或文件名]
選項與參數:
-a :列出所有的文件系統,包括系統特有的 /proc 等文件系統;
-k :以 KBytes 的容量顯示各文件系統;
-m :以 MBytes 的容量顯示各文件系統;
-h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
-H :以 M=1000K 取代 M=1024K 的進位方式;
-T :顯示文件系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
-i :不用硬盤容量,而以 inode 的數量來顯示
將系統內所有的文件系統列出來!
[root@www ~]# df Filesystem1K-blocks UsedAvailableUse%Mounted on /dev/hdc2 99206243823112558544441%//dev/hdc3 495631614137645591084%/home /dev/hdc1 101086111268474112%/boot tmpfs 37133203713320%/dev/shm
在 Linux 底下如果 df 沒有加任何選項,那么默認會將系統內所有的 (不含特殊內存內的文件系統與 swap) 都以 1 Kbytes 的容量來列出來!
將容量結果以易讀的容量格式顯示出來
[root@www ~]# df -h FilesystemSizeUsedAvailUse%Mounted on /dev/hdc2 9.5G3.7G5.4G41%//dev/hdc3 4.8G139M4.4G4%/home /dev/hdc1 99M11M83M12%/boot tmpfs 363M0363M0%/dev/shm
將系統內的所有特殊文件格式及名稱都列出來
[root@www ~]# df -aT FilesystemType1K-blocks UsedAvailableUse%Mounted on /dev/hdc2 ext3 99206243823112558544441%/ proc proc 000-/proc sysfs sysfs 000-/sys devpts devpts 000-/dev/pts /dev/hdc3 ext3 495631614137645591084%/home /dev/hdc1 ext3 101086111268474112%/boot tmpfs tmpfs 37133203713320%/dev/shm none binfmt_misc 000-/proc/sys/fs/binfmt_misc sunrpc rpc_pipefs 000-/var/lib/nfs/rpc_pipefs
將 /etc 底下的可用的磁盤容量以易讀的容量格式顯示
[root@www ~]# df -h /etc FilesystemSizeUsedAvailUse%Mounted on /dev/hdc2 9.5G3.7G5.4G41%/
Linux du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的,這里介紹Linux du命令。
語法:
du [-ahskm]文件或目錄名稱
選項與參數:
-a :列出所有的文件與目錄容量,因為默認僅統計目錄底下的文件量而已。
-h :以人們較易讀的容量格式 (G/M) 顯示;
-s :列出總量而已,而不列出每個各別的目錄占用容量;
-S :不包括子目錄下的總計,與 -s 有點差別。
-k :以 KBytes 列出容量顯示;
-m :以 MBytes 列出容量顯示;
只列出當前目錄下的所有文件夾容量(包括隱藏文件夾):
[root@www ~]# du 8./test4 <==每個目錄都會列出來8./test2 ....中間省略....12./.gconfd <==包括隱藏文件的目錄220.<==這個目錄(.)所占用的總量
直接輸入 du 沒有加任何選項時,則 du 會分析當前所在目錄的文件與目錄所占用的硬盤空間。
將文件的容量也列出來
[root@www ~]# du -a 12./install.log.syslog <==有文件的列表了8./.bash_logout 8./test4 8./test2 ....中間省略....12./.gconfd 220.
檢查根目錄底下每個目錄所占用的容量
[root@www ~]# du -sm /* 7 /bin 6 /boot .....中間省略.... 0 /proc .....中間省略.... 1 /tmp 3859 /usr <==系統初期最大就是他了啦! 77 /var
通配符 * 來代表每個目錄。
與 df 不一樣的是,du 這個命令其實會直接到文件系統內去搜尋所有的文件數據。
fdisk 是 Linux 的磁盤分區表操作工具。
語法:
fdisk [-l]裝置名稱
選項與參數:
-l :輸出后面接的裝置所有的分區內容。若僅有 fdisk -l 時, 則系統將會把整個系統內能夠搜尋到的裝置的分區均列出來。
列出所有分區信息
[root@AY120919111755c246621 tmp]# fdisk -l Disk/dev/xvda:21.5 GB,21474836480 bytes 255 heads,63 sectors/track,2610 cylinders Units= cylinders of 16065*512=8225280 bytes Sector size (logical/physical):512 bytes /512 bytes I/O size (minimum/optimal):512 bytes /512 bytes Disk identifier:0x00000000DeviceBootStartEndBlocksIdSystem/dev/xvda1 *125502048000083Linux/dev/xvda2 2550261149049682Linux swap /SolarisDisk/dev/xvdb:21.5 GB,21474836480 bytes 255 heads,63 sectors/track,2610 cylinders Units= cylinders of 16065*512=8225280 bytes Sector size (logical/physical):512 bytes /512 bytes I/O size (minimum/optimal):512 bytes /512 bytes Disk identifier:0x56f40944DeviceBootStartEndBlocksIdSystem/dev/xvdb2 1261020964793+83Linux
找出你系統中的根目錄所在磁盤,并查閱該硬盤內的相關信息
[root@www ~]# df /<==注意:重點在找出磁盤文件名而已Filesystem1K-blocks UsedAvailableUse%Mounted on /dev/hdc2 99206243823168558538841%/[root@www ~]# fdisk /dev/hdc <==仔細看,不要加上數字喔!The number of cylinders forthis disk isset to 5005.Thereis nothing wrong with that, but thisis 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 printthis 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 <==這里可以輸出目前磁盤的狀態Disk/dev/hdc:41.1 GB,41174138880 bytes <==這個磁盤的文件名與容量255 heads,63 sectors/track,5005 cylinders <==磁頭、扇區與磁柱大小Units= cylinders of 16065*512=8225280 bytes <==每個磁柱的大小DeviceBootStartEndBlocksIdSystem/dev/hdc1 *11310439183Linux/dev/hdc2 14128810241437+83Linux/dev/hdc3 128919255116702+83Linux/dev/hdc4 19265005247401005Extended/dev/hdc5 19262052102009682Linux swap /Solaris# 裝置文件名 啟動區否 開始磁柱 結束磁柱 1K大小容量 磁盤分區槽內的系統Command(m for help): q
想要不儲存離開嗎?按下 q 就對了!不要隨便按 w 啊!
使用 p
可以列出目前這顆磁盤的分割表信息,這個信息的上半部在顯示整體磁盤的狀態。
磁盤分割完畢后自然就是要進行文件系統的格式化,格式化的命令非常的簡單,使用 mkfs
(make filesystem) 命令。
語法:
mkfs [-t 文件系統格式]裝置文件名
選項與參數:
-t :可以接文件系統格式,例如 ext3, ext2, vfat 等(系統有支持才會生效)
查看 mkfs 支持的文件格式
[root@www ~]# mkfs[tab][tab] mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
按下兩個[tab],會發現 mkfs 支持的文件格式如上所示。
將分區 /dev/hdc6(可指定你自己的分區) 格式化為 ext3 文件系統:
[root@www ~]# mkfs -t ext3 /dev/hdc6 mke2fs 1.39(29-May-2006)Filesystem label=<==這里指的是分割槽的名稱(label) OS type:LinuxBlock size=4096(log=2)<==block 的大小配置為4KFragment size=4096(log=2)251392 inodes,502023 blocks <==由此配置決定的inode/block數量25101 blocks (5.00%) reserved for the super user First data block=0Maximum filesystem blocks=51589939216 block groups 32768 blocks per group,32768 fragments per group15712 inodes per groupSuperblock backups stored on blocks:32768,98304,163840,229376,294912Writing inode tables:doneCreating journal (8192 blocks):done<==有日志記錄Writing superblocks and filesystem accounting information:doneThis filesystem will be automatically checked every 34 mounts or180 days, whichever comes first.Use tune2fs -c or-i to override.# 這樣就創建起來我們所需要的 Ext3 文件系統了!簡單明了!
fsck(file system check)用來檢查和維護不一致的文件系統。
若系統掉電或磁盤發生問題,可利用fsck命令對文件系統進行檢查。
語法:
fsck [-t 文件系統][-ACay]裝置名稱
選項與參數:
-t : 給定檔案系統的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數
-s : 依序一個一個地執行 fsck 的指令來檢查
-A : 對/etc/fstab 中所有列出來的 分區(partition)做檢查
-C : 顯示完整的檢查進度
-d : 打印出 e2fsck 的 debug 結果
-p : 同時有 -A 條件時,同時有多個 fsck 的檢查一起執行
-R : 同時有 -A 條件時,省略 / 不檢查
-V : 詳細顯示模式
-a : 如果檢查有錯則自動修復
-r : 如果檢查有錯則由使用者回答是否修復
-y : 選項指定檢測每個文件是自動輸入yes,在不確定那些是不正常的時候,可以執行 # fsck -y 全部檢查修復。
查看系統有多少文件系統支持的 fsck 命令:
[root@www ~]# fsck[tab][tab] fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat
強制檢測 /dev/hdc6 分區:
[root@www ~]# fsck -C -f -t ext3 /dev/hdc6 fsck 1.39(29-May-2006) e2fsck 1.39(29-May-2006)Pass1:Checking inodes, blocks,and sizes Pass2:Checking directory structure Pass3:Checking directory connectivity Pass4:Checking reference counts Pass5:Checkinggroup summary information vbird_logical:11/251968 files (9.1% non-contiguous),36926/1004046 blocks
如果沒有加上 -f 的選項,則由于這個文件系統不曾出現問題,檢查的經過非常快速!若加上 -f 強制檢查,才會一項一項的顯示過程。
Linux 的磁盤掛載使用 mount
命令,卸載使用 umount
命令。
磁盤掛載語法:
mount [-t 文件系統][-L Label名][-o 額外選項][-n]裝置文件名掛載點
用默認的方式,將剛剛創建的 /dev/hdc6 掛載到 /mnt/hdc6 上面!
[root@www ~]# mkdir /mnt/hdc6 [root@www ~]# mount /dev/hdc6 /mnt/hdc6 [root@www ~]# df Filesystem1K-blocks UsedAvailableUse%Mounted on .....中間省略...../dev/hdc6 19763124207218338363%/mnt/hdc6
磁盤卸載命令 umount
語法:
umount [-fn]裝置文件名或掛載點
選項與參數:
-f :強制卸除!可用在類似網絡文件系統 (NFS) 無法讀取到的情況下;
-n :不升級 /etc/mtab 情況下卸除。
卸載/dev/hdc6
[root@www ~]# umount /dev/hdc6
(本文來源于網絡,如有問題,請與我們聯系!)