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

【Linux基础】fdisk命令详解:从入门到精通的磁盘分区管理完全指南

目录

前言

1 fdisk命令概述

1.1 什么是fdisk

1.2 fdisk的应用场景

1.3 fdisk与其他分区工具的比较

2 fdisk命令的安装与基本语法

2.1 在不同Linux发行版中安装fdisk

2.2 fdisk的基本语法

3 fdisk命令参数详解

3.1 主要参数说明

3.2 交互式命令

4 fdisk操作流程详解

4.1 完整的分区操作流程

4.2 实际操作示例

5 高级应用与实践

5.1 分区类型设置

5.2 分区对齐优化

6 注意事项与常见问题

6.1 安全注意事项

6.2 常见错误及解决方案

6.3 性能优化建议

7 总结


前言

在Linux系统中,磁盘管理是系统运维的重要环节。而fdisk作为Linux中最经典、最常用的磁盘分区管理工具,几乎成为了每个Linux系统管理员必备的技能。

1 fdisk命令概述

1.1 什么是fdisk

fdisk(Fixed Disk or Format Disk)是Linux系统中用于创建和管理磁盘分区表的命令行工具。它的全称是"Partition table manipulator for Linux",专门用于操作磁盘分区信息。
核心功能:
  • 创建、删除、修改磁盘分区
  • 查看磁盘分区表信息
  • 支持多种分区表格式(MBR、GPT、Sun、SGI、BSD)
  • 优化现代磁盘的分区布局(如4K扇区对齐)

1.2 fdisk的应用场景

  • 需求分析:根据实际需求确定分区方案
  • 选择工具:根据分区类型选择合适的工具(fdisk主要用于MBR分区)
  • 执行操作:使用fdisk命令进行具体的分区操作
  • 验证结果:检查分区是否正确创建并应用

1.3 fdisk与其他分区工具的比较

工具名称

支持分区表

最大分区大小

交互模式

适用场景

fdisk

MBR、GPT

2TB(MBR)

交互式

传统MBR分区,小容量磁盘

parted

MBR、GPT

无限制

命令行/交互

大容量磁盘,现代分区表

gdisk

GPT

无限制

交互式

GPT分区,UEFI系统

cfdisk

MBR

2TB

交互式

图形化界面,初学者

2 fdisk命令的安装与基本语法

2.1 在不同Linux发行版中安装fdisk

  • Ubuntu/Debian系统:
sudo apt-get update
sudo apt-get install fdisk
  • CentOS/RHEL系统:
sudo yum install fdisk
# 或
sudo dnf install fdisk
  • Arch Linux系统:
sudo pacman -S fdisk

2.2 fdisk的基本语法

fdisk [选项] 设备文件名
常用选项:
  • -l:显示设备的分区表信息
  • -u:以扇区单位显示分区信息
  • -s:显示分区大小(已弃用)
  • -V:显示版本信息

3 fdisk命令参数详解

3.1 主要参数说明

显示类参数:
  • -l:列出指定设备的分区表信息
  • -u:指定显示单位(扇区或柱面)
  • -o:自定义输出列格式
操作类参数:
  • -n:创建新分区(非交互模式)
  • -d:删除分区(非交互模式)
  • -t:指定分区类型
配置类参数:
  • -b:指定扇区大小(512、1024、2048、4096)
  • -H:指定磁头数
  • -S:指定每磁道扇区数

3.2 交互式命令

  • 进入fdisk交互模式后,可以使用以下命令:

命令

功能

说明

m

显示帮助

显示所有可用命令

p

打印分区表

显示当前分区信息

n

新建分区

创建新的分区

d

删除分区

删除指定分区

t

修改分区类型

更改分区ID

w

保存并退出

将更改写入磁盘

q

不保存退出

放弃更改退出

l

列出分区类型

显示所有支持的分区类型

a

设置引导标志

标记活动分区

c

设置DOS兼容标志

