linux磁盘

简介

磁盘挂载

​ 磁盘分区挂载到目录下。

image-20220113143800382

1
2
3
4
lsblk //查看磁盘分配情况
lsblk -f
// UUID 分区唯一标识符
// MOUNTPOINT 挂载点

​ 加入一块硬盘,分区,并临时挂载(重启以后挂载失效)。

1
2
3
4
5
6
7
//先加入一块新的sd类型磁盘
//reboot 重启,重启后就能识别磁盘。
fdisk /dev/sdb // 给识别的磁盘分区,按提示操作即可,记得w保存。
// 再lsblk -f 可见多了一个 sdbX 。但是还没有uuid 没有 MOUNTPOINT 挂载点。
mkfs -t ext4 /dev/sdb1新分区 //格式化生成UUID。
mkdir 文件夹a
mount /dev/sdb1 文件夹a // 把分区分好的磁盘挂载到文件夹,就有了挂载点。

​ 也可以取消挂载。

1
umount /dev/sdb1 或者 umount 文件夹a

​ 修改/etc/fstab 实现永久挂载。

1
2
vim /etc/fstab //修改
mount -a //即刻生效

磁盘情况查询

​ 查询磁盘占用情况

1
df -h

​ 查询目录占用情况

1
2
3
4
5
du -h 目录               //仅仅查子目录情况,儿子孙子等等全部都列出来。
du -sh //列出文件夹(包括儿子孙子等等)总的占空间大小
du -h --max-depth=1 目录 //仅仅从目录往下查1个深度 子目录情况。
du -ha --max-depth=1 目录 // 同上,但是显示全部文件情况。
du -hac --max-depth=1 目录 // 同上,汇总。

​ 查询文件数量

1
2
3
4
5
6
7
8
9
10
//提示: grep 过滤是支持正则表达式的
// 筛选出-开头的,也就是选出文件;再用wc -l统计出数量。
ls -l 文件夹 | grep "^-"wc -l

//同理,可以查文件夹数量。
ls -l 文件夹 | grep "^d"wc -l

// 递归显示 -R,也就是把子文件夹的也一起统计了。
ls -lR 文件夹 | grep "^-"wc -l

​ 以树状显示 可以先下载一个tree工具。

1
tree 文件夹

磁盘添加分区并挂载

​ 1、在vmware中把磁盘空间扩大100G。

​ 2、在虚拟机内 lsblk 查看,可见磁盘的空间的确扩大了100G,但是磁盘下各个分区还是原来一样的大小,如下:

1
2
3
nvme0n1        200G   # 磁盘(差值就是刚刚扩容的100G)
nvme0n1p1 55G # 分区
nvme0n1p2 45G # 分区

​ 3、fdisk -l 查看挂载位置。

1
2
3
/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3

​ 4、fdisk /dev/nvme0n1 按提示操作建立一个新的分区。(新分区自动分了磁盘差值100G的空间)。

1
2
3
4
5
6
reboot                       # 重启一下才能lsblk查看到新分区,不然只能fdisk -l 看
lsblk # 查看
nvme0n1 200G # 磁盘
nvme0n1p1 55G # 分区
nvme0n1p2 45G # 分区
nvme0n1p3 100G # 新加的分区 (还要挂载上去。)

image-20220119171331903

(上图就是最后一个分区没有挂载点的情况。)

​ 5、挂载

1
2
3
mkfs -t ext4 /dev/nvme0n1p3  # 格式化成ext4格式,并生成UUID。lsblk -f 可以看见新分区有了uuid了。
mkdir 文件夹a
mount /dev/nvme0n1p3 文件夹a # 把分区分好的磁盘挂载到文件夹,就有了挂载点。

也可以修改文件永久挂载

​ 修改/etc/fstab 实现永久挂载。

1
2
vim /etc/fstab //修改
mount -a //即刻生效

磁盘指定分区扩容

​ 通过我在网上的学习和实践,不推荐使用 LVM扩容方式 以及 记录位置手工备份 来手动扩容指定分区,尤其是根目录所在的分区一旦操作不当,容易丢失数据,风险太高。

​ 推荐使用 growpart工具 ,类似于ubuntu中的 gparted 傻瓜式扩容指定分区,Ubuntu的扩容方法可以参考我之前的学习笔记《Ubuntu上安装gpu的xgoost以及配置cuda等》-《ubuntu扩容》。

案例:根目录扩容

​ 以下为我在Mac 中的虚拟机 centos7系统 根目录扩容, 从17g 扩容到 22g。

1
2
3
4
# 用yum下载安装 growpart 工具。
yum update
yum install cloud-utils-growpart
yum install xfsprogs

lsblk 查看 根目录的挂载点 对应哪个 磁盘分区。

​ 我的 / 根目录 对应的磁盘分区是 sda3

​ 关闭虚拟机,扩充5g空间至25g。

截屏2022-04-09 19.36.48

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# df -h 查看 根目录/ 挂载点对应的 Filesystem ,我的是 /dev/sda3
df -h

# 指定给哪个磁盘的哪个分区扩容; 我这里是给/dev/sda磁盘的第3个分区扩容
growpart /dev/sda 3

# 重启
reboot

# lsblk -f 查看 根目录/ 对应的 文件系统类型是 (XFS文件系统) or (ext2/ext3/ext4)文件系统 ,我的是xfs。
lsblk -f

# 扩容文件系统; xfs_growfs(用于扩容 XFS 文件系统)或者 resize2fs命令(用户ext2/ext3/ext4)扩容文件系统;我的是 xfs所以用xfs_growfs 。
xfs_growfs /dev/sda3

截屏2022-04-09 19.53.26

截屏2022-04-09 19.46.51

截屏2022-04-09 19.32.09

根目录扩容成功!