![当类似磁盘的设备没有安装卷时,如何知道它使用的块大小?](https://linux22.com/image/1231886/%E5%BD%93%E7%B1%BB%E4%BC%BC%E7%A3%81%E7%9B%98%E7%9A%84%E8%AE%BE%E5%A4%87%E6%B2%A1%E6%9C%89%E5%AE%89%E8%A3%85%E5%8D%B7%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E5%AE%83%E4%BD%BF%E7%94%A8%E7%9A%84%E5%9D%97%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
这看起来非常简单,而且我认为用过的知道如何找出答案,但是……
在 Mac OS 10.4 上,我想使用 在两个设备之间进行原始复制。如何知道传递给和 的最佳块大小是多少?dd if=inputdev of=outputdev ibs=?? obs=??
ibs
obs
相关信息— SO 上有一个问题,dd 中 ibs/obs/bs 的用途,Jonathan Leffler 给出了非常好的回答。
后记:看起来很难,恐怕。来自关于 drawin-drivers 列表的消息:
问题在于,IORegistry 中的大小和首选块大小信息对于开放式会话 CD-R 光盘不可靠,并且为了提供与最广泛的设备的兼容性,我需要向设备发出一系列 SCSI 命令以确定光盘上最后写入的实际块在哪里,以及介质的实际块大小是多少。
因此首选块大小在 IO 注册表中,即使可以访问,也可能是错误的......
但获取这些信息的可靠方法仍然是有价值的。
答案1
如果为这些设备加载驱动程序,则应在 IORegistry 中记录它们的块大小。如何在所述注册表中找到所需的条目,对于不了解相关设备的更多信息的人来说,任何人都无法猜测。无论哪种方式,您都很可能只使用 512。
如果加载的驱动程序对您来说不够可靠,那么您基本上必须自己编写驱动程序。据我所知,没有办法从命令行向设备发送原始 ATA 或 SCSI 命令,但其他人可能知道一些我不知道的东西。