当前位置: 首页 > news >正文

Linux磁盘分区与挂载完全指南

一、磁盘类型

一、核心原理

1. 磁盘分区:将物理磁盘划分为逻辑区域

物理磁盘(如硬盘、SSD、U 盘)是一块连续的存储空间,直接使用会导致文件管理混乱。分区就是将磁盘分割成多个独立的 “逻辑区域”,每个区域可单独管理(如设置不同文件系统、用途隔离)。

  • 分区表:记录分区信息的 “索引”,存储在磁盘的起始位置(MBR 分区表)或全局位置(GPT 分区表)。

    • MBR(Master Boot Record):支持最大磁盘容量 2TB,最多 4 个主分区(或 3 个主分区 + 1 个扩展分区,扩展分区内可创建多个逻辑分区)。
    • GPT(GUID Partition Table):支持大于 2TB 的磁盘,理论上无分区数量限制(通常受操作系统限制,如 Linux 支持 128 个主分区),更适合现代大存储设备。
  • 分区命名规则:Linux 中磁盘以/dev/sdX(SATA/SCSI 设备)或/dev/nvmeXnY(NVMe 设备)命名,分区在设备名后加数字,例如:

    • sda:第一块 SATA 磁盘;sda1:sda 的第一个分区;sda2:第二个分区。
    • nvme0n1:第一块 NVMe 磁盘;nvme0n1p1:其第一个分区。
2. 挂载:将分区关联到目录树

Linux 的文件系统是一个单一的目录树(从/根目录开始),而分区是独立的逻辑区域,需要通过挂载(mount) 将分区与目录树中的某个目录(挂载点)关联,才能访问分区内的文件。

二、配置步骤(以 SATA 磁盘为例)

1.查看磁盘信息
# 查看所有磁盘及分区(列出设备、大小、类型)
lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   49G  0 part /
sdb      8:16   0   100G 0 disk  # 新插入的未分区磁盘
# 查看磁盘详细信息(包括分区表类型) fdisk -l /dev/sda # 替换为目标磁盘,如/dev/sdb
2.创建分区
方法 1:用fdisk创建 MBR 分区(适合小磁盘)
fdisk /dev/sda
d:删除分区
p:查看分区表
t:修改分区的system id 号
l:列出所有的分区类型
e extended 扩展分区
q:不保存退出
w:保存退出

交互步骤:

  1. 输入n:创建新分区。
  2. 选择分区类型:p(主分区)或e(扩展分区,仅 MBR),新手建议直接创建主分区。
  3. 输入分区号(如1,默认即可)。
  4. 设置起始扇区(默认回车,从第一个可用位置开始)。
  5. 设置分区大小:如+50G(创建 50GB 分区),或直接回车(使用全部剩余空间)。
  6. 输入w:保存分区表并退出(会提示同步分区表,确认即可)。

2. partprobe  /dev/sda 同步到硬盘
3. 格式化(两种)
# 格式化分区为ext4(Linux最常用,支持日志、配额)
mkfs.ext4 /dev/sdb1  # 替换为目标分区,如sdb1# 或格式化为xfs(适合大文件、高性能,RHEL/CentOS默认)
mkfs.xfs /dev/sdb1# 或格式化为exfat(跨平台兼容Windows/macOS,适合移动设备)
mkfs.exfat /dev/sdb1
4.挂载
blkid 查看设备uuid
创建挂载点 mkdir /test1
vim /etc/fstab

字段说明:

  • 第 1 列:分区 UUID(通过blkid获取)。
  • 第 2 列:挂载点目录(如/test1)。
  • 第 3 列:文件系统类型(如ext4xfs)。
  • 第 4 列:挂载选项(defaults表示默认:rw, suid, dev, exec, auto, nouser, async)。
  • 第 5 列:是否备份(0 = 不备份)。
  • 第 6 列:是否开机检查(0 = 不检查,根分区通常为 1)
mount -a 重新加载fstab
5.加载/etc/fstab数据,可以看到扩展分区挂载好了

