それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ディスクイメージの容量表示と計算。HDDやSDカードなど、

HDDの容量と実際の容量が異なることはよくある話。

たとえば、8GBのディスクイメージは次のように表示される。

8GBだけど、7. 97 GBと表示される。

実際にどのような計算になっているのか

fdisk をして、掛け算して計算してみよう。

takuya@rena:~/Desktop$ sudo fdisk /dev/disk1
Disk: /dev/disk1  geometry: 968/255/63 [   sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0B    0 130   3 -  968 220  20 [      8192 -   15556608] Win95 FAT-32
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

実際の容量?

商品の容量は8GBだったとして、その通りの容量がないのはみんな知ってる。

ディスクは512Bを1セクタとしているので、容量は次のように「表記」される。

使えるバイト数

バイト数 = セクタ数xセクタ容量 なので、次のように計算される。

15564800*512 = 7,969,177,600 

表示上のバイト数

ディスクイメージやファイルの容量は、次のように計算される。

15564800*512/1000/1000/1000 =  7.9691776 ≒ 7,97 GB

ただし、1024 で換算すると・・・

15564800*512/(2^30) = 7.421875 

ディスクイメージを扱うときは、GB や MB などLinuxコマンドは容量を受け付けてくれるし、セクタ数も使えるので、単位には十分に注意しないと。。。

参考資料

http://pc.watch.impress.co.jp/docs/2003/0922/it010.htm

http://archive.linux.or.jp/JF/JFdocs/Large-Disk-HOWTO-3.html

http://ossfan.net/manage/linux-16.html