设置DOS兼容性

4 fdisk操作流程详解

4.1 完整的分区操作流程

  • 查看磁盘信息:使用fdisk -l命令查看当前磁盘分区情况
  • 进入交互模式:使用fdisk /dev/sdX进入指定磁盘的交互模式
  • 查看分区表:使用p命令查看当前分区表信息
  • 分区管理:根据需要删除或创建分区
  • 设置参数:为新建分区设置类型、大小等参数
  • 保存更改:使用w命令将更改写入磁盘
  • 验证结果:使用fdisk -l和lsblk验证分区是否正确创建

4.2 实际操作示例

  • 示例1:查看磁盘分区信息
# 查看所有磁盘的分区信息
sudo fdisk -l# 查看指定磁盘的分区信息
sudo fdisk -l /dev/sda
  • Device:设备名称
  • Boot:是否为引导分区
  • Start:起始扇区
  • End:结束扇区
  • Sectors:扇区总数
  • Size:分区大小
  • Id:分区类型ID
  • Type:分区类型描述
  • 示例2:创建主分区
sudo fdisk /dev/sdb# 在交互模式中执行以下命令:
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  # 分区号
First sector (2048-1048575999, default 2048):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (2048-1048575999, default 1048575999): +10G  # 设置分区大小Command (m for help): w    # 保存并退出
  • 示例3:创建扩展分区和逻辑分区
sudo fdisk /dev/sdb# 创建扩展分区
Command (m for help): n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default e): e      # 选择扩展分区
Partition number (2-4, default 2): 2  # 扩展分区号
First sector (2097152-1048575999, default 2097152):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (2097152-1048575999, default 1048575999): +20G  # 设置扩展分区大小# 创建逻辑分区
Command (m for help): n
Partition type:p   primary (1 primary, 1 extended, 2 free)l   logical (5 free)
Select (default l): l      # 选择逻辑分区
Adding logical partition 5
First sector (4196352-44040191, default 4196352):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (4196352-44040191, default 44040191): +5G  # 设置逻辑分区大小Command (m for help): w    # 保存并退出
  • 示例4:删除分区
sudo fdisk /dev/sdbCommand (m for help): p    # 查看当前分区表
Command (m for help): d     # 删除分区
Partition number (1-5, default 5): 3  # 要删除的分区号
Command (m for help): w    # 保存并退出

5 高级应用与实践

5.1 分区类型设置

常用分区类型:
  • 83:Linux原生分区
  • 82:Linux交换分区
  • 8e:Linux LVM分区
  • 07:NTFS/HPFS分区(Windows)
  • 0b:FAT32分区
  • 12:EFI系统分区
  • 05:扩展分区

5.2 分区对齐优化

  • 现代硬盘(特别是SSD)需要考虑分区对齐以获得最佳性能:
# 对于4K扇区的硬盘,起始扇区应该是2048的倍数
sudo fdisk /dev/sdb
Command (m for help): n
First sector (2048-1048575999, default 2048): 2048  # 确保4K对齐

6 注意事项与常见问题

6.1 安全注意事项

  • 数据备份:在进行分区操作前,务必备份重要数据
  • 设备确认:确保操作正确的设备,避免误操作其他磁盘
  • 谨慎使用:删除分区操作不可逆,请三思而后行
  • 权限要求:需要root权限才能执行分区操作

6.2 常见错误及解决方案

错误信息

可能原因

解决方案

Device not found

设备不存在

检查设备名称是否正确

Device is busy

设备被占用

卸载相关分区或重启系统

Invalid partition table

分区表损坏

使用fdisk /dev/sdX修复

Cannot write disk label

权限不足

使用sudo提升权限

Partition overlaps

分区重叠

重新规划分区布局

6.3 性能优化建议

  • 分区对齐:确保分区起始位置符合硬盘的物理扇区大小
  • 分区大小:避免创建过小的分区,减少分区表碎片
  • 文件系统选择:根据使用场景选择合适的文件系统
  • 定期检查:定期检查磁盘健康状态和分区完整性

