du/df命令与磁盘分区

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: 完成

猜你喜欢

转载自blog.51cto.com/8844414/2129451