計算SATA儲存裝置的容量大小

2021-06-28 07:31:37 字數 476 閱讀 6730

要知道容量大小,需先讀取sata裝置的identify data,缺省略去此步。

假設已經讀取出sata device identify data,讀取word 100~103的lba資料(cf卡需讀取word 60~63)作為計算容量大小的資料來源(記為s),

容量大小以g為單位,計算式為  size = (s / 2 / 1024 / 1024) / 93%

ps: 因為每個扇區為512b或者4k,因為測試用到的硬碟基本都小於3t,這裡取512b計算,s/2後即可算得該裝置上 1k資料空間的個數。

簡化為,僅讀取word 61,62(記為s2),忽略低16位資料,

size = (s2 / 2 / 16 + 1) / 93%

ps:「+1」 的作用為, 可以保證顯示值為整數,比如,顯示為32.0g,而不是31.9g

93%為個人估算,93%~96%均可嘗試一下

實測結果:固態硬碟,cf卡,機械硬碟均可以正確計算。

資料儲存容量大小的描述

資料越來越多,硬碟也越來越大,開始是幾兆,然後幾十,幾百兆,目前都發展到以t來作為儲存單位了。這些單位都有哪些呢?如下 kilo k meg m giga g tera t peta p exa e zetta z yotta y 在電子及物理領域,如物理的質量 功率 能量 電壓 電流等,是以10為...

修改虛擬機器的硬碟容量大小

很多人在安裝虛擬機器linux的時候,為了節省硬碟空間,把硬碟容量設定得較小,可是後來發現硬碟容量不夠用了。在vmware中又不能直接修改虛擬機器的硬碟容量大小,或者重建虛擬機器系統,非常麻煩。其實在vmware6.0安裝目錄下有乙個命令列工具 vmware vdiskmanager.exe 程式,...

Linux管道的容量大小及管道的資料結構

一.管道容量 我們通過ulimit a命令檢視到的pipo size定義的是核心管道緩衝區的大小,這個值的大小是由核心設定的 而pipe capacity指的是管道的最大值,即容量,是核心記憶體中的乙個緩衝區。1.首先我們通過命令來看一下核心管道緩衝區的大小 2.我們可以通過乙個程式來測試管道的最大...