lsblk与fdisk -l需交叉比对:先用lsblk确认物理设备是否被内核识别,再用fdisk -l核验分区表合法性;比对分区数量、挂载点、文件系统类型及lvm状态,定位硬件、驱动、分区表或文件系统问题。

直接用 lsblk 看拓扑,再用 fdisk -l 核验分区表细节,两者互补——前者告诉你“现在连着什么、挂在哪”,后者告诉你“分区是怎么划的、是否合法”。关键不是分别执行,而是交叉比对。
看物理设备是否存在且被内核识别
运行 lsblk,重点关注 NAME 列中无缩进、以 disk 为 TYPE 的行(如 sdb、nvme0n1)。这些代表真实物理块设备。若某块新硬盘在 /dev/ 下有节点(如 /dev/sdc),但 lsblk 输出里完全没出现,说明内核未识别或驱动异常。此时再执行 sudo fdisk -l | grep "Disk /dev",看是否列出同一设备。两者都缺失,基本可判定硬件连接或驱动问题。
比对分区数量与命名一致性
在 lsblk 输出中,找到某个 disk 行(如 sda),观察其子项(缩进显示的 sda1、sda2 等)有多少个;然后运行 sudo fdisk -l /dev/sda,查看 “Device” 列下实际列出的分区条目数。二者应一致。常见不一致情况包括:
-
lsblk显示sda1和sda2,但fdisk -l /dev/sda报错“Unable to open /dev/sda”,说明设备节点损坏或权限不足 -
fdisk -l列出 4 个分区,lsblk只显示 2 个子项,大概率是分区表类型不兼容(如 GPT 分区被误用 MBR 工具读取)或部分分区标志损坏
验证挂载点与文件系统是否匹配
先用 lsblk -f 查看每个 part 行的 FSTYPE 和 MOUNTPOINT 字段;再用 sudo blkid /dev/sda1 单独检查该分区的 TYPE 和 UUID。若 lsblk -f 中 sda1 的 FSTYPE 为空,但 blkid 能正确输出 TYPE="ext4",说明该分区尚未格式化或文件系统损坏;若两者都为空,而 fdisk -l 明确显示该分区存在,则需用 mkfs 重建文件系统。
排查未挂载但已就绪的可用分区
在 lsblk 输出中,找 TYPE=part 且 MOUNTPOINT 为空白的行(如 sdb1),确认其 SIZE 合理、FSTYPE 非空;再对照 fdisk -l /dev/sdb 中该分区的 Start/End 扇区和 Id 类型(如 83 表示 Linux,8e 表示 LVM)。若 Id 是 8e 但 lsblk 没显示 lvm 子项,说明 LVM 元数据未初始化,需补做 pvscan 或 vgscan;若 Id 是 83 且 FSTYPE 正常,就可直接 mkdir /mnt/data && mount /dev/sdb1 /mnt/data。











