Linux查看隐藏分区及所有扇区命令
时间:2026-03-26 15:33:46 464浏览 收藏
本文深入解析了Linux系统中“隐藏分区”显示异常的常见误区与真实原因,指出所谓“看不到”往往并非分区真正消失,而是因分区类型标识(如Hidden NTFS)、GPT/MBR元数据冲突、内核未重读分区表、udev过滤或工具兼容性限制所致;文章不仅澄清fdisk -l 本就不过滤分区的本质,还系统提供了gdisk、partprobe、lsblk、blkid、dd+hexdump等实用命令的精准使用场景与排错步骤,强调区分“逻辑不可见”与“物理不存在”的关键思维,并警示裸设备操作风险,帮助用户从底层原理出发,科学诊断和全面掌控磁盘扇区与分区状态。

fdisk -l 显示不了隐藏分区?先确认是不是被标记为“隐藏”类型
Linux 下所谓“隐藏分区”,通常指分区表中类型 ID 被设为 0x17(Hidden NTFS)、0x1b(Hidden FAT32)等带 Hidden 前缀的 Windows 分区类型。这些分区在 fdisk -l 里仍会显示,但可能被忽略或不挂载——不是“看不见”,而是“被跳过”。fdisk 本身不过滤分区,它只读取 MBR/GPT 结构;真正影响显示的是工具对分区类型的处理逻辑。
实操建议:
- 用
sudo fdisk -l /dev/sda查看完整设备,注意每行开头的Device列和末尾的Type列,找含Hidden字样的描述 - 若
Type是Microsoft basic data但实际是 Windows 隐藏恢复分区,说明用了 GPT + Microsoft 属性位(非传统隐藏 ID),此时fdisk不识别“隐藏”语义,得换工具 - 遇到空设备或显示
No partition table,可能是分区表损坏或使用了 LVM/RAID/加密层,fdisk看不到逻辑层以下内容
lsblk -f 和 blkid 都不显示某个分区?检查是否被 udev 过滤或未扫描
lsblk -f 和 blkid 依赖内核块设备信息和 udev 数据库,如果分区存在但没出现在输出里,大概率是内核没识别到该分区(比如分区表未重读、设备忙、或分区起始扇区错位)。它们不会主动“隐藏”分区,但也不会自动刷新分区表状态。
实操建议:
- 执行
sudo partprobe /dev/sda强制内核重新读取分区表(尤其在修改过fdisk后未重启时) - 检查
/sys/block/sda/sda1/start是否有数值,没有说明内核根本没解析出这个分区节点 - 运行
sudo dmesg | tail -20,看是否有类似sda: sda1 sda2 sda3的识别日志,或报错如partition #4 has size 0 - 某些 USB 设备或 NVMe SSD 在热插拔后需手动触发扫描:
echo 1 | sudo tee /sys/block/nvme0n1/device/rescan
想看到所有扇区(包括未分配、空闲、保留区)?别用分区工具,用 dd + hexdump
分区工具(fdisk、parted)只关心已定义的分区边界,不展示“空白扇区”。要真看到物理磁盘上每个扇区内容(比如 MBR、EBR、GPT 头、空闲空间),必须绕过分区抽象层,直接读裸设备。
实操建议:
- 用
sudo dd if=/dev/sda bs=512 count=1 | hexdump -C查看第一个扇区(MBR 或 GPT 头) - GPT 设备还需检查末尾:计算总扇区数
sudo blockdev --getsz /dev/sda,再读最后 1 扇区:sudo dd if=/dev/sda bs=512 skip=$(( $(blockdev --getsz /dev/sda) - 1 )) count=1 | hexdump -C - 注意:直接读写裸设备极危险,
dd参数写错可能清空整个盘;操作前确认设备名(lsblk对照),避免误操作/dev/sda变成/dev/sdb - 若需可视化扇区布局,
gdisk -l /dev/sda比fdisk更清楚显示 GPT 备份头位置和保护区域
为什么 gdisk 能看到但 fdisk 看不到某些分区?MBR 和 GPT 元数据冲突
当一块盘既写过 MBR 又写过 GPT(比如用 Windows Disk Management 清除 GPT 后又用 Linux 工具重写),可能残留混合元数据。fdisk 只认 MBR,gdisk 只认 GPT,两者互不兼容。这时一个工具看到的“分区”,另一个可能完全无视——不是漏了,是压根不解析那种格式。
实操建议:
- 运行
sudo gdisk -l /dev/sda和sudo fdisk -l /dev/sda对比输出,若前者显示分区而后者只显示Disk /dev/sda: ... bytes, ... sectors且无 Device 行,基本可判定是纯 GPT 盘,fdisk旧版本不支持 - 检查
sudo fdisk -l /dev/sda输出顶部是否含Partition Table: gpt,不含则fdisk当作无分区处理(即使 GPT 头有效) - 解决办法不是“强制显示”,而是统一工具链:GPT 盘优先用
gdisk、parted;需要兼容老系统时,用sgdisk --mbrtogpt转换(慎用)
真正难的不是命令怎么敲,而是分清“没显示”到底是内核没识别、工具不支持、还是分区本身不存在。尤其是混合分区表和 NVMe 设备,lsblk 和 fdisk 的输出差异背后,往往是不同内核模块对同一块设备的解释分歧。
理论要掌握,实操不能落!以上关于《Linux查看隐藏分区及所有扇区命令》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
379 收藏
-
125 收藏
-
141 收藏
-
500 收藏
-
100 收藏
-
459 收藏
-
338 收藏
-
395 收藏
-
105 收藏
-
165 收藏
-
137 收藏
-
455 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习