Linux でディスクのサイズを取得する最も簡単な方法は、blockdev --getsz
を使用することです。 :
sudo -s
dd bs=512 if=/dev/zero of=/dev/sdx count=2048 seek=$((`blockdev --getsz /dev/sdx` - 2048))
各パーティションのサイズは /proc/partitions
で利用可能です .次のコマンドは、sdx
のサイズを示しています。 (kB 単位):
awk '$4 == "sdx" {print $3}' </proc/partitions
したがって:
dd if=/dev/zero of=/dev/sdx bs=1k count=1024 \
seek=$(($(awk '$4 == "sdx" {print $3}' </proc/partitions) - 1024))
シークを使用してドライブの最後に到達すると、非常にうまく機能します。つまり:
<ブロック引用>
seek=$((blockdev --getsz /dev/sda
- 2048))
ただし、これを使用する場合は、カウント値が正しいことを知っているか、まったく使用しないことをお勧めします。私がこれを言う理由は、ドライブが 512 バイト セクターまたは 4k セクターのいずれかを持つことができ、4k セクターを持つドライブでこのソリューションを使用すると、そのカウント値でドライブの最後に移動しないためです。最後に RAID 情報を見逃す可能性があります (私はこれに遭遇しました)。