必须先确认磁盘路径,用lsblk或fdisk -l比对容量、型号识别真实目标设备(如/dev/sdc),避免误操作sda等系统盘;nvme盘为/dev/nvme0n1,mbr限2tb,超限需用g创建gpt表。

fdisk /dev/sdb 之前必须确认磁盘路径
直接运行 fdisk 前不确认设备名,极大概率会误操作系统盘。用 lsblk 或 fdisk -l 查看时,重点比对容量和型号(比如 /dev/sdc 是刚插上的 4TB 机械盘),避免看到 sda 就默认是新盘——很多云主机的系统盘也叫 sda。
常见误判场景:
-
lsblk输出里没显示part子节点的新设备(如只有sdb,没有sdb1)才是未分区状态 - 虚拟机热添加硬盘后,需执行
echo "- - -" > /sys/class/scsi_host/host*/scan才能被内核识别 - NVMe 盘设备名是
/dev/nvme0n1,不是sdx,别套用习惯
MBR 还是 GPT?看磁盘大小和启动方式
小于 2TB 且用于 BIOS 启动的老机器,用 MBR 没问题;其余情况一律选 GPT。fdisk 默认创建 MBR,强行在 >2TB 盘上用会报错:DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes。
正确做法:
- 新建 GPT 分区表:进入
fdisk /dev/sdb后,先输入g(不是o,o是旧式 DOS 表) - 确认成功:输入
p查看分区表时,顶部应显示Disklabel type: gpt - UEFI 系统必须用 GPT;BIOS+GPT 也能启动,但需额外配置,不推荐新手折腾
分区命令流程中三个关键确认点
交互式操作里最容易跳过的其实是「确认」环节,不是按了 w 就万事大吉。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
必须检查的三处:
- 输入
n后,选p(主分区)还是e(扩展分区)?现在基本不用e,GPT 下所有分区都是“主”级,MBR 下超过 4 个分区才需e+ 逻辑分区 - 设置大小时,写
+100G比写绝对扇区更安全;若直接回车用默认结束扇区,要再输p看是否占满整盘 - 输入
w前,务必先输p打印当前分区表——肉眼核对起始/结束扇区、大小、类型(如Linux filesystem对应代码83)
保存后内核可能没立刻识别新分区
w 退出只是把分区表写入磁盘,内核缓存未必更新,此时 lsblk 还看不到 sdb1。
立即生效的方法:
- 首选
partprobe /dev/sdb(轻量、无副作用) - 备选
partx -u /dev/sdb或blockdev --rereadpt /dev/sdb - 极端情况(如 SCSI 设备)可重启,但生产环境应避免
- 验证是否成功:
lsblk /dev/sdb能列出sdb1,且cat /proc/partitions | grep sdb显示对应行
GPT 分区表头部校验和、备份头位置这些细节,日常运维几乎不用碰;但一旦 fdisk -l 报 “Invalid partition table” 或分区消失,八成是写表时被中断或磁盘有坏道——这时候别反复重试,先用 gdisk 的恢复功能,或者从备份的 sfdisk 脚本重建。










