fdisk -l 默认只扫描启动时已识别的块设备,热插拔u盘需通过dmesg确认内核识别、检查/dev/sd*节点是否存在;msdos即mbr,gpt为uefi标准分区表;/dev/sda是磁盘,/dev/sda1是其分区;fdisk以扇区为单位,parted默认字节但可设unit s对齐。

fdisk -l 显示分区表时为什么看不到新插入的U盘
因为 fdisk -l 默认只扫描系统启动时已识别的块设备,热插拔设备(如U盘、NVMe SSD)可能未被内核重新枚举。需要先触发设备重扫描或确认设备节点是否存在。
- 运行
dmesg | tail -20查看内核是否识别到设备,留意类似sdb: sdb1的日志 - 检查
/dev/sd*或/dev/nvme*n1是否出现新节点;若无,可能是权限或udev规则问题 -
fdisk -l不支持GPT扩展属性(如分区名、UUID),仅显示基础几何信息,对UEFI启动盘容易误判
parted -l 输出里“msdos”和“gpt”到底代表什么
这是分区表类型(Partition Table Type),不是文件系统类型。它决定磁盘如何组织分区元数据,直接影响最大分区数、单分区大小上限和启动兼容性。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
msdos即MBR:最多4个主分区(或3主+1扩展),单分区≤2TiB,BIOS启动必需 -
gpt:支持128+分区(具体取决于固件),单分区理论无上限(实际受文件系统限制),UEFI启动标准要求 -
parted -l会明确标出Partition Table: gpt或msdos,但不会告诉你该盘是否可启动——得结合boot标志和EFI系统分区存在性判断
fdisk 和 parted 查看时,/dev/sda1 和 /dev/sda 这两个路径有什么区别
/dev/sda 是整块磁盘设备节点,/dev/sda1 是其上第一个分区。查看分区表必须作用于磁盘设备(/dev/sda),而非分区设备(/dev/sda1)。
-
fdisk /dev/sda1会报错:Unable to open /dev/sda1: Not a block device(实际是“不是整块磁盘设备”) -
parted /dev/sda1 print同样失败,提示Error: /dev/sda1: unrecognised disk label - 正确写法永远是
fdisk -l /dev/sda或parted /dev/sda print,省略路径则默认扫描所有磁盘,但可能漏掉未挂载的NVMe或iSCSI设备
为什么 parted 显示的“Start”数值和 fdisk 的“Start”列差很多
两者单位不同:fdisk -l 默认以**扇区(sector)为单位**(通常是512字节),而 parted print 默认以**字节(Byte)为单位**显示起始位置——但注意,parted 的输出里如果带 MB、GB 后缀,才是换算后的十进制值;纯数字则仍是扇区数。
- 例如
parted /dev/sda unit s print中的s表示 sector,此时与fdisk对齐;用unit MiB则显示为MiB单位 - 更可靠的方式是统一用
lsblk -f查看挂载点、文件系统和UUID,它不涉及单位混淆,且能反映实际挂载状态 - 别依赖起始扇区值做手动计算——现代工具(如
growpart)直接操作分区边界,人为算偏移极易出错
fdisk、parted、lsblk 时,单位、设备范围、GPT/MBR语义差异会悄悄导致误判。真正关键的不是“看到什么”,而是“这个值在当前上下文中意味着什么”。










