内容全为个人理解和自查资料梳理,欢迎各位大神指点!
每天学习较为零散。
day21
一、磁盘维护流程
新硬盘(虚拟机可添加)
新硬盘需要做lvm管理
数据库迁移(夜间网站停机维护):
停止数据库监控
停止前端(关闭前端数据入口)关闭端口
systemctl stop apache2
停止后端(可选)。
停止mysql数据库(防止数据还在写入、或者锁表)
备份数据库(全备)
迁移数据到新硬盘(rsync)新硬盘已经做好了Ivm,且挂载
cp /usr/local/mysql
启动数据库
启动前端入口
测试数据速写
博客功能重新恢复上线
打开数据库监控
二、磁盘和硬盘
磁盘
类型 | 全称 | 主要特点 | 适用场景 |
---|---|---|---|
IDE | Integrated Drive Electronics | 老旧并行接口,速度慢(≤133 MB/s) 不支持热插拔,兼容性极强 虚拟化中模拟传统硬件 | 兼容旧系统(如DOS/Windows 98) |
SCSI | Small Computer System Interface | 中高速接口(SAS可达12 Gbps) 支持多设备队列和热插拔 虚拟化中性能稳定(推荐选项) | 企业级服务器/数据库存储 |
SATA | Serial ATA | 主流机械硬盘接口(6 Gbps) 性价比高,容量大 延迟高于NVMe | 家用PC/冷数据存储 |
NVMe | Non-Volatile Memory Express | PCIe通道直连,超低延迟(3.0 x4可达4 GB/s) 支持高并发IOPS(数万级) 需硬件支持 | 高性能需求(AI/高频交易/虚拟机宿主盘) |
硬盘
特性 | 机械硬盘(HDD) | 固态硬盘(SSD) |
---|---|---|
存储原理 | 磁性盘片 + 机械磁头读写 | NAND 闪存芯片(无机械部件) |
速度(典型值) | 80-160 MB/s(SATA HDD) | 500-3500 MB/s(SATA/NVMe SSD) |
随机读写(IOPS) | 50-200 IOPS(7200 RPM) | 50,000-500,000+ IOPS |
延迟 | 毫秒级(ms) | 微秒级(µs) |
抗震性 | 低(怕震动、跌落) | 高(无机械部件) |
噪音 | 有(磁头寻道声) | 无(静音) |
功耗 | 较高(5-7W) | 较低(2-5W) |
寿命 | 理论无限(磁头磨损) | 有限(P/E 擦写次数) |
容量 | 大(1TB-20TB+) | 较小(128GB-8TB) |
价格($/GB) | 低(约 $0.02/GB) | 较高(约 0.08−0.2/GB) |
接口 | SATA, SAS | SATA, NVMe (PCIe), U.2 |
适用场景 | 大容量存储、冷数据备份 | 系统盘、数据库、游戏、高性能计算 |
三、Linux 磁盘命名规则
Linux 磁盘设备命名遵循 /dev/[前缀][字母][数字]
的格式
/dev/
:设备文件目录[前缀]
:表示设备类型[字母]
:表示设备序号[数字]
:表示分区号(如有)
物理磁盘命名规则
接口类型 | 命名格式 | 示例 | 说明 |
---|---|---|---|
SATA/SCSI/SAS | /dev/sdX | /dev/sda | sd 表示标准块设备,X 为字母(a-z),按内核检测顺序分配 |
NVMe | /dev/nvmeXnY | /dev/nvme0n1 | X 为控制器编号(从0开始),Y 为命名空间编号(通常为1) |
IDE(已淘汰) | /dev/hdX | /dev/hda | 现代Linux系统已统一改为sdX 命名 |
USB/移动设备 | /dev/sdX | /dev/sdc | 与SATA规则相同,按插入顺序分配字母 |
虚拟化环境磁盘命名
虚拟化类型 | 命名格式 | 示例 | 说明 |
---|---|---|---|
KVM/QEMU | /dev/vdX | /dev/vda | vd 表示虚拟磁盘,常见于虚拟机环境 |
云服务器(AWS等) | /dev/xvdX 或 /dev/nvmeXnY | /dev/xvda | 云厂商可能自定义命名(如AWS使用xvda ,部分云NVMe仍用标准命名) |
NVMe特殊命名
NVMe设备采用更复杂的命名:
/dev/nvme[控制器号]n[命名空间号]p[分区号]
- 示例:
/dev/nvme0n1
:第一个控制器的第一个命名空间/dev/nvme0n1p1
:上述设备的第一个分区
四、虚拟机ubuntu系统新磁盘分区
(一)、查看当前分区
root@xun-virtual-machine:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 74.3M 1 loop /snap/core22/1612
loop1 7:1 0 4K 1 loop /snap/bare/5
loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.9M 1 loop /snap/snap-store/1113
loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom /media/xun/Ubuntu 22.04.5 LTS amd64root@xun-virtual-machine:~# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb#分区类型: gpt
root@xun-virtual-machine:~# fdisk -l
磁盘名 容量大小 扇区数量
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DA4CF18B-4933-4267-98FC-3BA281C856A6Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 1054719 1050624 513M EFI System
/dev/sda3 1054720 41940991 40886272 19.5G Linux filesystemDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 20G 0 disk
(二)、分区
小于2TB用fdisk 大于2TB用gdisk
1、DOS (MBR) 相关命令
-
a
:切换分区的“可启动”标志(用于设置引导分区)。 -
b
:编辑嵌套的 BSD 磁盘标签(高级功能)。 -
c
:切换 DOS 兼容性标志(影响旧系统兼容性)。
2、通用分区操作
-
d
:删除分区。 -
F
:列出未分区的空闲空间。 -
l
:显示已知的分区类型列表(如 Linux swap、NTFS 等)。 -
n
:创建新分区(需指定主分区/扩展分区)。 -
p
:打印当前分区表(查看分区信息)。 -
t
:更改分区类型(如将分区设为 Linux 文件系统或 swap)。 -
v
:验证分区表(检查错误)。 -
i
:显示某个分区的详细信息。
3、其他功能
-
m
:显示帮助菜单(即当前列表)。 -
u
:切换显示单位(如扇区/柱面)。 -
x
:进入专家模式(高级操作,谨慎使用)。
4、脚本与磁盘标签
-
I
:从脚本文件加载分区布局。 -
O
:将当前分区布局导出为脚本文件。
5、保存与退出
-
w
:保存分区表并退出(生效修改)。 -
q
:不保存修改,直接退出。
6、创建新分区表
-
g
:创建空的 GPT 分区表(适用于大容量磁盘或 UEFI)。 -
G
:创建空的 SGI (IRIX) 分区表(特殊用途)。 -
o
:创建空的 DOS (MBR) 分区表(传统 BIOS 兼容)。 -
s
:创建空的 Sun 分区表(Solaris 系统使用)。
(三)、主分区和扩展分区
MBR分区类型可有四个主分区、扩展分区,从编号5开始是逻辑分区
GPT分区类型可有128个主分区
主分区(Primary Partition)
- 定义:直接存储数据的独立分区,可安装操作系统(如 Windows、Linux)。
- 特点:
- 一个硬盘最多只能有 4 个主分区(MBR 限制)。
- 可以直接格式化并挂载使用(如
/dev/sda1
、/dev/sda2
)。 - 主分区可以直接用于 启动操作系统(如
/boot
分区)。
- 适用场景:
- 安装操作系统(如
/
根分区、/boot
引导分区)。 - 存储重要数据(如单独的数据盘)。
- 安装操作系统(如
扩展分区(Extended Partition)
- 定义:一种特殊的分区,本身不能直接存储数据,而是用来 容纳逻辑分区(Logical Partition)。
- 特点:
- 一个硬盘 最多只能有 1 个扩展分区(MBR 限制)。
- 扩展分区 不能直接使用,必须在其内部创建 逻辑分区 才能存储数据。
- 逻辑分区的编号从
5
开始(如/dev/sda5
、/dev/sda6
)。 - 突破 4 个分区的限制:通过扩展分区 + 逻辑分区,可以创建 超过 4 个分区。
- 适用场景:
- 当需要 超过 4 个分区 时(如多个数据盘)。
- 不需要直接启动系统,仅用于存储数据。
(四)、分区过程
分区
root@xun-virtual-machine:~# fdisk /dev/sdb Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xf4811a33.Command (m for help): mHelp:DOS (MBR)a toggle a bootable flagb edit nested BSD disklabelc toggle the dos compatibility flagGenericd delete a partitionF list free unpartitioned spacel list known partition typesn add a new partitionp print the partition tablet change a partition typev verify the partition tablei print information about a partitionMiscm print this menuu change display/entry unitsx extra functionality (experts only)ScriptI load disk layout from sfdisk script fileO dump disk layout to sfdisk script fileSave & Exitw write table to disk and exitq quit without saving changesCreate a new labelg create a new empty GPT partition tableG create a new empty SGI (IRIX) partition tableo create a new empty DOS partition tables create a new empty Sun partition tableCommand (m for help):
#打印当前分区
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33#创建新分区
Command (m for help): n
Partition typep primary (0 primary, 0 extended, 4 free)e extended (container for logical partitions)#创建主分区
Select (default p): p#回车默认从1开始
Partition number (1-4, default 1): #回车默认从当前扇区开始
First sector (2048-41943039, default 2048): # +2G 给主分区2G内存
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +2GCreated a new partition 1 of type 'Linux' and of size 2 GiB.#打印当前分区
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux#创建新分区
Command (m for help): n
Partition typep primary (1 primary, 0 extended, 3 free)e extended (container for logical partitions)#创建扩建分区
Select (default p): e#回车默认2
Partition number (2-4, default 2): #回车默认从当前扇区开始
First sector (4196352-41943039, default 4196352): #回车默认将剩余内容全部给扩建分区
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-41943039, default 41943039): Created a new partition 2 of type 'Extended' and of size 18 GiB.#打印当前分区
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 41943039 37746688 18G 5 Extended#新建分区(主分区和扩展分区名额已用完(MBR 限制),只能在扩展分区内创建逻辑分区)
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5#回车从当前连续扇区开始
First sector (4198400-41943039, default 4198400): #给第一个逻辑分区分10G内存
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4198400-41943039, default 41943039): +10GCreated a new partition 5 of type 'Linux' and of size 10 GiB.#打印
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 41943039 37746688 18G 5 Extended
/dev/sdb5 4198400 25169919 20971520 10G 83 Linux#新建分区
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 6
First sector (25171968-41943039, default 25171968): #回车将剩余内存全部给第二个逻辑分区
Last sector, +/-sectors or +/-size{K,M,G,T,P} (25171968-41943039, default 41943039): Created a new partition 6 of type 'Linux' and of size 8 GiB.Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 41943039 37746688 18G 5 Extended
/dev/sdb5 4198400 25169919 20971520 10G 83 Linux
/dev/sdb6 25171968 41943039 16771072 8G 83 Linux#保存分区并退出
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
#查看分区信息
root@xun-virtual-machine:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 74.3M 1 loop /snap/core22/1612
loop1 7:1 0 4K 1 loop /snap/bare/5
loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.9M 1 loop /snap/snap-store/1113
loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 10G 0 part
└─sdb6 8:22 0 8G 0 part
sr0 11:0 1 4.4G 0 rom /media/xun/Ubuntu 22.04.5 LTS amd64#更新分区信息
root@xun-virtual-machine:~# partx /dev/sdb
NR START END SECTORS SIZE NAME UUID1 2048 4196351 4194304 2G f4811a33-012 4196352 41943039 37746688 18G f4811a33-025 4198400 25169919 20971520 10G f4811a33-056 25171968 41943039 16771072 8G f4811a33-06#分区类型是dos
root@xun-virtual-machine:~# fdisk -l /dev/sdb
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 41943039 37746688 18G 5 Extended
/dev/sdb5 4198400 25169919 20971520 10G 83 Linux
/dev/sdb6 25171968 41943039 16771072 8G 83 Linux
parted指令修改磁盘分区表类型
(通常用gdisk修改磁盘表类型)
mklabel gpt 会清空分区,需用户手动备份,且仅创建 GPT 标签
先删除原dos类型磁盘里的分区
root@xun-virtual-machine:~# fdisk /dev/sdbDevice Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 41943039 37746688 18G 5 Extended
/dev/sdb5 4198400 25169919 20971520 10G 83 Linux
/dev/sdb6 25171968 41943039 16771072 8G 83 Linux
root@xun-virtual-machine:~# fdisk /dev/sdbWelcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): mHelp:DOS (MBR)a toggle a bootable flagb edit nested BSD disklabelc toggle the dos compatibility flagGenericd delete a partitionF list free unpartitioned spacel list known partition typesn add a new partitionp print the partition tablet change a partition typev verify the partition tablei print information about a partitionMiscm print this menuu change display/entry unitsx extra functionality (experts only)ScriptI load disk layout from sfdisk script fileO dump disk layout to sfdisk script fileSave & Exitw write table to disk and exitq quit without saving changesCreate a new labelg create a new empty GPT partition tableG create a new empty SGI (IRIX) partition tableo create a new empty DOS partition tables create a new empty Sun partition table#分别删除6、5、2、1分区
Command (m for help): d
Partition number (1,2,5,6, default 6): Partition 6 has been deleted.Command (m for help): d
Partition number (1,2,5, default 5): Partition 5 has been deleted.Command (m for help): d
Partition number (1,2, default 2): Partition 2 has been deleted.Command (m for help): d
Selected partition 1
Partition 1 has been deleted.Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4811a33Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.root@xun-virtual-machine:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 74.3M 1 loop /snap/core22/1612
loop1 7:1 0 4K 1 loop /snap/bare/5
loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.9M 1 loop /snap/snap-store/1113
loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom /media/xun/Ubuntu 22.04.5 LTS amd64
用parted命令将磁盘类型修改为gpt
root@xun-virtual-machine:~# parted /dev/sdb
GNU Parted 3.4
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.#打印分区表信息和类型
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number Start End Size Type File system Flags#修改
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you
want to continue?
Yes/No? y #打印分区表信息和类型
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number Start End Size File system Name Flags(parted)
用gdisk指令修改磁盘分区
gdisk命令将dos类型转为gpt类型会保留分区数据,精细操作、无损转换
root@xun-virtual-machine:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.8Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 03BE9DAE-41A2-4DCB-9E45-6B8F352D6BAA
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)Number Start (sector) End (sector) Size Code Name#用gdisk命令给gpt类型磁盘分区
root@xun-virtual-machine:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.8Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu#添加新分区
Command (? for help): n#回车 默认
Partition number (1-128, default 1): #回车 默认
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: #分2GB
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2GCurrent type is 8300 (Linux filesystem)#回车 默认
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'#打印分区信息
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 03BE9DAE-41A2-4DCB-9E45-6B8F352D6BAA
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)Number Start (sector) End (sector) Size Code Name1 2048 4196351 2.0 GiB 8300 Linux filesystem#添加新分区
Command (? for help): n#回车 默认
Partition number (2-128, default 2): #回车 默认
First sector (34-41943006, default = 4196352) or {+-}size{KMGTP}: #分5GB
Last sector (4196352-41943006, default = 41943006) or {+-}size{KMGTP}: +5G#回车 默认
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'#打印分区信息
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 03BE9DAE-41A2-4DCB-9E45-6B8F352D6BAA
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 27262909 sectors (13.0 GiB)Number Start (sector) End (sector) Size Code Name1 2048 4196351 2.0 GiB 8300 Linux filesystem2 4196352 14682111 5.0 GiB 8300 Linux filesystem#将剩余内存给第三个分区
Command (? for help): n
Partition number (3-128, default 3):
First sector (34-41943006, default = 14682112) or {+-}size{KMGTP}:
Last sector (14682112-41943006, default = 41943006) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'#打印分区信息
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 03BE9DAE-41A2-4DCB-9E45-6B8F352D6BAA
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)Number Start (sector) End (sector) Size Code Name1 2048 4196351 2.0 GiB 8300 Linux filesystem2 4196352 14682111 5.0 GiB 8300 Linux filesystem3 14682112 41943006 13.0 GiB 8300 Linux filesystem#保存退出
Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
root@xun-virtual-machine:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 74.3M 1 loop /snap/core22/1612
loop1 7:1 0 4K 1 loop /snap/bare/5
loop2 7:2 0 271.2M 1 loop /snap/firefox/4848
loop3 7:3 0 505.1M 1 loop /snap/gnome-42-2204/176
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.9M 1 loop /snap/snap-store/1113
loop6 7:6 0 38.8M 1 loop /snap/snapd/21759
loop7 7:7 0 500K 1 loop /snap/snapd-desktop-integration/178
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 5G 0 part
└─sdb3 8:19 0 13G 0 part
sr0 11:0 1 4.4G 0 rom /media/xun/Ubuntu 22.04.5 LTS amd64
root@xun-virtual-machine:~#
用gdisk命令将gpt改为dos
root@xun-virtual-machine:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.8Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.# 进入恢复/转换模式
Command (? for help): r# 将 GPT 转换为 MBR
Recovery/transformation command (? for help): g#保存退出
MBR command (? for help): wConverted 3 partitions. Finalize and exit? (Y/N): y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.root@xun-virtual-machine:~# fdisk -l /dev/sdb
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 14682111 10485760 5G 83 Linux
/dev/sdb3 14682112 41943006 27260895 13G 83 Linux
五、主流文件系统
1、Linux 主流文件系统
文件系统 | 特点 | 适用场景 |
---|---|---|
ext4 | 默认文件系统,稳定高效,支持日志、大文件(16TB)、快照(实验性) | 通用 Linux 系统 |
XFS | 高性能(尤其大文件并发读写),支持在线扩容、崩溃恢复快 | 服务器、数据库、大文件存储 |
Btrfs | 支持写时复制(CoW)、快照、压缩、RAID 集成,但稳定性待优化 | 实验性需求(如快照备份) |
ZFS | 高级功能(数据校验、压缩、RAID-Z),但内存占用高,需额外安装 | NAS/企业存储(非默认内核支持) |
2、Windows 主流文件系统
文件系统 | 特点 | 适用场景 |
---|---|---|
NTFS | 支持 ACL 权限、加密、压缩、日志,兼容大文件(16EB) | 现代 Windows 系统盘/数据盘 |
FAT32 | 兼容性强(UEFI/旧设备),但单文件 ≤4GB,无权限控制 | U 盘、SD 卡、跨平台传输 |
exFAT | 改进版 FAT32,支持大文件(16EB),无日志,适合闪存 | 大容量移动设备(如 SSD 移动硬盘) |
3、macOS 主流文件系统
文件系统 | 特点 | 适用场景 |
---|---|---|
APFS | 优化 SSD 性能,支持快照、加密、空间共享(多个卷共用存储池) | macOS 10.13+ 系统盘 |
HFS+ | 旧版文件系统,兼容老设备,逐渐被淘汰 | 旧版 macOS(10.12 及更早) |
4、跨平台/专用文件系统
文件系统 | 特点 | 适用场景 |
---|---|---|
FAT32 | 几乎全平台兼容(Win/Linux/macOS/游戏机),但功能受限 | U 盘、相机 SD 卡 |
exFAT | 跨平台 + 大文件支持,无日志 | 大容量移动设备(如外接硬盘) |
NFS | 网络文件系统,支持远程挂载 | Linux/Unix 服务器共享 |
SMB/CIFS | Windows 网络共享协议,跨平台访问 | Windows/Linux/macOS 文件共享 |
六、mkfs格式化文件系统
#格式化之前,将/dev/sdb分区重新分为一个分区
#输入mkfs按Tab 查看可格式化的文件类型
root@xun-virtual-machine:~# mkfsmkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat #下载xfs文件类型
root@xun-virtual-machine:~# apt install xfsprogsroot@xun-virtual-machine:~# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=1, sparse=1, rmapbt=0= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=5242624, 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@xun-virtual-machine:~# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashf 4.0 0 100% /snap/core22/1612
loop1 squashf 4.0 0 100% /snap/bare/5
loop2 squashf 4.0 0 100% /snap/firefox/4848
loop3 squashf 4.0 0 100% /snap/gnome-42-2204/176
loop4 squashf 4.0 0 100% /snap/gtk-common-themes/1535
loop5 squashf 4.0 0 100% /snap/snap-store/1113
loop6 squashf 4.0 0 100% /snap/snapd/21759
loop7 squashf 4.0 0 100% /snap/snapd-desktop-integration/178
sda
├─sda1
├─sda2 vfat FAT32 93B7-EECE 505.9M 1% /boot/efi
└─sda3 ext4 1.0 c1b5a816-3361-4198-824d-9eccd35fb055 6.1G 63% /
sdb
└─sdb1 xfs ec06f339-9c80-49fa-8c4d-14726b8d274a
sr0 iso9660 Joliet Extens Ubuntu 22.04.5 LTS amd64 2024-09-11-14-37-52-00 0 100% /media/xun/Ubuntu 22.04.5 LTS amd64
查看xfs文件系统信息
root@xun-virtual-machine:~# xfs_info /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=1, sparse=1, rmapbt=0= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=5242624, 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
参数 | 值/状态 | 说明 |
---|---|---|
isize | 512 | inode 大小(字节),默认 512 字节足够。 |
agcount | 4 | Allocation Group(分配组)数量,影响并行性能。 |
agsize | 1310656 blks | 每个分配组的块数(块大小 bsize=4096 ,即 4KiB)。 |
crc | 1 (enabled) | 启用元数据校验和,提高数据完整性。 |
finobt | 1 (enabled) | 启用空闲 inode B+树,加速文件创建。 |
reflink | 1 (enabled) | 支持写时复制(CoW),适合快照和备份。 |
log | internal | 日志(journal)内置于文件系统中,无需额外分区。 |
bsize | 4096 | 数据块大小(4KiB),与大多数 SSD 的物理块大小对齐。 |
sectsz | 512 | 磁盘扇区大小(通常为 512B 或 4K)。 |
七、mount指令临时和永久挂载
磁盘分区有文件系统才能挂载目录,之后就能用该分区存储数据了
#临时挂载
# mount命令 磁盘分区 需要挂载到的目录
root@xun-virtual-machine:~# mount /dev/sdb1 /a1/my_sdb1/
#永久挂载
#编辑 添加
/dev/sdb1:设备路径
/a1/my_sdb1:挂载点目录
xfs:文件系统类型
defaults:挂载选项(包括 rw,relatime 等)
0 0:不备份(dump)和不检查(fsck)root@xun-virtual-machine:~# vim /etc/fstab /dev/sdb1 /a1/my_sdb1 xfs defaults 0 0#验证当前挂载状态
root@xun-virtual-machine:/a1/my_sdb1# mount | grep /dev/sdb1
/dev/sdb1 on /a1/my_sdb1 type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)#测试永久挂载#卸载并重新挂载
root@xun-virtual-machine:/a1# umount /dev/sdb1#重新挂载所有 /etc/fstab 中的条目
root@xun-virtual-machine:/a1# mount -a#验证挂载
root@xun-virtual-machine:/a1# ls /a1/my_sdb1/
test.txt#检查挂载的文件系统类型和空间
root@xun-virtual-machine:/a1# df -hT | grep /dev/sdb1
/dev/sdb1 xfs 20G 175M 20G 1% /a1/my_sdb1
取消挂载时的报错
在挂载目录
#此时退出当前目录即可取消挂载
root@xun-virtual-machine:/a1/my_sdb1# umount /a1/my_sdb1/
umount: /a1/my_sdb1/: target is busy.
不在挂载目录
#有进程正在访问挂载点
root@xun-virtual-machine:~# umount /a1/my_sdb1/
umount: /a1/my_sdb1/: target is busy.
用lsof指令查看目录下的进程
root@xun-virtual-machine:~# lsof /a1/my_sdb1/COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2486 root cwd DIR 8,17 22 128 /a1/my_sdb1
root@xun-virtual-machine:~#
延迟卸载
#如果无法立即终止进程,可尝试延迟卸载(内核会在空闲时自动卸载)
umount -l /a1/my_sdb
立即卸载
#强制结束占用进程
sudo kill -9 <PID>
八、dd指令
场景 | 命令示例 |
---|---|
磁盘备份 | dd if=/dev/sda of=/backup.img bs=4M status=progress |
磁盘克隆 | dd if=/dev/sdb of=/dev/sdc bs=4M status=progress |
创建空文件 | dd if=/dev/zero of=file.bin bs=1G count=1 |
安全擦除 | dd if=/dev/urandom of=/dev/sdb bs=1M status=progress |
测试速度 | dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct |
找到磁盘中占内存的大文件并删除
#在a1目录下创建一个3G的空文件
root@xun-virtual-machine:/a1# dd if=/dev/zero of=/a1/3Gfile.txt bs=1G count=3
3+0 records in
3+0 records out
3221225472 bytes (3.2 GB, 3.0 GiB) copied, 11.0103 s, 293 MB/s#查看磁盘信息/dev/sda3 20G 15G 3.1G 83% 使用83%
root@xun-virtual-machine:/a1# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 387M 1.7M 386M 1% /run
/dev/sda3 20G 15G 3.1G 83% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sdb1 20G 175M 20G 1% /a1/my_sdb1
/dev/sda2 512M 6.1M 506M 2% /boot/efi
tmpfs 387M 92K 387M 1% /run/user/1000
/dev/sr0 4.5G 4.5G 0 100% /media/xun/Ubuntu 22.04.5 LTS amd64#筛选找到大于2g的文件
root@xun-virtual-machine:/a1# find / -size +2G -type f
/swapfile
/a1/3Gfile.txt
/media/xun/Ubuntu 22.04.5 LTS amd64/casper/filesystem.squashfs
/proc/kcore#删除
root@xun-virtual-machine:/a1# rm 3Gfile.txt #/dev/sda3 20G 12G 6.1G 67% 使用67%
root@xun-virtual-machine:/a1# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 387M 1.7M 386M 1% /run
/dev/sda3 20G 12G 6.1G 67% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sdb1 20G 175M 20G 1% /a1/my_sdb1
/dev/sda2 512M 6.1M 506M 2% /boot/efi
tmpfs 387M 92K 387M 1% /run/user/1000
/dev/sr0 4.5G 4.5G 0 100% /media/xun/Ubuntu 22.04.5 LTS amd64