Linux磁盘分区、挂载
1 基础概念
硬盘分类
-
IDE Integrated Drive Electronics,电子集成驱动器。
- 价格低、兼容强、性价比高
- 数据传输速度慢、线缆长度过短、连接设备少
-
包括小类
- ATA Advanced Technology Attachment,高级技术附加装置
- Ultra ATA
- DMA
- Ultra DMA
- SATA Serial ATA,串口硬盘
- PATA Parallel ATA,并口硬盘
-
SCSI [ˈskʌzi] Small Computer System Interface,小型计算机系统接口
- SCSI接口是一个通用接口,在SCSI母线上可以连接主机适配器和八个SCSI外设控制器,外设可以包括磁盘、磁带、CD-ROM、可擦写光盘驱动器、打印机、扫描仪和通讯设备等
- SCSI是个多任务接口,设有母线仲裁功能。挂在一个SCSI母线上的多个外设可以同时工作。SCSI上的设备平等占有总线
- SCSI接口可以同步或异步传输数据,同步传输速率可以达到10MB/s,异步传输速率可以达到1.5MB/s
- SCSI接口接到外置设备时.它的连接电缆可以长达6m
【文章福利
】小编推荐自己的Linux内核源码交流群:【
869634926
】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!
分区方式
- MBR 分区
- 最多支持 4 个主分区
- 系统只能按照在主分区
- 扩展分区要占一个主分区
- 最大支持 2TB,但拥有最好的兼容性(最古老)
- GPT 分区
- 理论支持无限多主分区,但受操作系统限制(如 windows 下最大 128 个分区)
- 最大支持 18 EB,B->K->M->G->T->P->E
- windows7 64位开始支持GPT
windows 下常见分区
通常划分:
- 主分区 C
- 扩展分区 (概念)
- 逻辑分区 D
- 逻辑分区 E
- 逻辑分区 F
- …
4个主分区和 1主3逻辑分区的区别:
方便区分系统盘和数据盘
4个主分区后无法再继续创建分区,使用逻辑分区则可以随便划分
存疑:windows7 64位开始支持 GPT,所以上面分析不太靠得住
2 Linux 分区及相关指令
§2.1 基本认知
独立唯一的文件系统
Linux 无论划分多少分区,分别分给哪个目录使用,最终都属于一个根目录,这保证逻辑上 Linux 具有一个独立且唯一的文件结构,操作系统中任意分区都是文件系统的一部分 。
挂载(mount) 和 卸载(umount)
Linux 采用
挂载(mount)/卸载(umount)
的方式处理分区。一个分区会联系到整个文件系统的一个目录中去。因此可以使用访问目录的形式访问分区。
2.2 Linux 下硬盘盘符
盘符通常为 hdx~ 或 sdx~
其中:
- hd 代表 IDE 硬盘
- sd 代表 SCSI 硬盘,现在基本都是此类型
-
x 是盘号,为 [abcd] 之一,每一个代表一块完整的硬盘,每个硬盘可以划分主分区、扩展分区、逻辑分区
- a 基本盘
- b 基本从属盘
- c 辅助盘
- d 辅助从属盘
-
~ 是数字
- 1-4 主分区或扩展分区
- 5 以后是逻辑分区
§2.3 lsblk [查看块设备]
全称:list block devices
指令:lsblk 选项
选项说明
- -a, –all 显示所有设备
- -b, –bytes 以bytes方式显示设备大小
- -d, –nodeps 不显示 slaves 或 holders
- -D, –discard print discard capabilities
- -e, –exclude 排除设备 (default: RAM disks)
- -f, –fs 显示文件系统信息
- -h, –help 显示帮助信息
- -i, –ascii use ascii characters only
- -m, –perms 显示权限信息
- -l, –list 使用列表格式显示
- -n, –noheadings 不显示标题
- -o, –output 输出列
- -P, –pairs 使用key=”value”格式显示
- -r, –raw 使用原始格式显示
- -t, –topology 显示拓扑结构信息
§2.4 fdisk [分区指令]
指令:fdisk /dev/硬盘名/
说明:
动作 | 说明 | 作用 |
---|---|---|
a | toggle a bootable flag | |
b | edit bsd disklabel | |
c | toggle the dos compatibility flag | |
d | delete a partition | 删除一个分区 |
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) | 扩展应用,专家功能 |
指令执行后磁盘多了新的
分区
,但尚未格式化
§2.5 mkfs [格式化]
全称:make file system 制作文件系统
指令:mkfs -t ext4 /dev/硬盘分区名/
执行后完成格式化,具有格式和 id,但尚未挂载
§2.6 mount [挂载]
全称:make file system 制作文件系统
指令:mount /dev/硬盘分区名 挂载目录
执行后分区具有挂载点,但重启后挂载点断开,尚未自动(永久)挂载
指令:mount -a 是自动挂载生效,每次重启从 /etc/fstab 中自动挂载
§2.7 umount [卸载]
指令:umount /dev/硬盘分区名
说明:
提示 device is busy,多为被挂载目录正在被使用,检查是否工作目录就是此目录,退出即可
§2.8 /etc/fstab [自动挂载配置]
全称:make file system 制作文件系统
3 Linux 磁盘健康及相关指令
§3.1 df [查看系统整体磁盘使用]
全称:disk free
指令:==df -lh ==
§3.2 du [查看磁盘占用]
全称:disk usage
指令:du 参数 目录 查看指定目录磁盘占用情况,不指定目录时,默认查看当前目录
说明:
参数
- -h human,阅读友好的格式展示结果
- -s 指定目录大小汇总,只显示一个大小,单位是K
- -a 显示目录下磁盘占用,包含文件
- –max-depth 指定显示的目录最大深度
- -c 同时显示明细和汇总
§3.3 其他常用只用
文件数:ls -l 目标目录 | grep “^-” | wc -l
含子目录下文件数:ls -Rl 目标目录 | grep “^d” | wc -l
子目录数:ls -l 目标目录 | grep “^d” | wc -l
含子目录下子目录数:ls -Rl 目标目录 | grep “^d” | wc -l
树状结构显示目录:tree 目录
Linux磁盘扩容
环境: Debian 11
虚拟硬盘: 原MBR格式1T容量, 最新重新又多分配了1T空间
目标:
把重新分配的磁盘空间分配到对应的分区和根目录中.
基础知识
- MBR最多只支持2T的空间,超过2T则需要使用GPT分区. 其MBR可以无损转为GPT分区格式.
- 扩容时, 无法跨分区进行扩容. 空间磁盘空间只能分配在相邻的磁盘分区上.
- 虚拟机物理内存足够的时候,日常占用比较少的时候, 默认的swap空间可以删除
- 磁盘分区的工具有很多, 选择自己喜欢使用的就可以
磁盘分区工具及命令
层级 | 类型 | 命令 | 说明 |
---|---|---|---|
0 | 硬盘/分区 | lsblk | 查看硬盘与分区信息 |
1 | 分区操作 | fdisk | 用来创建MBR分区(也可以创建GPT分区,但是支持的并不是特别完美) |
1 | 分区操作 | gdisk | 用来创建GPT分区(如果要创建GPT分区,就来使用这个命令吧) |
1 | 分区操作 | cfdisk | 图形化操作,较fdisk更直观简单的分区工具 |
1 | 分区操作 | cgdisk | 图形化操作,较gdisk更直观简单的分区工具 |
1 | 分区操作 | parted | 高级分区操作(注意操作,很多命令一键完成,没有提示,所以也就不存在后悔的余地,功能强大) |
1 | 分区操作 | growpart | 可以非常方便的把磁盘空间进行扩容的工具, 需要下载 |
2 | 分区表操作 | partprobe | 当分区表进行修改调整之后, 需要重新读取分区表 |
3 | 文件系统 | resize2fs | 在调整的磁盘空间之后, 重新对文件系统进行分配. |
实际操作
1. 转化GPT分区
此处: /dev/vda是需要操作的硬盘, /dev/vda1是需要扩容的分区
# gdisk 后跟主硬盘设备路径,不是分区路径
gdisk /dev/vda
w
y
2. 删除swap与其他分区
此处: 为了让空闲空间和扩容分区之间直接连接
# 清除swap分区配置信息, 关闭swap服务
## 查看磁盘加载情况
parted -l /dev/vda
tail -n 3 /etc/fstab
## 打开文件系统表, 将swap信息删除
vi /etc/fstab
tail -n 3 /etc/fstab
## 关闭swap
swapoff -a
# 删除其他分区
## 进入分区操作界面
parted /dev/vda
## (操作)打印分区信息
p
## (操作)删除对应分区
rm 2
## (操作)再次打印分区信息
p
## (操作)退出
quit
3. 扩容工具
groupart
安装及使用
groupart
# 安装
apt update;apt install -y cloud-utils cloud-initramfs-growroot
# 扩容
growpart /dev/vda 1
# 查看扩容后的磁盘空间
lsblk
磁盘空间扩容后, 文件系统需要对应扩容
4. 文件系统
# 查看
df -h
# 调整
resize2fs /dev/vda1