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

【Linux基础】Linux系统管理:MBR分区实践详细操作指南

目录

引言

1 MBR分区基础概念

1.1 什么是MBR分区

1.2 MBR分区类型

1.3 MBR分区限制

2 Linux分区工具介绍

2.1 fdisk - 经典分区工具

2.2 parted - 高级分区工具

2.3 sfdisk - 批量分区工具

2.4 gdisk - GPT分区工具

3 MBR分区实践操作

3.1 查看硬盘信息

3.2 使用fdisk创建MBR分区

3.2.1 启动fdisk

3.2.2 fdisk交互式操作

3.2.3 实际操作示例

3.3 使用parted创建MBR分区

3.3.1 启动parted

3.3.2 parted交互式操作

3.3.3 实际操作示例

3.4 分区格式化

3.5 分区挂载

3.5.1 手动挂载

3.5.2 自动挂载配置

3.6 分区管理常用命令

4 MBR分区高级操作

4.1 分区调整

4.1.1 调整分区大小

4.1.2 调整分区示例

4.2 分区迁移

4.2.1 分区迁移流程

4.2.2 分区迁移示例

5 MBR分区实践建议

5.1 分区规划建议

5.2 安全建议

5.3 性能优化建议

6 总结


引言

在Linux系统管理中,硬盘分区是一项基础且重要的操作。MBR(Master Boot Record,主引导记录)作为传统的分区方案,虽然在大容量硬盘支持上有所局限,但在兼容性和实用性方面仍然具有重要价值。

1 MBR分区基础概念

1.1 什么是MBR分区

MBR(Master Boot Record,主引导记录)是硬盘分区的一种经典格式,位于硬盘的第一个扇区(512字节)。MBR分区表最多支持4个主分区或3个主分区+1个扩展分区。
引导程序(446字节):包含启动代码,负责加载操作系统引导程序
分区表(64字节):由4个16字节的分区项组成,每个分区项包含:
  • 引导标志(1字节):0x80表示活动分区,0x00表示非活动分区
  • 起始CHS地址(3字节):分区的起始柱面-磁头-扇区地址
  • 分区类型(1字节):标识分区类型(如0x07表示NTFS,0x83表示Linux等)
  • 结束CHS地址(3字节):分区的结束柱面-磁头-扇区地址
  • 起始LBA(4字节):分区的起始逻辑块地址
  • 分区大小(4字节):分区的大小(以扇区为单位)
结束标志(2字节):固定值0x55AA,标识有效的MBR

1.2 MBR分区类型

分区类型代码

分区类型

描述

0x01

FAT12

12位FAT文件系统

0x04

FAT16

16位FAT文件系统

0x05

扩展分区

扩展分区,可包含逻辑分区

0x06

FAT16B

大容量FAT16文件系统

0x07

NTFS/HPFS

Windows NT/HPFS文件系统

0x0B

FAT32

FAT32文件系统

0x0C

FAT32 LBA

LBA寻址的FAT32文件系统

0x0E

FAT16 LBA

LBA寻址的FAT16文件系统

0x0F

扩展分区 LBA

LBA寻址的扩展分区

0x82

Linux Swap

Linux交换分区

0x83

Linux

Linux原生分区

0x85

Linux 扩展

Linux扩展分区

0x8e

Linux LVM

Linux逻辑卷管理分区

0xee

GPT保护

保护性MBR,用于GPT分区

1.3 MBR分区限制

MBR分区存在以下限制:
  • 容量限制:最大支持2TB硬盘(512字节/扇区 × 2^32扇区)
  • 分区数量限制:最多4个主分区或3个主分区+1个扩展分区
  • 扩展分区复杂性:扩展分区结构复杂,管理不便
  • 安全性不足:没有内置校验和机制,易受攻击

2 Linux分区工具介绍

2.1 fdisk - 经典分区工具

fdisk是Linux中最常用的分区工具之一,支持MBR和GPT分区表。
fdisk特点:
  • 交互式界面友好,易于操作
  • 支持MBR和GPT分区表
  • 提供详细的分区信息显示
  • 支持分区创建、删除、修改等操作

