9月25日任务
4.1 df命令
4.2 du命令
4.3/4.4 磁盘分区
df 命令
查看系统磁盘空间使用情况
常用参数
-
-h (human-readble)
# 人性化的为空间大小转换单位显示
[root@centos7 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 16G 1.3G 15G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 136M 62M 69% /boot
tmpfs 98M 0 98M 0% /run/user/0
- -i 显示inode号信息
# 按分区inode号信息(总共/已用/可用)显示
[root@centos7 ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 8285696 32740 8252956 1% /
devtmpfs 122491 377 122114 1% /dev
tmpfs 124965 1 124964 1% /dev/shm
tmpfs 124965 450 124515 1% /run
tmpfs 124965 16 124949 1% /sys/fs/cgroup
/dev/sda1 102400 338 102062 1% /boot
tmpfs 124965 1 124964 1% /run/user/0
其他有用参数
-
-t TYPE 按文件系统类型来区分
# 可以使用-T参数来查看系统内的文件系统类型
[root@localhost ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/sda3 xfs 18658304 1092332 17565972 6% /
devtmpfs devtmpfs 490168 0 490168 0% /dev
tmpfs tmpfs 499968 0 499968 0% /dev/shm
tmpfs tmpfs 499968 6840 493128 2% /run
tmpfs tmpfs 499968 0 499968 0% /sys/fs/cgroup
/dev/sda1 xfs 201380 111392 89988 56% /boot
tmpfs tmpfs 99996 0 99996 0% /run/user/0
[root@localhost ~]# df -t xfs
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 18658304 1092332 17565972 6% /
/dev/sda1 201380 111392 89988 56% /boot
- -x TYPE 不显示TYPE类型的文件系统
[root@localhost ~]# df -x tmpfs
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 18658304 1092332 17565972 6% /
devtmpfs 490168 0 490168 0% /dev
/dev/sda1 201380 111392 89988 56% /boot
关于内容的几点说明
-
文件系统:带tmpfs的是临时的文件系统,在这些分区中写的数据,重启后将消失!
-
已用(百分比):当百分比很高时,管理员就需要注意了,分析原因后就可以去进行新增磁盘或清除缓存数据的操作。
-
挂载点:分区挂载的目录。/dev/shm表示内存,其读写速率较其他分区要快。
关于inode号的实例
有些时候,会发现有些分区无法写入数据,使用df命令查看磁盘空间,发现该分区还有部分空间,究其原因就是:
该分区的inode号已经全部分配使用掉了!!(一个分区的inode号数量是固定的)
du 命令
估算文件的空间使用情况
常用参数
-
不加参数(不推荐)
# 不加参数,不仅会显示目录的大小,同时也会将目录下的子目录、子子目录的大小都显示出来;
# 其默认单位为KB
[root@localhost ~]# du /root
8 /root/.ssh
68 /root
- -h 人性化显示(推荐使用)
# 加上-h参数,显示单位
[root@localhost ~]# du -h /root
8.0K /root/.ssh
68K /root
- -s 只显示总的,不显示目录内部子目录
# 再加上-s参数,只显示当前目录的总大小,目录下的子目录不显示
[root@centos7 ~]# du -sh /root
52K /root
其他参数(有用)
-
-d Num 指定显示子目录的层数
# -d Num 只显示目录的几层
[root@localhost ~]# du -d 1 -h /usr
56M /usr/bin
37M /usr/sbin
422M /usr/lib
155M /usr/lib64
217M /usr/share
0 /usr/etc
0 /usr/games
36K /usr/include
12M /usr/libexec
0 /usr/local
0 /usr/src
897M /usr
- -b 以字节为单位显示
[root@localhost ~]# du -sh /tmp
8.0K /tmp
[root@localhost ~]# du -sb /tmp
1167 /tmp
关于文件目录大小
使用du命令显示文件/目录的大小跟使用ls命令显示的大小会有点不同。
-
du命令是以块(block)为计算基础的,即便某个块内数据未写满也会被计算;
-
ls命令是以字节为默认计算基础的
所以一般的du命令显示的大小会大于等于ls命令显示的大小!!
# du显示/etc/passwd文件大小为4k
[root@localhost ~]# du /etc/passwd
4 /etc/passwd
# ls则显示为1.2K
[root@localhost ~]# ls -lh /etc/passwd
-rw-r--r--. 1 root root 1.2K ... /etc/passwd
磁盘分区 fdisk命令
在这里我们使用虚拟机添加一块10G的新磁盘/dev/sdb作为测试
(物理机支持硬盘热插拔;虚拟机上点击设置,添加硬盘,重启机器后识别。)
查看分区
识别系统内的磁盘及分区并显示
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00090c65
设备 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:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
划分分区
fdisk + 磁盘名(这里是/dev/sdb)
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x2d5540bc 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
fdisk命令的不足(MBR分区格式):做大磁盘操作容量2T,最多4个主分区
常用操作
操作过程中如果误操作,使用ctrl + u 快捷键撤销
-
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
....
-
n 创建新分区
命令输错使用ctrl+u重新输入
-
p 主分区 (最多4个主分区,设置了4个无法创建扩展分区)
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
2. e 扩展分区(主分区和扩展分区数之和小于等于4)
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G
分区 2 已设置为 Extended 类型,大小设为 2 GiB
3. l 逻辑分区
创建逻辑分区的前提是不能分配4个主分区,且最少要有一个扩展分区。
逻辑分区号从5开始,而且是连续的。
逻辑分区空间实质上是从扩展分区内分出的,其大小无法超过扩展分区的大小。
此外扩展分区上不能存取数据,其所占用的空间实质上是逻辑分区所占用的。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 1 extended, 3 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (4096-12584959,默认为 4096):
将使用默认值 4096
Last 扇区, +扇区 or +size{K,M,G} (4096-12584959,默认为 12584959):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB
- t 分区类型
t参数常用的类型
8e Linux LVM
82 swap分区
83 Linux(主分区、逻辑分区)
5 Extended(扩展分区)
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
- p 打印分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xccb93a53
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 0 Empty
/dev/sdb2 2048 4196351 2097152 5 Extended
- d 删除分区
命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除
- w 保存分区操作至磁盘(非常重要!! 不执行无法保存修改退出,之前操作白做)
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
- q 直接退出,忽略修改。