web-dev-qa-db-ja.com

lsblkで指定されたサイズがlsblk -bのサイズと異なるのはなぜですか

コマンドlsblkで134Gに表示されるディスクがありますが、lsblk -bでより大きな数字(約10G以上)

lsblkとlsblk -bでサイズが異なるのはなぜですか

#lsblk 
NAME        MAJ:MIN RM          SIZE RO TYPE  MOUNTPOINT
sda           8:0    0  134G  0 disk 
[...]
# lsblk -b
NAME        MAJ:MIN RM          SIZE RO TYPE  MOUNTPOINT
sda           8:0    0  147035272690  0 disk 
[...]
4
user624703

実際、違いはそれほど大きくありません。ギガバイト、メガバイトなどは1000ではなく1024の倍数であることに注意してください。したがって、メガバイトは1024です2 ギガバイトは1024です3

多くのプログラミング言語は、便利な シフト演算子 を提供します。これにより、メガバイト、ギガバイト、キロバイト、その他の-バイト間で変換できます。ここでは、Perlを使用して、2つの値が実際にそれほど変わらないことがわかります。

## How many bytes is 134G?
$ Perl -le 'print 134<<30'
143881404416

## How many gigabytes is 147035272690 bytes?
$ Perl -le 'print 147035272690>>30'
136

数字の間にはまだ2Gの不一致がありますが、10Gに近いところはありません。私はその違いがどこから来たのか本当に知りません。 (おそらく floor 関数を使用して)丸めステップが関係していると思われますが、詳細はわかりません。

2
terdon

あなたが思うように多くの違いはありません。
1 GB = 1,073,741,824バイト
次に、134 GBをバイトに変換します。
134GB =(134)x(1,073,741,824)= 143881404416バイト

0
janasaiarun