如何通过CLI写入磁盘的最后4字节(以dd工具为例)
如何通过CLI写入磁盘的最后4字节(以dd工具为例)
嘿,在动手用命令行操作磁盘写入之前,我必须先给你敲个重中之重的警钟:
警告:这些命令(脚本)会直接删除或修改磁盘上的数据!操作前务必备份所有重要数据,一旦数据丢失,责任得由你自己承担。
首先,你得先搞清楚自己要操作的磁盘设备名——绝对不能搞错盘!用这两个命令就能查到准确的设备名:
blkidlsblk
一定要反复确认dd命令里用的设备名是对的,毕竟输错的话,可能会把你存了几年的照片、文档全搞没。
另外给你个实操的安全建议:
如果你只是想测试这些命令,千万别拿存了重要数据的盘试!找一块空的备用盘,或者完全没分区、没数据的新磁盘来做实验。操作前把其他无关的硬盘都拔掉,只留启动系统的盘和你要测试的盘,这样能把误操作的风险降到最低。
接下来咱们说说用dd操作磁盘末尾的几种实际测试情况:
- 脚本1(用
bs=512):正常工作,能把磁盘最后512字节全部填充为0 - 脚本2(用
bs=512):也能正常运行,会把磁盘最后512字节填充为随机数据 - 脚本3(尝试用
bs=4):完全失败,没法把磁盘最后4字节填充为0
给你看实际的测试数据:
执行脚本3(
bs=4)前,磁盘末尾的16字节是:6f4d 5db0 b676 ae28 35f7 2570 7e0e 4287
执行脚本3后,结果变成了:6f4d 5db0 b676 ae28 35f7 2570 7e0e 42...——很明显最后4字节根本没被置0
这里要划重点:dd的bs(块大小)参数真的很关键!像脚本3用bs=4这种小 block 大小,很可能会和磁盘的物理扇区对齐要求、或者设备的最小读写单位冲突,导致你的写入指令根本没落到你预期的磁盘最后4字节的位置上,自然就达不到想要的效果了。
备注:内容来源于stack exchange,提问作者joseph22
相关产品推荐
相关产品推荐