2.2 parted - 高级分区工具

parted是一个功能强大的分区工具,支持多种分区表格式。
parted特点:
  • 支持多种分区表格式(MBR、GPT、mac等)
  • 支持分区大小调整和移动
  • 提供更高级的分区操作功能
  • 支持脚本化操作,便于自动化

2.3 sfdisk - 批量分区工具

sfdisk是fdisk的命令行版本,适合批量分区操作。
sfdisk特点:
  • 命令行操作,适合脚本化
  • 支持从配置文件批量创建分区
  • 提供分区信息查看功能
  • 适合自动化部署场景

2.4 gdisk - GPT分区工具

gdisk是专门为GPT分区表设计的工具,但也支持MBR分区。
gdisk特点:
  • 专门为GPT分区表设计
  • 也支持MBR分区操作
  • 提供分区类型转换功能
  • 支持GPT特有的功能如备份分区表

3 MBR分区实践操作

3.1 查看硬盘信息

# 查看所有块设备
lsblk# 查看磁盘详细信息
fdisk -l# 查看硬盘的分区表类型
file /dev/sda

3.2 使用fdisk创建MBR分区

3.2.1 启动fdisk

# 对/dev/sda进行分区操作 
fdisk /dev/sda

3.2.2 fdisk交互式操作

fdisk操作步骤:
  • 查看帮助:输入m查看帮助信息
  • 创建分区:输入n创建新分区
  • 设置分区类型:选择主分区或扩展分区
  • 设置分区大小:指定分区的起始和结束扇区
  • 写入分区表:输入w写入分区表
  • 查看分区:输入p查看分区信息
  • 退出fdisk:输入q退出(不保存)或w保存退出

3.2.3 实际操作示例

# 启动fdisk
fdisk /dev/sda# 在fdisk中执行以下命令:
Command (m for help): m  # 查看帮助
Command (m for help): n  # 创建新分区
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p  # 选择主分区
Partition number (1-4, default 1): 1  # 分区号1
First sector (2048-20971519, default 2048): 2048  # 起始扇区
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +10G  # 分区大小10GCommand (m for help): n  # 创建第二个分区
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): p  # 选择主分区
Partition number (2-4, default 2): 2  # 分区号2
First sector (20971520-20971519, default 20971520): 20971520  # 起始扇区
Last sector, +sectors or +size{K,M,G,T,P} (20971520-20971519, default 20971519): +20G  # 分区大小20GCommand (m for help): n  # 创建第三个分区
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): e  # 选择扩展分区
Partition number (3,4, default 3): 3  # 扩展分区号
First sector (41943040-20971519, default 41943040): 41943040  # 起始扇区
Last sector, +sectors or +size{K,M,G,T,P} (41943040-20971519, default 20971519): 20971519  # 结束扇区Command (m for help): n  # 在扩展分区中创建逻辑分区
Partition number (4,5, default 5): 5  # 逻辑分区号
First sector (41944192-20971519, default 41944192): 41944192  # 起始扇区
Last sector, +sectors or +size{K,M,G,T,P} (41944192-20971519, default 20971519): +30G  # 分区大小30GCommand (m for help): p  # 查看分区信息
Command (m for help): w  # 写入分区表

3.3 使用parted创建MBR分区

3.3.1 启动parted

# 启动parted 
parted /dev/sda

3.3.2 parted交互式操作

parted操作步骤:
  • 查看设备信息:输入print查看设备信息
  • 设置分区表:输入mklabel msdos设置MBR分区表
  • 创建分区:输入mkpart创建分区
  • 设置分区类型:指定文件系统类型
  • 设置分区大小:指定分区的大小范围
  • 设置分区标志:输入set设置分区标志
  • 写入分区表:parted会自动保存
  • 退出parted:输入quit退出

3.3.3 实际操作示例