7 总结

fdisk作为Linux系统中最基础、最经典的磁盘分区工具,虽然在功能上可能不如parted等现代工具强大,但其简单易用的交互模式和广泛的兼容性使其仍然是系统管理员的必备工具。
主要优势:
  • 简单直观的交互式操作
  • 广泛的Linux发行版支持
  • 完善的MBR分区支持
  • 丰富的在线文档和社区支持
适用场景:
  • 传统MBR分区的管理
  • 小容量磁盘的分区操作
  • 学习Linux磁盘管理的基础
  • 系统安装和基本的分区规划

文章转载自:

http://GP6bqaM8.yrycb.cn
http://fKMOXHyF.yrycb.cn
http://HpMCG582.yrycb.cn
http://82VbgSX9.yrycb.cn
http://WFfHfjmj.yrycb.cn
http://WuT9yEpy.yrycb.cn
http://SZl2HvgY.yrycb.cn
http://sZE5kHIS.yrycb.cn
http://GIqUPPkl.yrycb.cn
http://7AhZcReK.yrycb.cn
http://AkG5s4Uc.yrycb.cn
http://77U6yVMy.yrycb.cn
http://d0COVxJD.yrycb.cn
http://zdc72eEp.yrycb.cn
http://wrMgDOmJ.yrycb.cn
http://s2GUrsH9.yrycb.cn
http://Z5M3mQIl.yrycb.cn
http://Dde8RU7D.yrycb.cn
http://E8UzAUMb.yrycb.cn
http://dpABcOAE.yrycb.cn
http://nTgO9EKs.yrycb.cn
http://bTMsinX0.yrycb.cn
http://SLuPAhcY.yrycb.cn
http://nR7MPftA.yrycb.cn
http://G8dpyQC3.yrycb.cn
http://CeNtztBw.yrycb.cn
http://kRTBvhjX.yrycb.cn
http://ygqqG7nX.yrycb.cn
http://kCqlo07e.yrycb.cn
http://lUgvBgEm.yrycb.cn
http://www.dtcms.com/a/371333.html

相关文章:

  • 【从零开始学习Redis】秒杀优化——阻塞队列、消息队列实现异步秒杀
  • 【基于深度学习的中草药识别系统】
  • AI 驱动数据分析:开源 SQLBot 项目探索,基于大模型和 RAG 实现精准问数与图表挖掘
  • 延迟 队列
  • 宋红康 JVM 笔记 Day14|垃圾回收概述
  • 【ICCV2025】计算机视觉|即插即用|ESC:颠覆Transformer!超强平替,ESC模块性能炸裂!
  • 手机能看、投屏 / 车机不能看与反向链接验证类似吗?
  • Xilinx ZYNQ 开发环境中搭建 Qt 环
  • leetcode909.蛇梯棋
  • JAVA NIO学习笔记基础强化学习总结
  • 基于51单片机手机无线蓝牙APP控制风扇调速设计
  • 力扣hot100:相交链表与反转链表详细思路讲解(160,206)
  • 如何在 DevOps 管道中实现 AI?
  • 【Java基础07】面向对象进阶
  • 动态维护有效区间:滑动窗口
  • 桌面时间 Catime
  • 解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
  • 设计模式:状态模式(State Pattern)
  • 【ARM基础知道】
  • SpringCloud Alibaba微服务--Gateway使用
  • 基于脚手架微服务的视频点播系统-播放控制部分
  • 【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治
  • 【iOS】push,pop和present,dismiss
  • HiCMAE 论文复现:基于 RAVDESS 数据集的音视频情感识别
  • axios的两种异步方式对比
  • uniapp结合uview制作美食页面
  • Spark mapreduce 的一个用法
  • [iOS] push 和 present Controller 的区别
  • 五.贪心算法
  • vue中axios与fetch比较