Linux 磁盘分区核心命令:fdisk 超详细教程(含创建 / 删除 / 修改分区)
一、命令简介fdisk 是一个功能强大的命令行磁盘分区工具主要用于查看、创建、删除和修改磁盘分区表。它支持多种分区表格式包括传统的 MBR (Master Boot Record) 和现代的 GPT (GUID Partition Table)。该工具提供了一个基于问答的交互式界面允许用户对分区表进行精细化的管理。虽然其交互方式不如一些图形化或菜单驱动工具如 cfdisk直观但它提供了完整且核心的磁盘管理功能是系统管理员进行磁盘分区和维护的核心工具之一。重要警告fdisk 操作直接影响磁盘的分区表信息。不当操作可能导致数据丢失或系统无法启动。 在使用该命令进行任何写入操作特别是 w 命令之前请务必备份重要数据并确认操作对象正确无误。对系统盘进行操作时尤需谨慎。二、语法格式fdisk 命令主要有两种使用模式bash运行# 模式一交互式管理指定磁盘的分区表 fdisk [选项] 磁盘设备 # 模式二非交互式列出分区表信息 fdisk [选项] -l [磁盘设备...]参数说明磁盘设备指定要操作的块设备文件路径例如 /dev/sda、/dev/nvme0n1、/dev/vda。[磁盘设备...]当与 -l 选项联用时可以指定一个或多个设备。若不指定任何设备则默认列出系统中所有磁盘设备的分区信息。三、常用选项及说明以下是在非交互模式下常用的命令行选项表格短选项长选项说明-l--list列出分区表。后接设备名则显示指定设备不接则显示所有设备。-u--units [ 单位]与 -l 联用指定显示单位。可选项为 cylinders柱面或 sectors扇区默认值。-b--sector-size 大小指定要显示的扇区大小如 512 4096。-t--type 类型只允许识别指定的分区表类型如 dos (MBR), gpt。-h--help显示帮助信息并退出。-V--version显示版本信息并退出。交互模式常用命令在进入交互模式例如执行 sudo fdisk /dev/sdb后可以在 Command (m for help): 提示符下输入以下命令表格命令说明m显示所有交互命令的帮助菜单。p打印显示当前磁盘的分区表。n添加一个新分区。主分区、扩展分区或逻辑分区。d删除一个分区。t更改分区的系统 ID类型例如改为 83 (Linux), 82 (Linux swap), 8e (Linux LVM)。g创建一个新的空 GPT 分区表会清除现有分区表。o创建一个新的空 DOS (MBR) 分区表会清除现有分区表。v验证分区表。w将内存中的分区表写入磁盘并退出。这是使所有修改生效的关键命令q不保存任何更改退出程序。放弃所有修改四、示例用法4.1 查看所有磁盘分区信息bash运行sudo fdisk -l此命令会以管理员权限列出系统中所有磁盘的详细信息包括设备名、容量、扇区大小、分区表类型MBR/DOS 或 GPT以及每个分区的起始 / 结束扇区、大小、文件系统 ID 和类型。4.2 查看指定磁盘的分区信息bash运行sudo fdisk -l /dev/sda仅显示 /dev/sda 这块磁盘的详细分区情况。4.3 以扇区为单位显示分区信息bash运行sudo fdisk -lu /dev/sda # 或明确指定单位 sudo fdisk -l -usectors /dev/sda这对于需要精确扇区位置的操作如检查分区是否对齐非常有用。4.4 交互式创建 MBR 分区示例以下流程展示了如何使用 fdisk 对一块假设的新磁盘 /dev/sdb 创建一个 10GB 的 Linux 主分区。进入磁盘的交互式管理界面bash运行sudo fdisk /dev/sdb输入 p 查看当前空分区表plaintextCommand (m for help): p Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors ... Disklabel type: dos Disk identifier: 0x38717a8d输入 n 创建新分区并按照提示操作plaintextCommand (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p # 选择创建主分区 Partition number (1-4, default 1): 1 # 分区编号设为 1 First sector (2048-41943039, default 2048): 【回车】 # 使用默认起始扇区 Last sector, /-sectors or /-size{K,M,G,T,P} (2048-41943039, default 41943039): 10G # 指定分区大小为 10GB可选输入 t 更改分区类型plaintextCommand (m for help): t Selected partition 1 Hex code (type L to list all codes): L # 查看所有类型代码 Hex code (type L to list all codes): 83 # 设置为 Linux 类型默认输入 p 再次查看确认分区设置无误。输入 w 将分区表写入磁盘并退出或输入 q 放弃所有修改并退出。plaintextCommand (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.注意执行 w 后需要使用 partprobe 或重启系统让内核重新读取分区表然后才能使用 mkfs 等工具在新分区上创建文件系统。五、注意事项权限要求查看分区信息通常需要 sudo 或 root 权限。修改分区表则必须使用 root 权限。生效与退出在交互模式中所有修改在输入 w 命令之前都只存在于内存中。输入 q 会放弃所有未保存的修改。请务必在确认无误后再输入 w。分区表类型请注意 MBR 和 GPT 的区别。MBR 磁盘最多支持 4 个主分区或 3 主分区 1 扩展分区且最大支持 2TB 容量。GPT 磁盘无此限制。使用 g 命令会创建 GPTo 命令会创建 MBR。系统盘操作对当前操作系统所在的磁盘进行分区操作极其危险可能导致系统无法启动。建议在 Live CD/USB 环境下进行此类操作。后续步骤fdisk 仅管理分区表。创建分区后需要使用 mkfs 系列命令在分区上创建文件系统并使用 mount 命令挂载后才能使用。