磁盘管理

6712 字
34 分钟
磁盘管理

磁盘管理#

[TOC]



01.磁盘初认知#

硬盘种类#

  • 内存: 用于临时存放,断电后丢失数据

  • 磁盘: 永久保存

    • 机械磁盘转速: 5400 7200rpm(每分钟多少转)(家用)

      • (企业)10k 15k rpm(转速越快读写速度越快、存储越小)
    • 固态硬盘(SSD): 集成电路与芯片

对比#

接口类型#

      IDE 已淘汰

      **SCSI **

- **一些高端设备还在使用**
- 性能好,但接口不统一!

      SATA  速度慢,接口统一

- 短的一端传数据, 长的接电源
- **家用笔记本、台式机标配** **
- **SATA**接口,有机械,有固态!

  • 上图接口是SATA,但是到底是但到底是机械硬盘,还是固态硬盘,我也不太清楚?*

    - 我还特意从网上找了一张SATA接口的固态硬盘!

  • 再来一张SATA接口的机械硬盘!

      SAS ** 速度快,接口统一.

- 可以说是**SCSI**和**SATA**的结合体
- **企业标配 **

- **图片对比**

      PCIe   速度最快!

**准确来说其实是,通用高速扩展总线接口!

- 经典接口形式:
- M.2(走 PCIe 通道)
- 适用笔记本,主流台式机.
- 长条形

- U.2
- 适用服务器、数据中心、高端工作站
- U.2 接口的 SSD 通常是基于 PCIe 总线 + NVMe 协议的.

- PCIe 插槽(加卡式 SSD)

接下来为大家详细介绍这款我曾经买过的SSD固态硬盘.
**品牌:** * **GW3500*
**存储容量:** ** 1TB**
PCIe 3.0 NVMe M.2

它说明了以下几点:

项目含义
M.2这是物理接口规格
PCIe 3.0表示它通过
NVMe表示它使用

🔍* 它是不是 PCIe 接口?*

是的!它是 PCIe 接口的 SSD.

  • 虽然我们常说“M.2 接口”,但这个 M.2 插槽内部其实可以走两种总线:

    • SATA总线接口:速度较慢(约 550 MB/s)

    • PCIe总线接口:速度快得多(PCIe 3.0 x4 可达 ~3500 MB/s)

而你的这块硬盘明确标注了 “PCIe 3.0 NVMe”,说明它是 基于 PCIe 总线接口 + NVMe 协议 的高性能 SSD.

FROM Qwen3(通义千问)

企业配置:#

磁盘大小

SAS接口 300G 600G 900G X6 X8 X12块

SAS+SATA结合  # 热点存储 用户经常访问的放入SAS盘、不常访问放入SATA

服务器类别&高度&路数:#

“U”,用于描述机架式设备的高度.

  • 1U 的高度等于 1.75英寸(4.45厘米).

“路数” = 物理 CPU 插槽数量(Socket Count)

单路(1P / 1 Socket):主板上只有 1 个 CPU 插槽 → 装 1 颗物理 CPU

双路(2P / 2 Sockets):主板上有 2 个 CPU 插槽 → 可装 2 颗物理 CPU

四路(4P):高端服务器,支持 4 颗 CPU

✅ 行业通用缩写:

P = 1 Processor(单路) P = 2 Processors(双路)

服务器可以根据其外形尺寸分为以下几类:

  • **第一种: 机架式服务器

- *根据服务器的高度**以**U**为单位来定义*.

常见的有1U、2U、4U等规格,其中:

- 中间隔开,需要散热!
- **1U服务器**:最紧凑,适合空间有限的数据中心.

- **2U服务器**:比1U高,提供更多内部空间

- **4U及以上**:提供大量的扩展能力
  • **第二种: 刀片服务器

刀片服务器是一种专为节省空间而设计的服务器架构,多个“刀片”(即实际的服务器模块)可以插入到一个刀片机箱中.

  • **第三种: 塔式服务器

类似于普通台式电脑的外形,但性能和扩展性更强.

  • 不使用U高度来衡量,因为它们通常不安装在机架内.

内部结构#

  • 三个盘子六个面,六个面都能够写数据.六个磁头.

盘片: 实际存放数据的地方

磁头: 用来写入和读取数据的

  • 盘面数量==磁头数量

磁道: 磁盘中的圆环行区域

  • 从外面到里面 最外面是0磁道