# 启动parted
parted /dev/sda# 在parted中执行以下命令:
(parted) print  # 查看当前分区表
(parted) mklabel msdos  # 创建MBR分区表
(parted) mkpart primary ext4 1MiB 10GiB  # 创建第一个分区
(parted) mkpart primary ext4 10GiB 30GiB  # 创建第二个分区
(parted) mkpart extended 30GiB 60GiB  # 创建扩展分区
(parted) mkpart logical ext4 30GiB 50GiB  # 创建逻辑分区1
(parted) mkpart logical ext4 50GiB 60GiB  # 创建逻辑分区2
(parted) print  # 查看分区信息
(parted) set 1 boot on  # 设置第一个分区为活动分区
(parted) quit  # 退出parted

3.4 分区格式化

  • 创建分区后,需要格式化分区以建立文件系统:
# 格式化ext4文件系统
mkfs.ext4 /dev/sda1# 格式化swap分区
mkswap /dev/sda2# 格式化其他文件系统
mkfs.xfs /dev/sda5
mkfs.vfat /dev/sda6

3.5 分区挂载

3.5.1 手动挂载

# 创建挂载点
mkdir -p /mnt/data
mkdir -p /mnt/backup
mkdir -p /mnt/swap# 挂载分区
mount /dev/sda1 /mnt/data
mount /dev/sda5 /mnt/backup
swapon /dev/sda2# 查看挂载情况
df -h
mount | grep /dev/sda

3.5.2 自动挂载配置

  • 编辑/etc/fstab文件实现自动挂载:
# 备份fstab文件
cp /etc/fstab /etc/fstab.bak# 编辑fstab文件
vim /etc/fstab
  • fstab配置示例:
# /etc/fstab
# Filesystem      Mountpoint      Type    Options      Dump    Pass
/dev/sda1        /mnt/data       ext4     defaults     0       2
/dev/sda5        /mnt/backup     xfs      defaults     0       2
/dev/sda2        none            swap     sw           0       0

3.6 分区管理常用命令

# 查看分区信息
fdisk -l
lsblk
parted -l# 查看文件系统信息
df -h
mount# 查看swap信息
swapon --show
free -h# 卸载分区
umount /mnt/data
swapoff /dev/sda2# 检查文件系统
fsck /dev/sda1

4 MBR分区高级操作

4.1 分区调整

4.1.1 调整分区大小

调整分区大小步骤:
  • 卸载分区:确保分区没有被挂载
  • 备份重要数据:防止数据丢失
  • 调整分区:使用parted调整分区大小
  • 调整文件系统:使用resize2fs调整文件系统大小
  • 重新挂载:重新挂载分区
  • 验证数据完整性:检查数据是否完整

4.1.2 调整分区示例

# 卸载分区
umount /dev/sda1# 调整分区大小(使用parted)
parted /dev/sda
(parted) resizepart 1 15GiB
(parted) quit# 调整文件系统大小
resize2fs /dev/sda1# 重新挂载
mount /dev/sda1 /mnt/data# 验证
df -h /mnt/data

4.2 分区迁移

4.2.1 分区迁移流程

分区迁移步骤:
  • 创建目标分区:在新位置创建分区
  • 格式化目标分区:格式化新分区
  • 挂载源分区:挂载源分区
  • 挂载目标分区:挂载目标分区
  • 复制数据:使用rsync等工具复制数据
  • 更新fstab:更新fstab文件
  • 卸载分区:卸载所有分区
  • 删除源分区:删除源分区
  • 重命名目标分区:将目标分区重命名为原名称

4.2.2 分区迁移示例

# 创建目标分区
fdisk /dev/sdb
# 在fdisk中创建与/dev/sda1相同大小的分区# 格式化目标分区
mkfs.ext4 /dev/sdb1# 创建挂载点
mkdir -p /mnt/source /mnt/target# 挂载分区
mount /dev/sda1 /mnt/source
mount /dev/sdb1 /mnt/target# 复制数据
rsync -avh --progress /mnt/source/ /mnt/target/# 更新fstab
umount /mnt/source /mnt/target
nano /etc/fstab
# 将/dev/sda1改为/dev/sdb1# 卸载分区
umount /dev/sda1 /dev/sdb1# 删除源分区
fdisk /dev/sda
# 删除/dev/sda1分区# 重命名目标分区
fdisk /dev/sdb
# 将/dev/sdb1重命名为/dev/sda1

