fdisk -l 输出中 Start 列表示分区起始逻辑扇区号(LBA),单位为默认512字节扇区,实际字节偏移 = Start × 512;需结合 Sector size (logical/physical) 和 parted -l 的 Aligned: 字段综合判断是否对齐。

fdisk -l 输出里 Start 列就是物理扇区偏移
直接看 fdisk -l 输出中每个分区行的 Start 字段,它表示该分区从磁盘起始位置开始的逻辑扇区编号(LBA),也就是物理偏移位置。这个值不是字节偏移,而是以扇区为单位——默认扇区大小为 512 字节,所以实际字节偏移 = Start × 512。
常见错误是把 Start 当成字节地址,结果算错对齐或做底层恢复时定位失败。注意:NVMe 设备(如 /dev/nvme0n1)也可能用 4096 字节物理扇区,但 fdisk 仍按 512 字节逻辑扇区报告 Start,需结合 sudo fdisk -l 输出里的 Sector size (logical/physical) 行确认。
- 若输出含
Sector size (logical/physical): 512 bytes / 4096 bytes,说明物理扇区是 4K,但Start仍是 512 字节单位 - GPT 分区表下,
Start值通常 ≥ 2048(即 1MiB 对齐起点),这是现代发行版默认行为 - MBR 分区可能从
Start=63或Start=2048开始,前者易导致 SSD 性能下降(未对齐)
用 parted -l 看是否真正对齐(Aligned: yes/no)
parted -l 比 fdisk -l 多一项关键判断:Aligned: 字段。它会根据物理扇区边界(通常是 4096 字节或 1MiB)检查分区起始扇区是否满足对齐要求。
不对齐的分区在 SSD/NVMe 上会导致写放大、性能骤降,尤其在频繁小写场景。即使 fdisk 显示 Start=2048,如果磁盘物理扇区是 4K,而 2048×512 = 1MiB,那它仍是对齐的;但如果 Start=63,63×512 = 32256 字节,无法被 4096 整除,就未对齐。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 运行
sudo parted -l,找到目标设备(如/dev/sda)下的分区行 - 关注
Flags列旁的Aligned:值;yes才算安全 - 若为
no,不要直接重分区——先备份数据,再用parted新建对齐分区
lsblk 不显示扇区信息,但能快速验证分区层级
lsblk 完全不展示扇区偏移、起始/结束位置等底层信息,它的作用是确认“这个设备是不是分区、有没有挂载、属于哪个父磁盘”。比如看到 nvme0n1p1 在 nvme0n1 下缩进,就知道它是子分区;若 MOUNTPOINT 为空,说明没挂载。
有人试图用 lsblk -f 查找扇区起点,结果徒劳——它只输出 FSTYPE、UUID、NAME 这类高层信息。需要扇区级数据时,必须切回 fdisk -l 或 parted -l。
-
lsblk是排查挂载异常的第一步,不是查物理布局的工具 - 它默认不需 root 权限,适合非特权用户快速看结构
- 若发现某设备名形如
sda1却没有缩进显示在sda下,可能是 udev 规则异常或设备未正确识别
blkid 只管文件系统元数据,和扇区偏移无关
blkid 输出的是每个已识别分区的 UUID、TYPE(如 ext4)、PARTUUID 和 PARTLABEL,这些都属于文件系统层或 GPT 分区头里的标识字段,和扇区起始位置无任何计算关系。
有人误以为 PARTUUID 隐含偏移信息,其实它只是 GPT 分区表中随机生成的 128 位 ID,和 LBA 地址完全独立。想靠 blkid 推导物理位置?不可能。
-
blkid的核心用途是写/etc/fstab时避免用不稳定设备名(如/dev/sda1) - 它不读取整个磁盘,只扫描各分区开头几百字节,所以极快且安全
- 若某分区
blkid不显示,大概率是未格式化或文件系统损坏,而非偏移问题
Start 是逻辑单位,对齐判断得看 parted -l 的 Aligned:,而真实 I/O 效果还得结合磁盘的 physical sector size。三者缺一不可。

