扇区: 磁道上最小的存储单位

  • 默认大小为512字节

柱面: 不同盘片上的相同的磁道组成的圆柱体

  • 磁盘默认是按照柱面进行读写的

    • 一个磁道读完了,切到另一个盘片的相同磁道!

    • 从这个磁头切换到另一盘片的磁头

    • 磁头切换速度快

扩展(了解即可)
**磁头臂:** 带动读/写磁头,将磁头移动到指定位置
**主轴:** 转动盘片,将盘片上的指定位置移动到读/写磁头下
**控制电路:** 控制硬盘的速度,磁头臂的移动,向磁头下发命令等.

02.RAID技术#

#独立磁盘冗余阵列
**将同一阵列中的多个磁盘视为单一的虚拟磁盘**
**数据是以**分段的方式**顺序存放**于磁盘阵列中**
举个通俗例子* 🌰*
假设你有一个 120 MB 的视频文件,要存到一个由 3 块硬盘组成的 RAID 阵列中(比如 RAID 0).
RAID 控制器会这样做:
把 120 MB 文件切成 3 个 40 MB 的数据块**(这就是“分段”)**;
也就是数据条带化
**然后按顺序**:
第 1 块(0–40 MB)→ 写入 硬盘1
第 2 块(40–80 MB)→ 写入 硬盘2
第 3 块(80–120 MB)→ 写入 硬盘3
如果还有更多数据,就继续循环:第4块又回到硬盘1,依此类推.

特点:

  • 获得更大的容量

  • 获得更高的性能

    • 分段存储,分段读写

    • 速度比整块的读写快!

  • 获得**更好的安全性 **

上面三个特点根据所选的RAID级别不同, 有所区别, 一般无法同时满足这三个点

RAID0#

数据条带化,可以将数据以分段的方式顺序存放于磁盘阵列中

  • 至少两块盘.

    • 1块盘也能做RAID0

      • 如果只有1个盘,相当于没有将数据条带化.

      • 所有的读取都在一块盘上进行!

  • 全部用来读写,没有备份,没有校验.

    • 适用于不要求安全,只要求速度的业务场景
  • 使用率 n/n=1 100%

  • 不允许坏盘

RAID1#

可靠性最高.双写,读取的时候随机读取,看一下哪个空闲就读去哪个.互为镜像.

  • 两块盘**(偶数盘)**

  • 适用于只要求安全,不要求速度(系统、监控)

  • 互为镜像,使用率50%

  • 只允许坏一块盘

RAID3#

当有数据出错时,校验盘会成为整个硬盘性能的瓶颈.奇偶校验

  • 至少3块盘

  • 专门拿一个盘做校验

  • 使用率 n-1/n

  • 只允许坏1块盘

RAID5#

把校验值分散在各个盘的不同位置.奇偶校验

  • 至少3块盘

  • 分散了负载,有较好的性能!

  • 适用于比较稳定的业务场景.

  • 使用率 n-1/n

  • 只允许坏1块盘

RAID3和RAID5比较像,5突破了校验的瓶颈,校验值分散开来.性能较好!

RAID6#

RAID6和RAID5比较像,RAID6增加了1块校验盘,相当于两块校验盘.

  • 至少4块盘

    • 既然用RAID6了,那肯定要多加几块盘,组成磁盘阵列!
  • 非常稳定

  • 使用率 n-2/n

  • 允许坏2块盘

RAID10#

RAID1和RAID0结合体.先镜像,后条带化!

左边两块盘相同,他们是镜像出来的.

  • 至少4块盘

  • 高并发组合场景

  • 使用率50%

  • 组内最多允许坏一块,组间可以坏两块盘

    • 不能是一个组中的两块!

RAID50#

RAID5和RAID0结合体.先做RAID5,后加在一起

  • 其实这个RAID0,可以忽略,相当于就是两个RAID5

  • 至少6块盘

    • 因为做一个RAID5至少3块盘.
  • 使用率 n-2/n

    • 可以理解为两个校验盘
  • 组内最多允许坏一块,组间可以坏两块盘

    • 不能是一个组中的两块!

RAID级别对比:**#

面试题:

