fdisk 初始化磁盘的核心操作是使用 fdisk 命令为磁盘创建分区表并建立分区,之后格式化挂载即可使用,关键在于正确选择分区表类型(MBR 或 GPT)并确保磁盘未被挂载,所有操作通过交互式命令逐步完成。
fdisk 初始化磁盘 步骤详解
确认磁盘设备与权限
你需要先确定新磁盘的设备名称,/dev/sdb,使用 lsblk -o NAME,SIZE,TYPE,MOUNTPOINT 列出所有块设备,新磁盘通常无分区,类型显示为 disk,如果磁盘已经挂载,先执行 umount /dev/sdb1 卸载,所有操作都需要 root 权限,所以记得加上 sudo。
进入 fdisk 交互界面
运行 sudo fdisk /dev/sdb,进入交互模式,提示符变为 Command (m for help):,输入 m 查看命令列表,p 打印当前分区表,新磁盘会提示“doesn’t contain a valid partition table”,如果磁盘有旧分区表,建议先清除再操作,避免残留干扰。
创建分区表
输入 g 创建 GPT 分区表,输入 o 创建 DOS(MBR)分区表,选择依据:磁盘大于 2TB 必须用 GPT;传统 BIOS 启动且磁盘小于 2TB 可用 MBR;UEFI 启动必须用 GPT,系统会提示“Created a new disklabel”,此操作会清空磁盘所有数据,需要确认。
新建分区
输入 n 开始新建分区,指定分区号(默认 1),起始扇区(默认 2048,用于对齐),结束扇区或大小(如 +100G,+500M,或直接回车使用全部剩余空间),fdisk 会自动计算扇区数,可以重复此步骤创建多个分区,如果使用 MBR 且需要超过 4 个分区,先创建扩展分区(类型 extended),再在扩展分区内创建逻辑分区,逻辑分区编号从 5 开始。
设置分区类型
输入 t 修改分区类型 ID,输入 L 查看所有类型代码,常用类型:83 为 Linux 文件系统,82 为 Linux swap,EFI 为 EFI 系统分区,对于普通数据分区,保持默认的 Linux filesystem 即可。
写入并退出
输入 w 将分区表写入磁盘,系统提示“Syncing disks.”,如果写入失败,检查磁盘是否被占用,写入后,使用 partprobe /dev/sdb 或重启系统使内核重新读取分区表。
验证并格式化
使用 fdisk -l /dev/sdb 确认分区已创建,格式化:sudo mkfs.ext4 /dev/sdb1(可选 xfs、btrfs),挂载:sudo mount /dev/sdb1 /mnt/data,如需开机自动挂载,编辑 /etc/fstab 添加对应条目。
fdisk 初始化磁盘 报错常见原因与解决方法
设备忙无法写入
当磁盘有分区被挂载或正在使用时,fdisk 会提示“Device or resource busy”,先用 df -h 查看挂载点,执行 umount /dev/sdb1 卸载,如果提示“target is busy”,使用 lsof /dev/sdb 或 fuser -km /dev/sdb 终止占用进程。
分区表损坏或残留导致无法识别
旧分区表或文件系统签名可能导致 fdisk 误判,使用 wipefs -a /dev/sdb 清除所有元数据,再重新初始化,这比 dd 清空更安全,只清除签名,不破坏整个磁盘。
分区大小设置错误
fdisk 默认使用扇区,输入大小加上单位(K、M、G、T),如果输入 +10G 但空间不足,提示“Value out of range”,使用 p 查看剩余空间,确认后再输入,如果已经写入但空间分配不合理,只能删除分区重建。
保存后无法格式化
写入分区表后格式化失败,提示“No such device or address”,通常是内核未重新读取分区表,运行 partprobe 或 hdparm -z /dev/sdb 强制刷新,如果依然无效,重启系统。
对比:fdisk 初始化磁盘 和 parted 如何选择
fdisk vs parted 主要区别
| 特性 | fdisk | parted |
|---|---|---|
| 交互模式 | 菜单式,适合新手 | 命令行直接操作,适合脚本 |
| 分区表支持 | MBR 和 GPT(新版) | MBR 和 GPT |
| 调整分区大小 | 不支持,需删除重建 | 支持在线调整 |
| 常用场景 | 快速创建分区,交互操作 | 批量分区,自动化部署 |
何时使用 fdisk
- 只需初始化一块新硬盘,创建几个分区,不想记忆复杂参数。
- 硬盘小于 2TB,使用 MBR 分区表,fdisk 足够稳定。
- 你希望逐步确认每一步,避免误操作。
何时使用 parted
- 需要在脚本中自动分区,如云服务器初始化。
- 需要调整分区大小或移动分区位置。
- 磁盘大于 2TB,必须用 GPT,且希望一步到位(parted 默认使用 GPT)。
行业共识认为,fdisk 更适合新手和临时操作,parted 更适合生产环境批量管理,如果使用 GPT 分区且需要备份分区表,也可以考虑 gdisk,它专门针对 GPT 设计,支持分区名称和 GUID 编辑。
新硬盘初始化实战:fdisk 在数据盘和系统盘中的应用
初始化数据盘
假设你新添加了一块 500GB 的硬盘,用于存储数据,使用
fdisk 创建整个硬盘为一个分区,类型为 Linux filesystem,然后格式化为 ext4,挂载到 /data,这是最常见的用法,简单高效。
初始化系统盘
如果新硬盘要作为系统盘启动,需要根据固件类型创建分区方案,对于 UEFI 系统,需要创建 EFI 系统分区(类型 EFI,大小 100M-500M),以及根分区(/),使用 fdisk 创建分区表为 GPT,然后新建 EFI 分区和根分区,最后格式化并安装系统,对于传统 BIOS 启动,使用 MBR 分区表,创建 /boot 分区(可选)和根分区即可。
初始化大容量硬盘
对于 4TB 硬盘,fdisk 必须选择 GPT 分区表,否则无法识别全部空间,使用 g 创建 GPT 标签,然后分区,注意,旧版 fdisk 可能不支持 GPT,建议先升级到 2.25 以上版本,或使用 gdisk 替代,分区后格式化为 xfs 或 ext4 均可,xfs 对大文件处理更优。
fdisk 初始化磁盘 常见问题解答
fdisk 初始化磁盘 后如何扩展分区大小?
fdisk 不支持直接扩展分区,需要删除分区并重建,但会丢失数据,建议使用 LVM 或 parted 调整分区大小,如果已使用 fdisk,可以备份数据后重新分区。
fdisk 初始化磁盘 时分区表选错怎么办?
如果已经写入错误的分区表,可以重新初始化:使用 wipefs -a 清除,然后重新运行 fdisk 选择正确的分区表类型,注意,清除操作会丢失所有数据,请提前确认。
fdisk 初始化磁盘 和 mkfs 的顺序是什么?
先使用 fdisk 创建分区,再使用 mkfs 在分区上创建文件系统,顺序不能颠倒,否则无法识别分区,fdisk 只负责划分区域,不涉及文件系统,两者是前后衔接的关系。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/515228.html



