1. 程式人生 > 實用技巧 >Linux常用命令--磁碟管理

Linux常用命令--磁碟管理

Linux常用命令--磁碟管理

linux採用一種載入的處理方式,整個檔案系統以檔案樹的結構存在,一個分割槽和一個目錄聯絡一起(掛載)。

檢視所有裝置掛載情況

lsblk檢視所有裝置掛載情況,-f 更加詳細(有fs格式、40位uuid唯一識別符號 )

關於磁碟:

scsi硬碟:標識是sdx~,如:sda1、sda2、sda3 ... sdb ... sdc ...
ide硬碟:標識是hdx~

為電腦增加一塊硬碟的步驟

① 新增硬碟

把硬碟連線到電腦。

② 分割槽

使用fdisk分割槽命令

fdisk 常用選項 說明
m 顯示命令列表
p 顯示磁碟分割槽,同fdisk -l
n 新增分割槽
d 刪除分割槽
w 寫入並推出
q 退出不儲存

分割槽步驟

  1. 使用命令,指定要分割槽的裝置:fdisk /dev/sdb
[root@rH7-1 lczmx]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁碟識別符號 0x30a50703 建立新的 DOS 磁碟標籤。
  1. 輸入m:顯示幫助(不看也行)
命令(輸入 m 獲取幫助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   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)
  1. 開始分割槽輸入n:建立分割槽
命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
  1. 新增分割槽選擇p:分割槽型別為主分割槽(根據自己的需要來)
Select (default p): p
  1. 選擇分割槽號(預設就好)
分割槽號 (1-4,預設 1):1
  1. 選擇起始扇區(預設就好)
起始 扇區 (2048-2097151,預設為 2048):
將使用預設值 2048
  1. 選擇此分割槽的大小 KMG(如: +20G)(要分多個分割槽的話,記得留點)
Last 扇區, +扇區 or +size{K,M,G} (2048-2097151,預設為 2097151):+200M
分割槽 2 已設定為 Linux 型別,大小設為 200 MiB

這裡我多分了一個區,沒有需求的可以直接第八步


命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分割槽號 (2-4,預設 2):
起始 扇區 (411648-2097151,預設為 411648):
將使用預設值 411648
Last 扇區, +扇區 or +size{K,M,G} (411648-2097151,預設為 2097151):
將使用預設值 2097151
分割槽 2 已設定為 Linux 型別,大小設為 823 MiB
  1. w:寫入分割槽退出(若不儲存則輸入q)
命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁碟。
  1. 檢視分割槽結果

分割槽前

