当类似磁盘的设备没有安装卷时,如何知道它使用的块大小?

当类似磁盘的设备没有安装卷时,如何知道它使用的块大小?

这看起来非常简单,而且我认为用过的知道如何找出答案,但是……

在 Mac OS 10.4 上,我想使用 在两个设备之间进行原始复制。如何知道传递给和 的最佳块大小是多少?dd if=inputdev of=outputdev ibs=?? obs=??ibsobs

相关信息— SO 上有一个问题,dd 中 ibs/obs/bs 的用途,Jonathan Leffler 给出了非常好的回答。

后记:看起来很难,恐怕。来自关于 drawin-drivers 列表的消息

问题在于,IORegistry 中的大小和首选块大小信息对于开放式会话 CD-R 光盘不可靠,并且为了提供与最广泛的设备的兼容性,我需要向设备发出一系列 SCSI 命令以确定光盘上最后写入的实际块在哪里,以及介质的实际块大小是多少。

因此首选块大小在 IO 注册表中,即使可以访问,也可能是错误的......

但获取这些信息的可靠方法仍然是有价值的。

答案1

如果为这些设备加载驱动程序,则应在 IORegistry 中记录它们的块大小。如何在所述注册表中找到所需的条目,对于不了解相关设备的更多信息的人来说,任何人都无法猜测。无论哪种方式,您都很可能只使用 512。

如果加载的驱动程序对您来说不够可靠,那么您基本上必须自己编写驱动程序。据我所知,没有办法从命令行向设备发送原始 ATA 或 SCSI 命令,但其他人可能知道一些我不知道的东西。

相关内容