6.存数据 进入挂载点/test1存数据
2.2 分区方案二:
1.知识点
MBR--Master  Boot Record  主引导记录,最多创建15个分区。最大的磁盘和分区的大小为2TB
MBR分区直接存储数据和引导记录。
磁盘中的第一个扇区就是MBR,也叫做主引导扇区。大小为512个字节。
其中主引导记录(启动代码)占用其中的446个字节,分区表占用了64个字节(每个分区定义的是16个字节),
结束标志占用2个字节。
KB  MB  GB  TB  PB  EB  ZB  YB 
GPT--GUID Partition Table--全局唯一表示分区表。
1、支持2TB以上的大硬盘
2、每个磁盘的分区个数几乎没有限制(最多只允许划分128个分区)
3、分区大小几乎没有限制,8ZB  
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,
可以通过另外一份恢复
GPT分区的数据和引导记录时分开存储的。
parted  -l  ---列出所有的磁盘上的分区布局
parted  /dev/sdb    ---列出某个硬盘的分区表
1MB=10^3=1000KB
1MiB=2^10=1024KiB
若要对新的磁盘进行分区,首先需要为其写入磁盘标签。
将MBR磁盘标签写入磁盘
parted /dev/sdb mklabel msdos
将GPT磁盘标签写入磁盘
parted  /dev/vdb  mklabel gpt
2.知识点
mount  设备  挂载点
永久挂载---必须把挂载信息写入到/etc/fstab文件中。
注意:该文件中的挂载信息不能写错,一旦写错,系统重启后将无法
正常进入操作系统。
/etc/fstab文件中每个字段的意思如下:
第1字段:设备名或者是设备的UUID(建议使用UUID)
第2字段:挂载点(如果设备为交换分区时,此处应写为swap)
第3字段:文件系统类型,如xfs、ext4、swap等
第4字段:挂载参数,即mount  -o  选项后可以使用的参数。
如:defaults(默认参数)、rw(可写)、ro(只读)、noexec(禁用执行程序)
第5字段:表示文件系统是否需要dump备份。(dump是一个备份工具),1为需要备份,
0为不需要备份,即被dump所忽略。
第6字段:该数字用户决定系统在启动时是否使用fsck命令,以进行磁盘检查的顺序。
0表示不检查,1表示优先检查,2表示其次检查。
xfs的文件系统不适用fsck检查,即可设置为0.

三,加一块硬盘需要做哪些处理?

创建分区--创建MBR磁盘分区l流程
1. parted  /dev/sdb
mklabel  ---创建标签
msdos    ---将MBR磁盘标签写入磁盘
unit     ---设置空间大小单位
MB     ---设置为MB
mkpart   ---新建分区
primary  ---选择分区类型
xfs     ---选择分区文件系统类型,此时是没有格式化的,只是标记
1MB     ---起始大小
501MB     ---结束大小
quit     ---退出,默认保存退出
创建完成后需要执行udevadm  settle,
等待系统检测新分区并在/dev目录下创建关联的设备文件
2. mkfs.exit4  /dev/sdb1 格式化
3.挂载 
blkid /dev/sdb1
创建挂载点 mkdir /test1
新建挂载点,然后写入到/etc/fstab  -----永久挂载
vim /etc/fstab
UUID=.....  /cy   xfs   defaults  0  0
mount -a
管理交换分区---可以用来解决物理内存不足的问题。--又称作为虚拟内存
写法二:非交互式创建swap分区(新手不建议)
parted /dev/sdc mkpart primary  linux-swap 1MB 501MB
mkswap  /dev/sdc1
vim /etc/fstab
UUID=.....   swap  swap  defaults  0 0
swapoff  -a    ----关闭所有的交换分区
swapon  -a     ----开启所有的交换分区

fdisk  -l  ---查询硬盘的分区情况

 四,增加交换分区内存


free  -m  ---查询交换分区的使用情况
增大交换分区内存(创建一个分区把他类型设置为swap类型就相当于加大了内存)
parted /dev/adb
unit()
MiB
p
mkpart(创建分区)
quit
udevadm settle(加载一下)
mkswap /dev/sdb2
vim /etc/fstab (加一条)
swapon -a 启用所有交换分区
http://www.lryc.cn/news/610101.html

相关文章:

  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • 使用1panel将http升级至https的过程
  • javacc学习笔记 03、编译原理实践 - JavaCC解析表达式并生成抽象语法树
  • 深入解析线程同步中WaitForSingleObject的超时问题
  • 【Java基础知识 17】面向对象编程
  • Adobe Experience Manager (AEM) Assets|企业级数字资产管理平台(DAM)
  • javacc学习笔记 01、JavaCC本地安装与测试
  • TorchDynamo源码解析:从字节码拦截到性能优化的设计与实践
  • 厄米系统(Hermitian System)
  • Go 函数选项模式
  • 模型学习系列之考试
  • day15 SPI
  • 疏老师-python训练营-Day35模型可视化推理
  • Golang中的`io.Copy()`使用场景
  • #C语言——刷题攻略:牛客编程入门训练(四):运算(二)
  • 网站从HTTP升级到HTTPS网址方法
  • 北京JAVA基础面试30天打卡01
  • 【多智能体cooragent】CoorAgent 系统中 5 个核心系统组件分析
  • 力扣-1.两数之和
  • 腾讯混元重磅开源:四款小尺寸模型全面发布
  • Git如何为多平台配置密钥和用户信息?
  • 互联网医院整体项目套表整理过程文档全流程分析
  • 【MySQL基础篇】:MySQL常用内置函数以及实用示例
  • Flask + HTML 项目开发思路
  • MySQL中COUNT(\*)、COUNT(1)和COUNT(column),到底用哪个?
  • 从零认识OpenFlow
  • 【SAM】Segment Anything 论文翻译笔记
  • opencv引入libavif
  • 模拟IC设计提高系列8-运算跨导放大器OTA Operational Transconduct Amplifiers
  • 家事速配西安项目启动会圆满举行,开启社区服务新篇章