それマグで!

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

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

Linuxのfdisk と OSX (bsd) の fdisk の読み方の違い

OSX の fdisk と linux の 実行表示結果に差異があったので、ちょっと考えてみた。

使ったディスクイメージはRaspberryPi のディスクイメージ。

linux の場合

takuya@ubuntu:~$ fdisk -l -u rasbian.img

Disk rasbian.img: 16.1 GB, 16122904576 bytes
255 heads, 63 sectors/track, 1960 cylinders, total 31490048 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00047c7a

      Device Boot      Start         End      Blocks   Id  System
rasbian.img1            8192      122879       57344    c  W95 FAT32 (LBA)
rasbian.img2          122880    31490047    15683584   83  Linux

 mac osx の場合

takuya@rena:~/Desktop$ fdisk  ./rasbian.img
Disk: ./rasbian.img geometry: 1960/255/63 [31490048 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    0 130   3 -    7 165  30 [      8192 -     114688] Win95 FAT32L
 2: 83  896   0   1 -  511   3  16 [    122880 -   31367168] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

同じことが書いてあるけれど、書き方が違う。

2つの実行結果はいっけん違って見えるけれど、良く見ると同じ。

  • セクタサイズ 512B
  • (仮想)ヘッド数 255
  • (仮想)シリンダ数 1960
  • (仮想)セクタ数 63

と同じものが違う形式で表示されている。

開始と終了とサイズ。

Linuxは開始セクタ番号-終了セクタ番号で書いていて、一方でOSX は 開始セクタ番号+セクタ数で書いている。こちらも同じことですね。

OS 書き方
mac OSX 開始セクタ番号 , サイズ
linux 開始セクタ番号 , 終了セクタ番号

なので、 [サイズ] = [終了セクタ番号] - [開始セクタ番号] + 1

とすれば、確かに一致する。序数(番号)と個数なので植木算ですね

実際に計算してみる。

31490047 - 122880 = 31490047

なので、サイズは 植木算的に+1をすれば

31490047 + 1 = 31490048

となり、一致する。

なので、何もビビることはないってわかり一安心。