场景是这样的:某品牌电脑在硬盘的最后1G做了HPA,供它们自己的恢复程序用。我已用hdparm取消了HPA,在使用dd命令或者tail取最后1G数据的时候,总是失败。表现为命令卡在那里很长时间,Ctrl+C后发现导出的文件是0字节。但是先用cat /dev/sda备份硬盘数据为sda.img,再用dd或者tail就可能从sda.img拿到最后1G数据。请问,这是什么原因呢?/dev/sda是否有某些限制?
估计只有分析一下 dd 及 cat 的源码,看看在读磁盘文件的区别