首頁 > 軟體

Linux磁碟系統 - 管理磁碟的命令

2020-06-16 16:34:36

摘要:本文主要學習了Linux系統中管理磁碟的命令,包括檢視磁碟使用情況、磁碟掛載相關、磁碟分割區相關、磁碟格式化等操作。

df命令

df命令用於顯示Linux系統中各檔案系統的硬碟使用情況,包括檔案系統所在硬碟分割區的總容量、已使用的容量、剩餘容量等。

/dev/shm為記憶體掛載點,如果你想把檔案放到記憶體裡,就可以放到/dev/shm/目錄下。

基本語法

[root@localhost ~]# df [選項] 目錄或檔案

選項說明

-a:顯示所有檔案系統資訊,包括系統特有的/proc、/sysfs等檔案系統。
-k:以KB為單位顯示容量,預設。
-m:以MB為單位顯示容量。
-h:使用人們習慣的KB、MB或GB等單位自行顯示容量。
-H:以M=1000K取代M=1024K的進位方式顯示容量。
-T:顯示該分割區的檔案系統名稱(例如xfs)。
-i:不用硬碟容量顯示,而是以含有inode的數量來顯示。

使用舉例

[root@localhost /]# df -hiT
檔案系統                型別    Inode 已用(I) 可用(I) 已用(I)% 掛載點
/dev/mapper/CentOS-root xfs        17M    28K    17M      1% /
devtmpfs                devtmpfs  120K    386    120K      1% /dev
tmpfs                  tmpfs    123K      1    123K      1% /dev/shm
tmpfs                  tmpfs    123K    472    122K      1% /run
tmpfs                  tmpfs    123K      13    123K      1% /sys/fs/cgroup
/dev/sda2              xfs      700K    329    700K      1% /boot
tmpfs                  tmpfs    123K      1    123K      1% /run/user/0
[root@localhost /]#

du命令

du命令是統計目錄或檔案所佔磁碟空間大小的命令。

基本語法

[root@localhost ~]# du [選項] 目錄或檔案

選項說明

1 -a:顯示每個子檔案的磁碟佔用量。預設只統計子目錄的磁碟佔用量。
2 -h:使用習慣單位顯示磁碟佔用量,如KB、MB或GB等。
3 -s:統計總磁碟佔用量,而不列出子目錄和子檔案的磁碟佔用量。

使用舉例

[root@localhost ~]# du -sh /
du: 無法存取"/proc/3628/task/3628/fd/4": 沒有那個檔案或目錄
du: 無法存取"/proc/3628/task/3628/fdinfo/4": 沒有那個檔案或目錄
du: 無法存取"/proc/3628/fd/4": 沒有那個檔案或目錄
du: 無法存取"/proc/3628/fdinfo/4": 沒有那個檔案或目錄
1.1G    /
[root@localhost ~]#

mount命令

mount掛載命令是用來將硬體裝置的檔案系統和Linux系統中的檔案系統,通過指定目錄(作為掛載點)進行關聯。

基本語法

顯示已掛載裝置:

[root@localhost ~]# mount [選項]

掛載裝置:

[root@localhost ~]# mount [選項] 裝置檔名 掛載點

選項說明

-a:顯示出系統中已掛載的裝置資訊。
-l:額外顯示出捲標名稱。
-t 系統型別:指定欲掛載的檔案系統型別。Linux常見的支援型別有xfs、ext2、ext3、ext4、iso9660、fat、vfat等。如果不指定具體型別,掛載時Linux會自動檢測。
-L 卷標名:除了使用裝置檔名之外,還可以利用檔案系統的卷標名稱進行掛載。
-n:在預設情況下,系統會將實際掛載的情況實時寫入/etc/mtab檔案中,但在某些場景下(例如單人維護模式),為了避免出現問題,會刻意不寫入,此時就需要使用這個選項。
-o 特殊選項:可以指定掛載的額外選項,比如讀寫許可權、同步/非同步等,如果不指定,則使用預設值(defaults)。具體的特殊選項:
    rw/ro:是否對掛載的檔案系統擁有讀寫許可權,rw為預設值,表示擁有讀寫許可權。ro表示唯讀許可權。
    async/sync:此檔案系統是否使用同步寫入(sync)或非同步(async)的記憶體機制,預設為非同步async。
    dev/nodev:是否允許從該檔案系統的block檔案中提取資料,為了保證資料安裝,預設是nodev。
    auto/noauto:是否允許此檔案系統被以mount -a的方式進行自動掛載,預設是auto。
    suid/nosuid:設定檔案系統是否擁有SetUID和SetGID許可權,預設是擁有。
    exec/noexec:設定在檔案系統中是否允許執行可執行檔案,預設是允許。
    user/nouser:設定此檔案系統是否允許讓普通使用者使用mount執行實現掛載,預設是不允許(nouser),僅有root可以。
    defaults:定義預設值,相當於rw、suid、dev、exec、auto、nouser、async這7個選項。
    remount:重新掛載已掛載的檔案系統,一般用於指定修改特殊許可權。

umount命令

umount命令用於解除安裝已經掛載的硬體裝置。

基本語法

[root@localhost ~]# umount 裝置檔名或掛載點

lsblk命令

lsblk命令用來列出所有可用塊裝置的資訊,但是,它不會列出RAM盤的資訊。