[lczmx@rH7-1 ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   17G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0    1G  0 disk 
sr0     11:0    1 1024M  0 rom 

分割槽後

[root@rH7-1 lczmx]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   17G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sdb      8:16   0    1G  0 disk 
├─sdb1   8:17   0  200M  0 part 
└─sdb2   8:18   0  823M  0 part 
sr0     11:0    1 1024M  0 rom 

③ 格式化

未格式化過的分割槽是不可以使用的,可以通過lsblk -f命令檢視是否已經格式化。(有UUID就證明已經格式化過了)

[root@rH7-1 lczmx]# lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 ext4         ecc17b31-f225-4ac5-b7bd-c5017fa2f224 /boot
├─sda2 ext4         db36ba76-89c8-4593-8b24-580e2dbfa18d /
└─sda3 swap         f843c352-ca65-457d-b2f9-c64e89e22a58 [SWAP]
sdb                                                      
├─sdb1                                                   
└─sdb2                                                   
sr0  

假如沒有格式化的話,需要使用格式化命令: mkfs -t 檔案系統型別 分割槽,如:mkfs -t ext4 /dev/sdb1

開始格式化

[root@rH7-1 lczmx]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
檔案系統標籤=
OS type: Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
......
......

[root@rH7-1 lczmx]# mkfs -t ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
檔案系統標籤=
OS type: Linux
......
......

再次檢視

[root@rH7-1 lczmx]# lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 ext4         ecc17b31-f225-4ac5-b7bd-c5017fa2f224 /boot
├─sda2 ext4         db36ba76-89c8-4593-8b24-580e2dbfa18d /
└─sda3 swap         f843c352-ca65-457d-b2f9-c64e89e22a58 [SWAP]
sdb                                                      
├─sdb1 ext4         1371bca2-d95c-48ec-84e4-0c1483e175fd 
└─sdb2 ext4         c4ec0a6a-8af7-46c5-921e-fa6a37fcac38 

④ 掛載

掛載就是給目錄與分割槽建立聯絡,掛載後目錄就相當於是分割槽的大門了。
掛載有兩個步驟:
第一步:確定掛載點,可以建立 一個目錄,也可以選擇已有的。

第二步:輸入命令: mount 裝置名稱 掛載目錄,如:mount /dev/sdb1 /mydisk

要解除安裝的話使用:umount /dev/sdb1 /mydisk 或者 umount /mydisk

注意:使用命令列的方式進性掛載,重啟後失效!!

⑤ 設定自動掛載

上面已經說了,使用mount命令掛載在電腦重啟後會失效,為了解決這個問題,可以通過修改/etc/fstab這個檔案來實現永久掛載。
先看一看這個檔案的內容:

[lczmx@rH7-1 ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Nov 28 19:57:23 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=db36ba76-89c8-4593-8b24-580e2dbfa18d /                       ext4    defaults        1 1
UUID=ecc17b31-f225-4ac5-b7bd-c5017fa2f224 /boot                   ext4    defaults        1 2
UUID=f843c352-ca65-457d-b2f9-c64e89e22a58 swap                    swap    defaults        0 0

這個檔案配置是有一定的格式的,所以下面講解一下格式
fstab輸入格式詳解

UUID=db36ba76-89c8-4593-8b24-580e2dbfa18d / ext4 defaults 1 1
UUID:分割槽的UUID(也可以/dev/sdb1這種形式) 掛載點 檔案系統格式 檔案系統的引數 能否被dump備份命令作用 是否檢驗扇區
  • 檔案系統的引數

    • Async/sync: 設定是否為同步方式執行,預設為async
    • auto/noauto : 當下載mount -a 的命令時,此檔案系統是否被主動掛載。預設為auto
    • rw/ro : 是否以以只讀或者讀寫模式掛載
    • exec/noexec: 限制此檔案系統內是否能夠進行"執行"的操作
    • user/nouser: 是否允許使用者使用mount命令掛載
    • suid/nosuid: 是否允許SUID的存在
    • Usrquota: 啟動檔案系統支援磁碟配額模式
    • Grpquota: 啟動檔案系統對群組磁碟配額模式的支援
    • Defaults: 同事具有rw,suid,dev,exec,auto,nouser,async等預設引數的設定
  • 能否被dump備份命令作用

    • 0: 代表不要做dump備份
    • 1: 代表要每天進行dump的操作
    • 2: 代表不定日期的進行dump操作
  • 是否檢驗扇區
    開機的過程中,系統預設會以fsck檢驗我們系統是否為完整

    • 0: 不要檢驗
    • 1: 最早檢驗(一般根目錄會選擇)
    • 2: 1級別檢驗完成之後進行檢驗

根據上述的解釋,寫入自己的配置,儲存退出。新增完成後,執行mount -a立即生效

磁碟情況查詢

命令 說明 備註
df -h 查循系統整體磁碟使用情況
du -h 目錄 查詢指定目錄的磁碟佔用情況,預設當前目錄 -s 指定目錄佔用大小;-h 帶計量單位;-a 含檔案;--max-depth=1 子目錄深度;-c 列出明細的同時,增加彙總值

磁碟情況工作實用指令

  1. 統計某個目錄下有多少個檔案
    ls -l | grep "^-" | wc -l
  2. 統計某個目錄下有多少個檔案(包括子資料夾的)
    ls -lR | grep "^-" | wc -l
  3. 樹狀結構檢視目錄
    tree 目錄

我的github
我的部落格
我的筆記