主頁 > 作業系統 > Linux磁盤管理

Linux磁盤管理

2021-12-23 06:05:50 作業系統

一、磁盤管理

Linux 磁盤管理好壞直接關系到整個系統的性能問題,

Linux 磁盤管理常用的三個命令為 dfdufdisk

  • df(英文全稱:disk full):列出檔案系統的整體磁盤使用量
  • du(英文全稱:disk used):檢查磁盤空間使用量
  • fdisk:用于磁盤磁區,可以磁區2TB以下的磁盤,最多可以分4個磁區

除了fdisk可以用于磁盤磁區,還可以使用gdisk進行磁區:該方式使用規則與fdisk相同,但需要下載才能使用,可以磁區2TB以上的磁盤,最多可以分128個磁區,

1.1 df

df命令引數功能:檢查檔案系統的磁盤空間占用情況,可以利用該命令來獲取硬碟被占用了多少空間,目前還剩下多少空間等資訊,

語法格式:

df [-ahikHTm] [目錄或檔案名]
相關引數 引數說明
-a 列出所有的檔案系統,包括系統特有的 /proc 等檔案系統
-k 以 KBytes 的容量顯示各檔案系統
-m 以 MBytes 的容量顯示各檔案系統
-h 以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示
-H 以 M=1000K 取代 M=1024K 的進位方式
-T 顯示檔案系統型別, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出
-i 不用硬碟容量,而以 inode 的數量來顯示

實體1

將系統內所有的檔案系統列出來:

[root@jiangzhi dev]# df
檔案系統                   1K-塊    已用     可用 已用% 掛載點
devtmpfs                  485956       0   485956    0% /dev
tmpfs                     497844       0   497844    0% /dev/shm
tmpfs                     497844    7716   490128    2% /run
tmpfs                     497844       0   497844    0% /sys/fs/cgroup
/dev/mapper/centos-root 49254916 3445324 45809592    7% /
/dev/sda1                1038336  203480   834856   20% /boot
tmpfs                      99572       0    99572    0% /run/user/0

在 Linux 中如果 df 沒有加任何選項,那么默認會將系統內所有的 (不含特殊記憶體內的檔案系統與 swap) 都以 1 Kbytes 的容量來列出來!

實體2

將容量結果以易讀的容量格式顯示出來:

[root@jiangzhi dev]# df -h
檔案系統                 容量  已用  可用 已用% 掛載點
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.6M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   47G  3.3G   44G    7% /
/dev/sda1               1014M  199M  816M   20% /boot
tmpfs                     98M     0   98M    0% /run/user/0

實體3

將系統內的所有特殊檔案格式及名稱都列出來:

[root@jiangzhi dev]# df -aT
檔案系統                型別          1K-塊    已用     可用 已用% 掛載點
sysfs                   sysfs             0       0        0     - /sys
proc                    proc              0       0        0     - /proc
devtmpfs                devtmpfs     485956       0   485956    0% /dev
securityfs              securityfs        0       0        0     - /sys/kernel/security
tmpfs                   tmpfs        497844       0   497844    0% /dev/shm
devpts                  devpts            0       0        0     - /dev/pts
tmpfs                   tmpfs        497844    7684   490160    2% /run
tmpfs                   tmpfs        497844       0   497844    0% /sys/fs/cgroup
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/systemd
pstore                  pstore            0       0        0     - /sys/fs/pstore
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/memory
cgroup                  cgroup            0       0        0     - /sys/fs/cgroup/net_cls,net_pr
......后續省略

實體4

將 /etc 下的可用的磁盤容量以易讀的容量格式顯示

檔案系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   47G  3.3G   44G    7% /

知識拓展:lsblk命令——查看本機的磁盤

1.2 du

Linux du 命令也是查看使用空間的,但是與 df 命令不同的是 Linux du 命令是對檔案和目錄磁盤使用的空間的查看,還是和df命令有一些區別的,這里介紹 Linux du 命令,

語法格式:

du [-ahskm] 檔案或目錄名稱
相關引數 引數說明
-a 列出所有的檔案與目錄容量,因為默認僅統計目錄底下的檔案量而已
-h 以人們較易讀的容量格式 (G/M) 顯示
-s 列出總量而已,而不列出每個各別的目錄占用容量
-S 不包括子目錄下的總計,與 -s 有點差別
-k 以 KBytes 列出容量顯示
-m 以 MBytes 列出容量顯示

實體1

只列出當前目錄下的所有檔案夾容量(包括隱藏檔案夾):

[root@jiangzhi ~]# du
0       ./jz/juhuachan    <==每個目錄都會列出來
4       ./jz
8       ./test
0       ./sdc1-mnt
4       ./.ssh        <==包括隱藏檔案的目錄
0       ./.pki/nssdb
0       ./.pki
104     .        <==這個目錄(.)所占用的總量

直接輸入 du 沒有加任何選項時,則 du 會分析當前所在目錄里的子目錄所占用的硬碟空間,

實體2

將檔案的容量也列出來:

[root@jiangzhi jz]# du -a
4       ./1.txt
0       ./index
0       ./index3to2
0       ./juhuachan
0       ./juhuachanruanlianjie
4       .

實體3

檢查根目錄底下每個目錄所占用的容量:

[root@www ~]# du -sm /*
7       /bin
6       /boot
.....中間省略....
0       /proc
.....中間省略....
1       /tmp
3859    /usr     <==系統初期最大就是他了啦!
77      /var

