1. 程式人生 > >du/df命令與磁盤分區

du/df命令與磁盤分區

ola label not attr df -h etc zed stripe sgi

4.1 df命令
[root@localhost ~]# df -h            -h以容量單位形式查看容量大小
文件系統    容量   已用   可用   已用% 掛載點
/dev/sda3  18G    1.4G   17G   8%     /
devtmpfs   487M   0      487M  0%     /dev
tmpfs      497M   0      497M  0%     /dev/shm
tmpfs      497M   6.6M   490M  2%     /run
tmpfs      497M   0      497M  0%     /sys/fs/cgroup
/dev/sda1  197M   108M   89M   55%    /boot
tmpfs      100M   0      100M  0%     /run/user/0

df其他選項:
df直接執行時以kb容量單位顯示
-m 列出磁盤容量以MB容量單位顯示
-i 顯示inode節點使用情況,有inode節點耗盡,磁盤容量未使用完的情況,這種情況就需要清理磁盤中眾多的小文件,inode耗盡會導致磁盤有容量也會存不了數據
tmpfs的分區表示系統緩存分區,不能長久的保存數據,重啟後數據即消失
/dev/** 是硬盤的真實分區文件系統掛載點,可用的,用於系統運行和數據存儲

4.2 du命令

du 選項  目錄
du查看一個目錄的總大小,包括該目錄下所有的子文件和子目錄
[root@localhost ~]# du -sh /etc
30M /etc
如果du不加任何選項,則會列出該目錄下所有文件大小並以kb的容量單位顯示,如:
[root@localhost ~]# du
12  /etc/latrace.d/headers/sysdeps/x86_64
12  /etc/latrace.d/headers/sysdeps
164 /etc/latrace.d/headers
168 /etc/latrace.d
30184   /etc
du 只加-s是以kb顯示容量不加h不會顯示容量單位,只會顯示一個容量數字
[root@localhost ~]# du -s /etc/
30184   /etc/                         單位是kb,30184是30MB大小

du 和 df 命令區別,查看了網上的說明個人理解如下:
du 是直接各各目錄的大小,而不是從硬盤獲得信息的
df 是通過硬盤信息進行計算的
所以有時候會遇到 du 的值與df 的值相差太遠,這是因為當一個應用程序正在寫入一個大的文件時,linux 操作系統允許rm 和mv ,應用程序會占有句柄,並根據句柄所指磁盤位置直接寫磁盤,而不會檢查該文件是否被刪除。

4.3 磁盤分區(上)

在虛擬機中添加了硬盤並重啟虛擬機,使用fdisk命令來查看新添加硬盤的信息

[root@localhost ~]# fdisk -l

磁盤 /dev/sda:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x0002aadb

   設備 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 41943039 18668544 83 Linux

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x1214d244 創建新的 DOS 磁盤標簽。

命令(輸入 m 獲取幫助):p   

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x1214d244

   設備 Boot Start End Blocks Id System
   [root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x1214d244 創建新的 DOS 磁盤標簽。

命令(輸入 m 獲取幫助):p   

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x1214d244

   設備 Boot      Start         End      Blocks   Id  System
[root@localhost ~]# fdisk /dev/sdb            fdisk對/dev/sdb盤做分區
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x1214d244 創建新的 DOS 磁盤標簽。

命令(輸入 m 獲取幫助):p   

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x1214d244

   設備 Boot      Start         End      Blocks   Id  System
命令(輸入 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)

常用的幾個字母命令:
m 獲取幫助信息
n 新建一個新分區
p primary創建一個主分區
e extended 創建擴展分區
d 刪除分配的分區
w 保存修改並退出

主分區最多分配四個,若想分配五個或五個以上分區,建議分配三個主分區一個邏輯分區,這樣才能分配更多分區來使用,2TB以下容量的分區使用MBR格式來格式化,2TB以上容量的分區需要使用GPT分區管理來格式化
我們來創建幾個新的分區

命令(輸入 m 獲取幫助):n                 #新建分區
Partition type:
   p primary (0 primary, 0 extended, 4 free)
   e extended
Select (default p): p                 #創建一個主分區1
分區號 (1-4,默認 1):1
起始 扇區 (2048-16777215,默認為 2048):+4G   
Last 扇區, +扇區 or +size{K,M,G} (8388608-16777215,默認為 16777215):
將使用默認值 16777215
分區 1 已設置為 Linux 類型,大小設為 4 GiB

命令(輸入 m 獲取幫助):p                # 查看分區

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot Start End Blocks Id System
/dev/sdb1 8388608 16777215 4194304 83 Linux

命令(輸入 m 獲取幫助):n                 #新建分區
Partition type:
   p primary (1 primary, 0 extended, 3 free)
   e extended
Select (default p): p                  #創建一個主分區2
分區號 (2-4,默認 2):
起始 扇區 (2048-16777215,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-8388607,默認為 8388607):+2048M
分區 2 已設置為 Linux 類型,大小設為 2 GiB

命令(輸入 m 獲取幫助):p                  # 查看分區

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot Start End Blocks Id System
/dev/sdb1 8388608 16777215 4194304 83 Linux              #一個4GB分區
/dev/sdb2 2048 4196351 2097152 83 Linux                  #一個2GB分區

Partition table entries are not in disk order
命令(輸入 m 獲取幫助):n                                   #創建新分區
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): e                                    #創建一個擴展分區
分區號 (3,4,默認 3):
起始 扇區 (4196352-16777215,默認為 4196352):             #默認全部回車分配所有容量
將使用默認值 4196352
Last 扇區, +扇區 or +size{K,M,G} (4196352-8388607,默認為 8388607):
將使用默認值 8388607
分區 3 已設置為 Extended 類型,大小設為 2 GiB

命令(輸入 m 獲取幫助):p                                   #查看分配完的分區

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1         8388608    16777215     4194304   83  Linux
/dev/sdb2            2048     4196351     2097152   83  Linux
/dev/sdb3         4196352     8388607     2096128    5  Extended        #一個擴展類型的分區

Partition table entries are not in disk order
命令(輸入 m 獲取幫助):w                                               #w保存修改並退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。

4.3 磁盤分區(下)

刪除分區表中的分配:

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot Start End Blocks Id System
/dev/sdb1 8388608 16777215 4194304 83 Linux
/dev/sdb2 2048 4196351 2097152 83 Linux
/dev/sdb3 4196352 8388607 2096128 5 Extended

Partition table entries are not in disk order

命令(輸入 m 獲取幫助):d
分區號 (1-3,默認 3):1
分區 1 已刪除

命令(輸入 m 獲取幫助):d
分區號 (2,3,默認 3):2
分區 2 已刪除

命令(輸入 m 獲取幫助):d              只剩最後一個分區時會直接刪除,不詢問刪除哪個分區號了
已選擇分區 3
分區 3 已刪除

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區          分區表空
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot      Start         End      Blocks   Id  System

在邏輯分區中,刪除一個邏輯分區後,邏輯分區中的分區號是不會留空的,邏輯分區的分區號從5開始,1-4分區號只預留個主分區或擴展分區的,邏輯分區一定是從5開始,如:

 命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:8589 MB, 8589934592 字節,16777216 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcfca8dcc

   設備 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 5 Extended
/dev/sdb3 4196352 8390655 2097152 83 Linux
/dev/sdb5 4096 4196351 2096128 83 Linux                  邏輯分區必定從5開始分配

4.5 磁盤格式化(上)

linux默認分區系統,centos6之前是使用的ext文件系統,centos7是xfs文件系統,使用mount查看/dev/的文件系統類型
文件系統格式化,文件系統格式可以是ext3、ext4或者xfs的類型,一個空的文件在文件系統中最低占用4kb的空間,這是系統中最小的存儲單位
```[root@localhost ~]# mke2fs -t ext4 /dev/sdb3 使用ext4文件系統格式化
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@localhost ~]# mkfs.ext4 /dev/sdb3
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

#使用xfs文件系統格式化
[root@localhost ~]# mkfs.xfs /dev/sdb3 出現這個信息表示此分區已經存在其他的文件系統,使用-f選項
mkfs.xfs: /dev/sdb3 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs -f /dev/sdb3 使用-f選項,表示強制的重新格式化分區
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# blkid /dev/sdb3 使用blkid查看分區的信息
/dev/sdb3: UUID="a83ce2e4-13a8-405e-b701-16da56a02b0d" TYPE="xfs"


# 4.6 磁盤格式化(下)
mke2fs 命令使用,支持ext3、ext4文件系統
mke2fs 選項  分區
-b  指定分區的最小的塊大小,如:mke2fs -b 8096 /dev/sdb3
-m  指定分區的預留空間,如:mke2fs -m 0.5 /dev/sdb3。支持浮點數的寫法
xfs文件系統使用mkfs.xfs格式化不支持-b\-m選項

[root@localhost ~]# mke2fs -b 4096 /dev/sdb3 指定最小塊大小
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

[root@localhost ~]# mke2fs -m 0.5 /dev/sdb3 指定預留空間百分比大小,這裏是0.5%
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
2621 blocks (0.50%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

mke2fs -i 8192 /dev/sdb3 指定inode對應每個塊的數量,最低的是一個inode對應一個塊大小

mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

du/df命令與磁盤分區