基本語法

[root@localhost ~]# lsblk [選項] 裝置名稱

選項說明

-d:僅列出磁碟本身,並不會列出該磁碟的分割區資訊。
-f:同時列出該磁碟內的檔案系統名稱。
-i:使用ASCII的字元輸出,不要使用使用複雜的編碼(在某些環境下有用)。
-m:同時輸出該裝置在/dev下面的許可權資訊(rwx的資料)。
-p:列出該裝置的完整檔名(因為不加這個選項,顯示的是最後的名字)。
-t:列出該磁碟裝置的詳細資料,包括磁碟列陣機制、預讀寫的資料量大小等。

使用舉例

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda              8:0    0  20G  0 disk
├─sda1            8:1    0    2M  0 part
├─sda2            8:2    0  700M  0 part /boot
└─sda3            8:3    0  19G  0 part
  ├─centos-root 253:0    0  17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1    4G  0 rom 
[root@localhost ~]#

結果說明

NAME:這是塊裝置名。
MAJ:MIN:顯示主要和次要裝置號。
RM:顯示裝置是否可移動裝置。RM值為0說明是不可移動裝置,RM值等於1說明是可移動裝置。
SIZE:列出裝置的容量大小資訊。
RO:該項表明裝置是否為唯讀。RO值為0說明不是唯讀,RO值為1說明是唯讀。
TYPE:顯示塊裝置是否是磁碟或磁碟上的一個分割區。在本例中,sda和sdb是磁碟,而sr0是唯讀儲存(rom)。
MOUNTPOINT:指出裝置掛載的掛載點。

blkid命令

blkid命令可以列出檔案系統名稱與裝置的UUID等資料。

UUID是全域性唯一識別符號(universally unique identifier)。Linux會將系統內所有的裝置給予一個獨一無二的識別符號,可以拿來作為掛載或是使用這個裝置或檔案系統。

基本語法

[root@localhost ~]# blkid 裝置檔名

使用舉例

[root@localhost ~]# blkid
/dev/sr0: UUID="2015-12-09-23-14-10-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda2: UUID="8ea9a0fe-8856-4c0e-9d8e-4d676aefb33e" TYPE="xfs"
/dev/sda3: UUID="yasEyq-jfRF-pMZp-eoeK-fkXu-ouuS-Y46Op2" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="eee2ef01-d9fd-4357-9c82-4578ad4d4060" TYPE="xfs"
/dev/mapper/centos-swap: UUID="aa4242d0-542f-4512-b475-a91b1bc6c354" TYPE="swap"
[root@localhost ~]#

parted命令

parted命令可用於檢視磁碟的分割區狀態,還可以用於磁碟的分割區/刪除,以及磁碟分割區表的型別轉換(可以實現,但是不建議做,十分危險)。

基本語法

parted 裝置檔名 [選項]

選項說明

print:列印磁碟分割區資訊。
mkpart [primary|logical|extended] [ext4|vfat|xfs] 分割區開始記憶體處 分割區結束記憶體處:新增分割區。
rm 分割區號碼:刪除分割區。
mklabel 分割區表格式:磁碟分割區表的型別轉換,常用的有msdos和gpt分割區表格式,msdos不支援2TB以上容量的磁碟,所以大於2TB的磁碟選gpt分割區表格式。

使用舉例

[root@localhost ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End    Size    Type    File system  標誌
 1      1049kB  3146kB  2097kB  primary
 2      3146kB  737MB  734MB  primary  xfs          啟動
 3      737MB  21.1GB  20.4GB  primary              lvm

[root@localhost ~]#

結果說明

1 Model:磁碟的模板名稱(廠商)。
2 Disk:磁碟的總容量。
3 Sector size:磁碟的每個邏輯/物理磁區的大小。
4 Partition Table:分割區表的格式(MBR/GPT)。
5 最後一排:分割區的資料。

partprobe命令

partprobe命令可以使kernel重新讀取分割區表。

基本語法

[root@localhost ~]# partprobe [選項]

選項說明

-s:顯示摘要和分割區資訊。

fdisk命令

fdisk命令用於MBR分割區表格式磁碟的分割區或查詢。

基本語法

[root@localhost ~]# fdisk 裝置檔名

gdisk命令

gdisk命令用於GPT分割區表格式磁碟的分割區或查詢。

基本語法

[root@localhost ~]# gdisk 裝置檔名

mkfs命令

mkfs命令可以對硬碟分割區進行格式化。

基本語法

[root@localhost ~]# mkfs [選項] 分割區裝置檔名

選項說明

-t 檔案系統格式:用於指定格式化的檔案系統,如ext3、ext4、xfs等。

mke2fs命令

mke2fs命令可以在為硬碟分割區寫入檔案系統時,手動調整分割區的預設引數。

基本語法

[root@localhost ~]# mke2fs [選項] 分割區裝置檔名

選項說明

1 -t 檔案系統:指定格式化成哪個檔案系統。
2 -b 位元組:指定block的大小。
3 -i 位元組:指定位元組inode的比例,也就是多少位元組分配一個inode。
4 -L 卷標名:給檔案系統設定捲標名。
5 -j:建立帶有ext3紀錄檔功能的檔案系統。


IT145.com E-mail:sddin#qq.com