與 df 不一樣的是,du 這個命令其實會直接到檔案系統內去搜尋所有的檔案資料,

1.3 fdisk

fdisk 是 Linux 的磁盤磁區表操作工具,

語法格式:

fdisk [-l] 裝置名稱
相關引數 引數說明
-l 輸出后面接的裝置所有的磁區內容,若僅有 fdisk -l 時, 則系統將會把整個系統內能夠搜尋到的裝置的磁區均列出來

實體1

列出所有磁區資訊:

[root@jiangzhi tmp]# fdisk -l

磁盤 /dev/sda:51.5 GB, 51539607552 位元組,100663296 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁盤標簽型別:dos
磁盤識別符號:0x000c8cdf

   設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   100663295    49282048   8e  Linux LVM

實體2

找出系統中的根目錄所在磁盤,并查閱該硬碟內的相關資訊:

[root@www ~]# df /            <==注意:重點在找出磁盤檔案名而已
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2              9920624   3823168   5585388  41% /

[root@www ~]# fdisk /dev/hdc  <==仔細看,不要加上數字喔!
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就是動作生效的意思,

命令(輸入 m 獲取幫助):p    <== 這里可以輸出目前磁盤的狀態

磁盤 /dev/sdb:107.4 GB, 107374182400 位元組,209715200 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁盤標簽型別:dos
磁盤識別符號:0x3adb1b3b

設備 Boot         Start         End      Blocks   Id  System
/dev/sdb1            2048   134219775    67108864   83  Linux
/dev/sdb2       134219776   209715199    37747712   83  Linux
# 裝置檔案名 啟動區否 開始磁柱    結束磁柱  1K大小容量 磁盤磁區槽內的系統

想要不儲存離開嗎?按下 q 就對了!不要隨便按 w 啊!

使用 p 可以列出目前這顆磁盤的分割表資訊,這個資訊的上半部在顯示整體磁盤的狀態,

1.4 磁盤格式化

磁盤分割完畢后自然就是要進行檔案系統的格式化,格式化的命令非常的簡單,使用 mkfs 命令,

語法格式:

mkfs [-t 檔案系統格式] 裝置檔案名
相關引數 引數說明
-t 可以接檔案系統格式,例如 ext3, ext2, vfat 等(系統有支持才會生效)

實體1

查看mkfs支持的檔案格式:

[root@jiangzhi ~]# mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.minix   
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs     

按下兩個[tab],會發現 mkfs 支持的檔案格式如上所示,

實體2:

將磁區 /dev/hdc6(可指定你自己的磁區) 格式化為 ext3 檔案系統:

[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=                <==這里指的是分割槽的名稱(label)
OS type: Linux
Block size=4096 (log=2)          <==block 的大小配置為 4K 
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks     <==由此配置決定的inode/block數量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done <==有日志記錄
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# 這樣就創建起來我們所需要的 Ext3 檔案系統了!簡單明了!

上述命令方式也可以寫成:mkfs.ext3 /dev/hdc6

1.5 磁盤檢驗

fsck(file system check)用來檢查和維護不一致的檔案系統,

若系統掉電或磁盤發生問題,可利用fsck命令對檔案系統進行檢查,

語法格式:

fsck [-t 檔案系統] [-ACay] 裝置名稱
相關引數 引數說明
-t 給定檔案系統的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此引數
-A 對/etc/fstab 中所有列出來的 磁區(partition)做檢查
-C 顯示完整的檢查進度
-a 如果檢查有錯則自動修復
-y 選項指定檢測每個檔案是自動輸入yes,在不確定那些是不正常的時候,可以執行 # fsck -y 全部檢查修復

實體1

查看系統有多少檔案系統支持的fsck命令:

[root@jiangzhi ~]# fsck
fsck         fsck.cramfs  fsck.ext3    fsck.minix   
fsck.btrfs   fsck.ext2    fsck.ext4    fsck.xfs 

實體2

強制檢測 /dev/hdc6 磁區:

[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 sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

如果沒有加上 -f 的選項,則由于這個檔案系統不曾出現問題,檢查的經過非常快速!若加上 -f 強制檢查,才會一項一項的顯示程序,

1.6 磁盤掛載與卸載

Linux 的磁盤掛載使用 mount 命令,卸載使用 umount 命令,

磁盤掛載語法格式:

mount ...  裝置檔案名  掛載點

實體

用默認的方式,將剛剛創建的 /dev/hdc6 掛載到 /mnt/hdc6 上面:

[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中間省略.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

磁盤卸載命令 umount 語法:

umount [-fn] 裝置檔案名或掛載點
相關引數 引數說明
-f 強制卸除!可用在類似網路檔案系統 (NFS) 無法讀取到的情況下
-n 不升級 /etc/mtab 情況下卸除

卸載 /dev/hdc6:

[root@www ~]# umount /dev/hdc6     

二、掛載磁盤步驟總結

1、關機
2、添加硬碟
3、創建磁區
	fdisk /dev/sdb
	或
	gdisk /dev/sdb
4、格式化檔案系統
	mkfs.xfs /dev/sdb1 
5、掛載
	mount /dev/sdb1 /mnt

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/390191.html

標籤:Linux

上一篇:linux添加磁盤及磁區掛載

下一篇:linux三劍客之awk

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more