RAID 级别数据保护方式硬盘数量容量使用率可坏几块盘
RAID0不安全2(1块也行)10
RAID1镜像2(偶数即可)1/21
RAID3校验至少3块(n-1)/n1
RAID5校验至少3块(n-1)/n1
RAID6校验至少4块(n-2)/n2
RAID10镜像至少4块1/22(
RAID50校验至少6块(n-2)/n2(

对于服务器如果不做RAID,不能安装操作系统. 在主板上有个RAID卡(阵列卡)

企业需求:

  1. 正常组RAID

  2. 没有RAID需求 (安装系统)

  3. 拿一块盘直接做个RAID0即可.

如何做RAID?

针对不同的服务器型号搜索即可

RAID2.0#

相比传统的RAID

  1. 虚拟化

运用虚拟化的技术,把物理磁盘虚拟化出来,能够实现所有的数据,都能均匀分散的存储在各个磁盘里面,而我们传统的磁盘是做不到的(通常是磁盘组的形式来存放的).

  1. 快速重构

重构的时候是所有的硬盘,所有的磁盘都会参与这个重构.

  1. 自动负载均衡

**可以很好地实现负载均衡.**当你有大量的数据要去读取,恢复等…是所有的磁盘都会参与这个工作的.更够提高更高的性能.

  1. 系统性能提升

  2. 自愈合(恢复)

自愈合,如果有错误的话,就会自动的去校验,重构,从而进行相应的恢复.

重构速度大大提升,并且所有的盘都会参与当中.


03.磁盘分区#

磁盘及分区命名#

磁盘文件放在/dev/下面

磁盘接口:

**SAS/SATA/SCSI 命名:sd开头

一个虚拟机完全可以挂载多个硬盘
**设备命名规则:**
在 Linux 系统中,第一块硬盘通常命名为** /dev/sda**,第二块为 **/dev/sdb**,依此类推 /dev/sd[a-z] 最多到 /dev/sdz,之后会变成 /dev/sdaa, /dev/sdab...;
**这些设备名由检测到的磁盘顺序自动分配.**
**数量限制:**
理论上可以挂载多块,但受限于,内存和I/O性能开销.

  • 主分区(primary)

    • 一定要有,最少3个,最多4个

    • 用于存放数据

  • 扩展分区(extend)

    • 最多1个

    • **可以没有,硬盘都做成主分区

    • 无法直接使用,依托于逻辑分区

  • 逻辑分区(logical)

    • 用于存放具体的数据

    • 从5开始

    • 需要先寻扩展分区,最后才找到逻辑分区

      • 速度会慢一点
*添加的这块硬盘为**sda**
不做扩展分区,/dev/sda4就是第④个主分区
有了扩展分区,就有了对应的逻辑分区、
**这个扩展分区,就是之前的第④个主分区**
只不过把这个主分区,拆成了许多逻辑分区而已!
**逻辑分区从5开始**
最大支持4个主分区
最大支持3个主分区+1个扩展分区
+n个逻辑分区
**磁盘的名称:**
第一块磁盘: sda
  第2个主分区: sda2
第二块磁盘: sdb
      第1个主分区: sdb1
      第1个逻辑分区: sdb5
案例
第二块硬盘的第1个主分区: /dev/sdb1
第三块硬盘的第2个逻辑分区: /dev/sdc6

mbr VS gpt(分区表)#

mbr:我们上面讲的各种分区(主分区,逻辑分区等等),这些概念都存在于mbr分区表中,但是随着大容量(超过2T的来说)硬盘出现,这个mbr它就用不了了.

- 笔记本,磁盘,硬盘默认都是这种**MBR格式**
- 支持小于2TB的硬盘分区、使用**fdisk**进行分区
- fdisk只支持mbr分区表

**gpt:支持更大容量的硬盘,它基本上不用再来区分那些主分区的事情,绝对够用了.

- **GPT格式最大支持128个主分区**
- GPT格式支持大于2TB硬盘分区、使用**parted**进行分区

磁盘分区#

①插入磁盘#

第一步: 插入一个小于2T的磁盘

  1. 虚拟机vmware

  2. 添加磁盘需要重启

  • 如何查看我们刚才插入的硬盘呢???
**lsblk**
推荐这个命令
下面有详细的介绍
**fdisk -l**
**这个也能查看**
别忘了-l选项
下面也有详细的介绍
  1. 云服务器增加一块磁盘

  2. 后面讲云服务器会讲云如何增加磁盘

  3. 物理服务器增加磁盘

  4. 支持热插拔

  5. 插入服务器,使用fdisk命令可以直接看到新的磁盘

  6. 不需要重启

​②🧣fdisk分区#

别忘记重启系统 reboot

  • 适用于小于2TB磁盘

  • 只支持mbr分区表

fdisk -l#

查看当前的系统分区情况:

fdisk /dev/sdb#

Terminal window
[root@oldboyedu ~]#fdisk /dev/sdb
Command (m for help): m # 帮助显示菜单
  d   delete a partition   # 删除分区
  l   list known partition types  # 显示分区类型
  n   add a new partition   # 创建分区
  p   print the partition table   # 输出分区表
Save & Exit
  w   write table to disk and exit # 保存分区并退出
  q   quit without saving changes  # 退出不保存

  • 这样就能够进行删除了!

  • 第一块主分区sdb1

  • 第二块和第三块主分区sdb2,sdb3

  • 再通过p查看一下

    • 也可以通过d进行删除

    • 或者q退出不保存重新来一次

[root@oldboyedu ~]#fdisk /dev/sdb

Command (m for help):** n ** # 添加分区

Partition type

p primary (0 primary, 0 extended, 4 free)

e extended (container for logical partitions)

Select (default p): #默认主分区

Using default response p.

Partition number (1-4, default 1): # 输入分区编号 默认1

First sector (2048-2097151999, default 2048): # 开始的大小 默认即可

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151999, default 2097151999): +10G # 给10G空间

Command (m for help): p # 输出分区表信息

Device Boot Start End Sectors Size Id Type

/dev/sdb1 2048 20973567 20971520 10G 83 Linux # 第一个分区

#继续划分第二个分区

Command (m for help): n

Partition type

  p   primary (1 primary, 0 extended, 3 free)

  e   extended (container for logical partitions)

Select (default p):

Using default response p.

Partition number (2-4, default 2):

First sector (20973568-2097151999, default 20973568):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (20973568-2097151999, default 2097151999): +100G

Created a new partition 2 of type ‘Linux’ and of size 100 GiB.

Command (m for help): p

Device     Boot   Start       End   Sectors Size Id Type

/dev/sdb1           2048  20973567  20971520   10G 83 Linux

/dev/sdb2       20973568 230688767 209715200 100G 83 Linux

#划分第三个分区

Command (m for help): n

Partition type

  p   primary (2 primary, 0 extended, 2 free)

  e   extended (container for logical partitions)

Select (default p):

Using default response p.

Partition number (3,4, default 3):

First sector (230688768-2097151999, default 230688768):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (230688768-2097151999, default 2097151999): +100G

Created a new partition 3 of type ‘Linux’ and of size 100 GiB.

Command (m for help): p

Device     Boot     Start       End   Sectors Size Id Type

/dev/sdb1            2048  20973567  20971520   10G 83 Linux

/dev/sdb2        20973568 230688767 209715200 100G 83 Linux

/dev/sdb3       230688768 440403967 209715200 100G 83 Linux

#继续划分第4个主分区

Command (m for help): n

Partition type

  p   primary (3 primary, 0 extended, 1 free)

  e   extended (container for logical partitions)

Select (default e): p

​这里来到了第四块盘,默认是扩展分区,但是我们这里划分的是p(主分区)

Selected partition 4

First sector (440403968-2097151999, default 440403968):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (440403968-2097151999, default 2097151999): +100G

Created a new partition 4 of type ‘Linux’ and of size 100 GiB.

Command (m for help): p

Device     Boot     Start       End   Sectors Size Id Type

/dev/sdb1            2048  20973567  20971520   10G 83 Linux

/dev/sdb2        20973568 230688767 209715200 100G 83 Linux

/dev/sdb3       230688768 440403967 209715200 100G 83 Linux

/dev/sdb4       440403968 650119167 209715200 100G 83 Linux

#无法继续分区

  • 最多四块主分区

#删除分区

Command (m for help): d

Partition number (1-4, default 4): # 默认删除第4个分区

Partition 4 has been deleted.

Command (m for help): p

Device     Boot     Start       End   Sectors Size Id Type

/dev/sdb1            2048  20973567  20971520   10G 83 Linux

/dev/sdb2        20973568 230688767 209715200 100G 83 Linux

/dev/sdb3       230688768 440403967 209715200 100G 83 Linux

划分扩展分区

Command (m for help): n #将所有剩余的空给给扩展分区

Partition type

  p   primary (3 primary, 0 extended, 1 free)

  e   extended (container for logical partitions)

Select (default e):

​这次选择的是扩展空间

Using default response e.

Selected partition 4

First sector (440403968-2097151999, default 440403968):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (440403968-2097151999, default 2097151999):

Created a new partition 4 of type ‘Extended’ and of size 790 GiB.

#基于扩展分区划分逻辑分区

Command (m for help): n

All primary partitions are in use.

所有的主分区,都被使用!

Adding logical partition 5

First sector (440406016-2097151999, default 440406016):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (440406016-2097151999, default 2097151999): +100G

Created a new partition 5 of type ‘Linux’ and of size 100 GiB.

Command (m for help): p

Disk /dev/sdb: 1000 GiB, 1073741824000 bytes, 2097152000 sectors

总共1000G

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: 0x2538df24

Device     Boot     Start       End   Sectors Size Id Type

/dev/sdb1            2048   20973567   20971520   10G 83 Linux

/dev/sdb2        20973568  230688767  209715200 100G 83 Linux

/dev/sdb3       230688768  440403967  209715200 100G 83 Linux

/dev/sdb4       440403968 2097151999 1656748032 790G  5 Extended

扩展分区,实际不存放数据

/dev/sdb5       440406016  650121215  209715200 100G 83 Linux

​在逻辑卷中存放数据!

#继续划分逻辑卷

Command (m for help): n

All primary partitions are in use.

Adding logical partition 6

First sector (650123264-2097151999, default 650123264):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (650123264-2097151999, default 2097151999):

起始和结束都是默认的回车

  • 说明他扩展分区的剩余的空间都分配给了第二个逻辑分区6

Created a new partition 6 of type ‘Linux’ and of size 690 GiB.

Command (m for help): p

Disk /dev/sdb: 1000 GiB, 1073741824000 bytes, 2097152000 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: 0x2538df24

Device     Boot     Start       End   Sectors Size Id Type

/dev/sdb1            2048   20973567   20971520   10G 83 Linux

/dev/sdb2        20973568  230688767  209715200 100G 83 Linux

/dev/sdb3       230688768  440403967  209715200 100G 83 Linux

/dev/sdb4       440403968 2097151999 1656748032 790G  5 Extended

/dev/sdb5       440406016  650121215  209715200 100G 83 Linux

/dev/sdb6       650123264 2097151999 1447028736 690G 83 Linux

​这两个都是逻辑卷

  • 两个逻辑卷容量的总和等于sdb4扩展分区

#保存并退出

Command (m for help): w

⭐partprobe /dev/sdb#

通知系统磁盘的分区信息变化,将分区信息同步到内核.

修改了磁盘分区(如新建、删除、调整分区),但内核仍缓存旧的分区信息时,使用 partprobe 可以让内核立即感知到新的分区结构,而无需重启.

lsblk查看我们刚分完区,后的磁盘结构

👑udevadm#

Terminal window
# 查看设备信息:
'配置info'
[root@R11 ~]# udevadm info /dev/nvme0n1p1 | head
M: nvme0n1p1
R: 1
J: b259:1
U: block
T: partition
.......

👑lsscsi#

Terminal window
# 显示scsi/sata设备信息:
[root@R11 ~]# lsscsi
'ls查看 scsi'
[3:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0

lsblk#

用于列出系统中所有块设备(如硬盘、分区、LVM等)的信息.

它默认以树状结构展示设备之间的层级关系,清晰直观.

各列含义

列名说明
NAME设备名称(如 sda1, sdb3)
MAJ主设备号:次设备号(内核识别用)
RM是否为可移动设备(
SIZE设备容量
RO是否只读(1=只读,
TYPE类型:
MOUNTPOINTS挂载点(多个挂载点会全部列出,如 bind mount)

lsblk -f#

查看文件系统类型和 UUID

UUID #系统给每个硬件信息分配了一个唯一的ID号码

blkid#

🧣parted分区#

不管是哪个分区表mbr还是gpt都能用.

  • 但是这个命令用起来比较危险**,它是实时生效的,立马生效.说删直接走.都不用等,**

Terminal window
parted 工具本身不会创建(格式化)文件系统
'它只是用来 划分分区'
parted 创建分区 创建文件系统
你需要额外运行 mkfs.xfs /dev/sda1 才能真正拥有一个 XFS 文件系统

Centos7

**疑问??**为什么fdisk可以直接创建出来,而不需要提前创建分区表.

**答:**因为fdisk命令只适用于mbr分区,而parted命令既适用于mbr分区,也适用于gpt分区

  • 所以对于一个新的硬盘,使用前,要进行创建分区.

Terminal window
(1)如果它是一块全新的空盘(比如 /dev/sdb)
可以安全使用 mktabel gpt
(2)只要它执行过mktable,说明他已经指定过分区表!
而你只是想加一个新分区---》不需要重新执行mktable
直接mkpart,创建分区就行!
(3)快速删除 GPT 分区表中的某个分区
#(比如你刚创建的 /dev/sda1),可以使用 parted 的 rm
# 查看当前分区
[root@R11 ~]# parted /dev/sda print
...
Number Start End Size File system Name Flags
1 1049kB 1000MB 999MB oldboy
# 删除分区 1
[root@R11 ~]# parted /dev/sda rm 1
# 再次查看,确认已删除
[root@R11 ~]# parted /dev/sda print
(4)清空 /dev/sda 重做(如重装系统)
# 使用 -s(script mode) 跳过交互确认
parted -s /dev/sda mklabel gpt
# 重新指定分区表
创建mbr分区#
  • 如果我们要用parted命令创建mbr分区的话,

  • 类型名是msdos

Terminal window
进行非交互式(non-interactive)分区时
'start 和 end 的写法非常灵活,支持多种单位'
s 扇区(sector),每个扇区通常是 512 字节
kB/MB/GB 千字节、兆字节、吉字节(注意是 1000 进制)
KiB/MiB/GiB 二进制单位(1024 进制,更推荐用于对齐)
💡 强烈建议使用 MiB/GiB s(扇区),避免因 1000/1024 混淆导致对齐问题
0 开始分区是错误的做法,会导致分区未对齐
正确做法:从 1MiB(即 2048 扇区)开始
永远不要从 0 开始分区!
始终从 1MiB(2048s)开始第一个分区!
实用示例
1.从头开始,到 10GiB 结束---> 1MiB 10GiB
2.创建一个从 10GiB 到磁盘末尾的分区--->10GiB 100%
# 100% 表示“到磁盘末尾”
创建gpt分区#

最后别忘了格式化mkfs.ext4

挂载

🧣非交互式#
Terminal window
(1)它是一个新的磁盘/dev/sda
# 添加磁盘(STAT、SCSI),重启识别!
[root@R11 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1000G 0 disk
[root@R11 ~]# parted /dev/sda print
Error: /dev/sda: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 1074GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
'它是一个新的磁盘,所以系统也不知道要分哪个分区!!!'
# 所以刚开始一定要显示指定mbr(类型名是msdos)或者gpt
Disk Flags:
'具体操作命令如下!刚开始可以不需要加-s'
[root@R11 ~]# parted /dev/sda mktable gpt mkpart oldboy 1MiB 10GiB
Information: You may need to update /etc/fstab.
(2)已经操作过了-->分过区(mbr OR gpt)
[root@R11 ~]# parted /dev/sda print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sda: 1074GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
'gpt!!!'
Disk Flags:
Number Start End Size File system Name Flags
[root@R11 ~]# parted -s /dev/sda mktable gpt mkpart oldboy 1MiB 10GiB
# -s:跳过交互确认
[root@R11 ~]# parted /dev/sda print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sda: 1074GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.7GB 10.7GB oldboy
'name是随便起的!'
[root@R11 ~]# parted /dev/sda mkpart heima 10GiB 40%
Information: You may need to update /etc/fstab.
# 从10GiB到百分之40%
[root@R11 ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 1074GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.7GB 10.7GB oldboy
2 10.7GB 429GB 419GB heima
验证是否真的是 10 GiB?
你可以让 parted 二进制单位 显示,结果就和你输入的一致了:
[root@R11 ~]# parted /dev/sda unit MiB print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 1024000MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 10240MiB 10239MiB oldboy
2 10240MiB 409600MiB 399360MiB heima

04.格式化#

分完区的磁盘,必须先进行格式化才能挂载使用!

  • 相当于房间做隔断

  • 这个新添加进来的磁盘,就相当于一个大的房子

  • ①先进行分区,做隔断

  • ②格式化,清理打扫卫生

    • 如果硬件存储设备没有进行格式化,则Linux系统无法得知怎么在其上写入数据.
  • ③挂载使用

文件系统类型#

常见的就是ext4和XFS

ext4#

目前最广泛使用的 Linux 默认文件系统.

  • 向后兼容 ext2/ext3.

  • 缺点:某些极端高并发写入场景下不如 XFS.

  • 适用场景:通用桌面、服务器、大多数 Linux 发行版默认选项.

XFS#

  • 高吞吐量,适合大文件和大容量存储;

  • 缺点:对小文件处理不如 ext4;不能缩小分区.

  • 适用场景:视频编辑、数据库、大型服务器存储.

-f#

  • 强制重复格式化 ** -f

  • -f /dev/sdb

    • 跟的是一块磁盘

    • 重新格式化后,里面的分区也没有了.

  • -f /dev/sdb1

    • 跟的是某一块具体的分区

    • 只是重复格式化这个分区而已

-t#

mount -t 是 Linux 系统中用于指定文件系统类型的挂载命令选项.-t 后面需跟具体的文件系统类型(如 ext4、ntfs、vfat 等),用于明确告知系统要挂载的设备使用何种文件系统格式.例如:

Terminal window
mount -t ext4 /dev/sda1 /mnt

表示将 /dev/sda1 设备以 ext4 文件系统类型挂载到 /mnt 目录.

**注意:**若未指定 -t 选项,系统通常会尝试自动检测文件系统类型.

一般让他自动识别就可以了!!


05.挂载#

如果不进行挂载,则无法访问设备里面,使用不了

临时挂载#

 **mount 设备名 挂载点

前提是有这个挂载点 可以通过mkdir新建个空目录就行!

  • 尽量是一个空的目录

  • 如果这个目录下面原本有文件,挂载后,就会被隐藏掉.

df -h#

查看磁盘挂载信息

umount#

取消挂载

  • 不能在挂载目录里面,否则无法取消挂载!

-lf#

这个选项可以强制卸载

甚至可以把根目录卸载了,不过重新启动一下就好了(人家毕竟是根目录嘛)

(和rm -rf / 删除根目录同理,最后重启后,都能够进行恢复)

小故障#

  • /proc/mounts当前系统 挂载情况的一个映射

  • grep ‘/mnt’ /proc/mounts

我们这里只是过滤了一下/mnt

**一个小故障:**
如果想要挂载一个目录,当你df -h看,并没有,但是呢,你mount挂载还挂不上
从而出现 **灵异事件?**
/proc/mounts 这个目录的挂载信息更加权威一点,可以过滤一下,是否挂载成功!
又或者你删除的时候,来一波强制删除,unmount -lf
删除了之后再挂载试试

永久挂载#

把信息写进**/etc/fstab**中,永久挂载

Terminal window
UUID or 设备名
1.在非克隆场景,一般持久挂载时,使用UUID,因为磁盘的命名可能会变
2.克隆场景,使用设备名而不用UUID
如果/etc/fstab写错了,可能会导致无法开机:
root@A:~# vim /etc/fstab
root@A:~# tail -1 /etc/fstab
/dev/sr0 /mnt666 iso9660 defaults,abcd,1234 0 0
# 挂载点不存在且选项错误
root@A:~# reboot
# 此时重启报错,进入emergency mode(紧急模式)
此时可以输入root密码,在字符界面修正问题:在/etc/fstab/中注释新添加的行
# 然后重启
root@A:~# tail -1 /etc/fstab
#/dev/sr0 /mnt666 iso9660 defaults,abcd,1234 0 0
root@A:~# reboot
  • 第六列检查老慢了**

  • 查看UUID

    • blkid

    • lsblk -f

    • 这两个命令上面有详细的介绍

**企业使用磁盘挂载方式**
**注意企业中**已经有数据的磁盘直接挂载**、**不能格式化**
插入新磁盘
不进行分区,空间容量有那么大!
格式化新磁盘
挂载使用新磁盘

​/etc/rc.local#

Terminal window
echo 'mount /dev/sdb1 /mnt/data1' >> /etc/rc.local
reboot #重启

/etc/fstab#

mount -a#
  • 根据 /etc/fstab 文件中的配置,挂载所有尚未挂载的文件系统.

  • 相当于执行挂载操作.

使用场景:

  • 手动修改 /etc/fstab 后,想立即应用新配置(而不重启);

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

磁盘管理
https://www.kpyun.fun/posts/basics/core/core16/
作者
久棹
发布于
2025-08-17
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录