我們在本文中將介紹多款Linux命令行實用工具,你可以用它們在Linux下檢查磁盤分區。
監測一個或多個存儲設備的空間使用情況是系統管理員最重要的任務之一,這有助于確保存儲設備上仍有足夠的閑置空間,以便高效地運行Linux系統。
一、打印輸出Linux磁盤分區表的命令行實用工具
1. fdisk(固定磁盤)命令
fdisk是一款功能強大、廣受歡迎的命令行工具,可用于創建和處理磁盤分區表。
它支持GPT、MBR、Sun、SGI和BSD等格式的分區表。你可以通過它易于使用、基于文本、菜單驅動的界面來運行fdisk命令,從而顯示、創建、調整、刪除、修改、拷貝和移動存儲磁盤上的分區。
下面這個fdisk命令將打印輸出所有已掛載塊設備的分區表:
$?sudo?fdisk?-l?fdisk – List Linux Disk Partition Table
Disk?/dev/sda:?931.5?GiB,?1000204886016?bytes,?1953525168?sectors??Units:?sectors?of?1?*?512?=?512?bytes??Sector?size?(logical/physical):?512?bytes?/?4096?bytes??I/O?size?(minimum/optimal):?4096?bytes?/?4096?bytes??Disklabel?type:?gpt??Disk?identifier:?82213CA8-50E4-4DDB-9337-85E46DA03430??Device?Start?End?Sectors?Size?Type??/dev/sda1?2048?2050047?2048000?1000M?Windows?recovery?environment??/dev/sda2?2050048?2582527?532480?260M?EFI?System??/dev/sda3?2582528?4630527?2048000?1000M?Lenovo?boot?partition??/dev/sda4?4630528?4892671?262144?128M?Microsoft?reserved??/dev/sda5?4892672?1173295103?1168402432?557.1G?Microsoft?basic?data??/dev/sda6?1870348288?1922777087?52428800?25G?Microsoft?basic?data??/dev/sda7?1922777088?1953523711?30746624?14.7G?Windows?recovery?environment??/dev/sda8?1173295104?1173297151?2048?1M?BIOS?boot??/dev/sda9?1173297152?1181110271?7813120?3.7G?Linux?swap??/dev/sda10?1181110272?1870348287?689238016?328.7G?Linux?filesystem??Partition?table?entries?are?not?in?disk?order.?想了解fdisk命令的更多用法和例子,請參閱《管理分區的10個fdisk命令實例》(http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/)。
2. sfdisk(用于腳本環境的fdisk)命令
sfdisk用起來比較像fdisk,它可打印輸出或者處理存儲磁盤分區表。然而,sfdisk提供了fdisk所沒有的額外特性。你可以像fdisk那樣來使用它,它還支持GPT、MBR、Sun和SGI等格式的分區表。
兩者之間的一個區別就是,sfdisk并不像fdisk那樣為SGI和SUN磁盤標簽創建標準的系統分區。
$?sudo?sfdisk?-l?sfdisk – Check Linux Disk Partition Table
Disk?/dev/sda:?931.5?GiB,?1000204886016?bytes,?1953525168?sectors??Units:?sectors?of?1?*?512?=?512?bytes??Sector?size?(logical/physical):?512?bytes?/?4096?bytes??I/O?size?(minimum/optimal):?4096?bytes?/?4096?bytes?
Disklabel?type:?gpt??Disk?identifier:?82213CA8-50E4-4DDB-9337-85E46DA03430??Device?Start?End?Sectors?Size?Type??/dev/sda1?2048?2050047?2048000?1000M?Windows?recovery?environment??/dev/sda2?2050048?2582527?532480?260M?EFI?System??/dev/sda3?2582528?4630527?2048000?1000M?Lenovo?boot?partition??/dev/sda4?4630528?4892671?262144?128M?Microsoft?reserved??/dev/sda5?4892672?1173295103?1168402432?557.1G?Microsoft?basic?data??/dev/sda6?1870348288?1922777087?52428800?25G?Microsoft?basic?data??/dev/sda7?1922777088?1953523711?30746624?14.7G?Windows?recovery?environment??/dev/sda8?1173295104?1173297151?2048?1M?BIOS?boot??/dev/sda9?1173297152?1181110271?7813120?3.7G?Linux?swap??/dev/sda10?1181110272?1870348287?689238016?328.7G?Linux?filesystem??Partition?table?entries?are?not?in?disk?order.?想了解更多用法,請參閱sfdisk的參考手冊頁。
3. cfdisk(curses fdisk)命令
cfdisk是個簡單程序,可用于打印輸出和管理磁盤分區。它借助易于使用的界面提供了基本的分區功能。你可以使用類似功能比較強大的命令fdisk和sfdisk讓用戶可以查看、添加、刪除和修改硬盤分區。
使用向右箭頭和向左箭頭來移動菜單標簽上的高亮部分。
$?sudo?cfdisk?cfdisk – Print Linux Disk Partition Table
Disk:?/dev/sda??Size:?931.5?GiB,?1000204886016?bytes,?1953525168?sectors??Label:?gpt,?identifier:?82213CA8-50E4-4DDB-9337-85E46DA03430??Device?Start?End?Sectors?Size?Type??>>?Free?space?2048?2048?0?0B??/dev/sda1?2048?2050047?2048000?1000M?Windows?recovery?environm??/dev/sda2?2050048?2582527?532480?260M?EFI?System??/dev/sda3?2582528?4630527?2048000?1000M?Lenovo?boot?partition??/dev/sda4?4630528?4892671?262144?128M?Microsoft?reserved??/dev/sda5?4892672?1173295103?1168402432?557.1G?Microsoft?basic?data??/dev/sda6?1870348288?1922777087?52428800?25G?Microsoft?basic?data??/dev/sda7?1922777088?1953523711?30746624?14.7G?Windows?recovery?environm??/dev/sda8?1173295104?1173297151?2048?1M?BIOS?boot??/dev/sda9?1173297152?1181110271?7813120?3.7G?Linux?swap??/dev/sda10?1181110272?1870348287?689238016?328.7G?Linux?filesystem??┌────────────────────────────────────────────────────────────────────────────┐??│?Filesystem:?ntfs?│??│Filesystem?label:?WINRE_DRV?│??└────────────────────────────────────────────────────────────────────────────┘??[?New?]?[?Quit?]?[?Help?]?[?Sort?]?[?Write?]?[?Dump?]?4. parted命令
parted也是一種知名的命令行工具,可用于顯示和處理磁盤分區。它識別多種分區表格式,包括MBR和GPT。
parted可用于為新的分區創建空間,重新整理磁盤使用情況,將數據拷貝到新的硬盤,等等。
$?sudo?parted?-l?parted – A Partition Manipulation Tool
Model:?ATA?ST1000LM024?HN-M?(scsi)??Disk?/dev/sda:?1000GB??Sector?size?(logical/physical):?512B/4096B??Partition?Table:?gpt??Disk?Flags:??Number?Start?End?Size?File?system?Name?Flags??1?1049kB?1050MB?1049MB?ntfs?Basic?data?partition?hidden,?diag??2?1050MB?1322MB?273MB?fat32?EFI?system?partition?boot,?hidden,?esp??3?1322MB?2371MB?1049MB?fat32?Basic?data?partition?hidden??4?2371MB?2505MB?134MB?Microsoft?reserved?partition?msftres??5?2505MB?601GB?598GB?ntfs?Basic?data?partition?msftdata??8?601GB?601GB?1049kB?bios_grub?
9?601GB?605GB?4000MB?linux-swap(v1)??10?605GB?958GB?353GB?ext4??6?958GB?984GB?26.8GB?ntfs?Basic?data?partition?msftdata??7?984GB?1000GB?15.7GB?ntfs?Basic?data?partition?hidden,?diag?想了解更多用法,請參閱《管理Linux磁盤分區的8個Linux parted命令》(http://www.tecmint.com/parted-command-to-create-resize-rescue-linux-disk-partitions/)。
5. lsblk(列表塊)命令
lsblk打印輸出的信息包括:關于所有可用或特定已掛載塊設備(不包括內存磁盤)的名稱、類型和掛載點。
$?lsblk?lsblk – List Linux Block Devices
NAME?MAJ:MIN?RM?SIZE?RO?TYPE?MOUNTPOINT??sda?8:0?0?931.5G?0?disk??├─sda1?8:1?0?1000M?0?part??├─sda2?8:2?0?260M?0?part??├─sda3?8:3?0?1000M?0?part??├─sda4?8:4?0?128M?0?part??├─sda5?8:5?0?557.1G?0?part??├─sda6?8:6?0?25G?0?part??├─sda7?8:7?0?14.7G?0?part??├─sda8?8:8?0?1M?0?part??├─sda9?8:9?0?3.7G?0?part?[SWAP]??└─sda10?8:10?0?328.7G?0?part?/??sr0?11:0?1?1024M?0?rom?6. blkid(塊ID)命令
blkid這個實用工具可找到或者顯示塊設備的屬性(NAME=值對),比如設備或分區名稱、標簽、文件系統類型及其他。
$?blkid?blkid – Print Block Device Attributes
/dev/sda1:?LABEL="WINRE_DRV"?UUID="D4A45AAAA45A8EBC"?TYPE="ntfs"?PARTLABEL="Basic?data?partition"?PARTUUID="dcc4de2d-8fc4-490f-85e0-50c2e18cc33d"?/dev/sda2:?LABEL="SYSTEM_DRV"?UUID="185C-DA5B"?TYPE="vfat"?PARTLABEL="EFI?system?partition"?PARTUUID="b13c479a-d63b-4fec-9aee-f926fe7b0b16"?/dev/sda3:?LABEL="LRS_ESP"?UUID="0E60-2E0E"?TYPE="vfat"?PARTLABEL="Basic?data?partition"?PARTUUID="d464feab-0791-4866-a36b-90dbe6d6a437"?/dev/sda5:?LABEL="Windows8_OS"?UUID="18D0632AD0630CF6"?TYPE="ntfs"?PARTLABEL="Basic?data?partition"?PARTUUID="8a66bd5b-8624-4fdb-9ad8-18d8cd356160"?/dev/sda6:?LABEL="LENOVO"?UUID="9286FFD986FFBC33"?TYPE="ntfs"?PARTLABEL="Basic?data?partition"?PARTUUID="92fbbea9-6bcd-4ae5-a322-c96a07a81013"?/dev/sda7:?LABEL="PBR_DRV"?UUID="ECD06683D066543C"?TYPE="ntfs"?PARTLABEL="Basic?data?partition"?PARTUUID="0e2878a2-377c-4b35-9454-f1f2c6398405"?/dev/sda9:?UUID="e040de62-c837-453e-88ee-bd9000387083"?TYPE="swap"?PARTUUID="f5eef371-a152-4208-a62f-0fb287f9acdd"?/dev/sda10:?UUID="bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b"?TYPE="ext4"?PARTUUID="26b60905-1c39-4fd4-bdce-95c517c781fa"7. hwinfo(硬件信息)命令
hwinfo通常打印輸出關于系統硬件的詳細信息。但是你可以運行如下hwinfo命令,使用-- 這個選項,列出指定類型的所有硬件項(這里是磁盤等塊設備及其分區)。
如果只想獲得摘要信息,請使用-- short選項,如下面這個命令所示:
$?hwinfo?--short?--blockhwinfo – Print Linux Hardware Information
disk:??/dev/sda?ST1000LM024?HN-M??/dev/ram0?Disk??/dev/ram1?Disk??/dev/ram2?Disk??/dev/ram3?Disk??/dev/ram4?Disk??/dev/ram5?Disk??/dev/ram6?Disk??/dev/ram7?Disk??/dev/ram8?Disk??/dev/ram9?Disk??/dev/ram10?Disk??/dev/ram11?Disk??/dev/ram12?Disk??/dev/ram13?Disk??/dev/ram14?Disk??/dev/ram15?Disk???partition:??/dev/sda1?Partition??/dev/sda2?Partition??/dev/sda3?Partition??/dev/sda4?Partition??/dev/sda5?Partition??/dev/sda6?Partition??/dev/sda7?Partition??/dev/sda8?Partition??/dev/sda9?Partition??/dev/sda10?Partition??cdrom:??/dev/sr0?PLDS?DVD-RW?DA8A5SH?確保hwinfo工具已安裝在你的系統上,那樣才能獲得上述結果。
二、Linux下監測磁盤空間使用情況的命令行實用工具
下面介紹了用于監測Linux磁盤空間使用情況的幾個命令行實用工具。
8. df(磁盤文件系統)命令
df在終端上打印輸出文件系統磁盤空間使用情況方面的摘要信息。在下面這個命令中,-hT參數選項符可報告文件大小、已用空間、可用空間和已用空間百分比,采用了人類可讀的格式。
$?df?-hT?df – Show Linux Disk Space Usage
Filesystem?Type?Size?Used?Avail?Use%?Mounted?on??udev?devtmpfs?3.9G?0?3.9G?0%?/dev??tmpfs?tmpfs?788M?9.6M?779M?2%?/run??/dev/sda10?ext4?324G?132G?176G?43%?/??tmpfs?tmpfs?3.9G?86M?3.8G?3%?/dev/shm??tmpfs?tmpfs?5.0M?4.0K?5.0M?1%?/run/lock??tmpfs?tmpfs?3.9G?0?3.9G?0%?/sys/fs/cgroup??cgmfs?tmpfs?100K?0?100K?0%?/run/cgmanager/fs??tmpfs?tmpfs?788M?32K?788M?1%?/run/user/1000?9. pydf(python df)命令
pydf是一款杰出的Python命令行實用工具,也是Linux下可替代df的優秀工具。它使用不同顏色來高亮顯示具有特定屬性的磁盤分區。
$?pydf?pydf – Show Colourised Linux Disk Space Usage
Filesystem?Size?Used?Avail?Use%?Mounted?on??/dev/sda10?323G?132G?175G?40.7?[######################................................]?/?確保pydf實用工具已安裝在系統上;要是未安裝,請參閱《安裝pydf工具來監測Linux磁盤使用情況》(http://www.tecmint.com/pyd-command-to-check-disk-usage/)。
三、如果磁盤/分區在Linux下快用完空間,該怎么辦?
一旦你認識到你的任何存儲磁盤快用完空間或者已滿,應該:
首先,使用任何一款Linux系統備份工具,對系統上的所有重要文件作一個備份。
下一步,使用du命令,檢查哪些文件或目錄在一個或多個磁盤上占用的空間量最大。
然后,借助rm命令,從一個或多個存儲磁盤上刪除不再重要或你在將來不會使用的任何文件,也可以使用fslint工具,找到并刪除Linux下不需要的文件。
如果你的根分區快滿了,可以使用LVM調整根分區大小,它用起來應該很簡單。
注意:萬一你刪除了任何重要文件,可以恢復在Linux下刪除的文件。
我們在本文中介紹了多款有用的命令行實用工具,可用來顯示存儲磁盤分區表,并監測磁盤使用情況。
我們有沒有落下具有同樣用途的任何重要的命令行實例工具?歡迎留言交流!
評論
查看更多