5 MBR分区实践建议

5.1 分区规划建议

系统分区
  • /boot:1-2GB,用于引导文件
  • /:10-20GB,用于根文件系统
  • /home:剩余空间,用于用户数据
数据分区
  • /data:用于应用程序数据
  • /backup:用于系统备份
交换分区
  • 大小通常为内存的1-2倍
  • 最多不超过32GB
备份分区
  • 单独的备份分区,用于重要数据备份

5.2 安全建议

分区加密
  • 使用LUKS加密敏感分区
  • 使用eCryptfs加密用户目录
权限控制
  • 设置适当的文件权限
  • 为不同用户创建独立的分区
定期备份
  • 定期进行全量备份
  • 设置增量备份策略
监控分区
  • 监控分区使用率
  • 监控分区错误和性能

5.3 性能优化建议

对齐分区
  • 确保4K对齐
  • 对齐到扇区边界
选择合适的文件系统
  • ext4:通用性好,兼容性强
  • XFS:大文件性能好
  • Btrfs:高级功能多
优化挂载选项
  • 使用noatime减少访问时间更新
  • 使用data=writeback提高写入性能
定期维护
  • 定期进行碎片整理
  • 管理日志文件

6 总结

MBR分区作为传统的分区方案,具有以下核心价值:
  • 兼容性好:几乎所有系统和硬件都支持MBR分区
  • 操作简单:工具成熟,操作相对简单
  • 资源占用少:相比GPT,MBR占用资源更少
  • 稳定性高:经过长期验证,稳定性高
MBR分区存在以下局限性:
  • 容量限制:最大支持2TB硬盘
  • 分区数量限制:最多4个主分区或3个主分区+1个扩展分区
  • 扩展分区复杂性:扩展分区结构复杂,管理不便
  • 安全性不足:没有内置校验和机制
MBR分区作为Linux系统管理的基础技能,掌握其操作方法和最佳实践对于系统管理员来说至关重要。在实际应用中,我们应根据具体需求选择合适的分区方案,并遵循最佳实践,确保系统的稳定、安全和高效运行。
http://www.xdnf.cn/news/1473121.html

相关文章:

  • IO进程线程;多线程;线程互斥同步;互斥锁;无名信号量;条件变量;0905
  • FEMDRW032G-88A19江波龙,工业级宽温EMMC存储FEMDRW032G采用eMMC5.1协议,具备32GB存储容量提供方案
  • 可搜索且多选的下拉式列表
  • Linux查看设备树信息
  • C++Primerplus 编程练习 第十二章
  • CUDA编程12 - 使用OpenMP控制多个GPU示例
  • 1个工具管好15+网盘(批量转存/分享实测)工具实测:批量转存 + 自动换号 + 资源监控 账号添加失败 / 转存中断?这样解决(含功能详解)
  • 【leetcode】46. 全排列
  • 【C++】vectore
  • 裸机程序(3)
  • 【C++】 priority_queue 容器模拟实现解析
  • GDAL 开发起步
  • MySQL抛出的Public Key Retrieval is not allowed
  • nextcyber——暴力破解
  • c++ 压缩与解压缩
  • C++语言编程规范-初始化和类型转换
  • 技术面:Java并发(线程池、ForkJoinPool)
  • Acrobat-2025.001.20643_Win中文_PDF编辑器_便携版安装教程
  • Go初级之十:错误处理与程序健壮性
  • 内存纠错检错方法-SSCDSD
  • vggt代码详解
  • 迁移学习实战:基于 ResNet18 的食物分类
  • BYOFF (Bring Your Own Formatting Function)解析(80)
  • GPU集群扩展:Ray Serve与Celery的技术选型与应用场景分析
  • Pinia 两种写法全解析:Options Store vs Setup Store(含实践与场景对比)
  • (3)Seata AT 模式的事务一致性保证机制
  • MySQL慢查询优化策略
  • 洛谷 P2392 kkksc03考前临时抱佛脚-普及-
  • 【C++题解】贪心和模拟
  • Linux设备down机,如何识别是 断电还是软件复位