dd
を使用してドライブの最後から読み取るにはどうすればよいですか? size - to_read
を使用することを考えましたが、サイズをバイト単位で取得する方法がわかりません。
'dd'である必要がありますか? GNU 'ddrescue'には便利な「リバース」オプションがあります:
# copy the last 1K from '/dev/sdc' to '/tmp/c_end'
% ddrescue --reverse --max-size=1Ki /dev/sdc /tmp/c_end
Press Ctrl-C to interrupt
rescued: 1024 B, errsize: 0 B, current rate: 1024 B/s
ipos: 0 B, errors: 0, average rate: 1024 B/s
opos: 0 B, time from last successful read: 0 s
Finished
ディスクの合計サイズをバイト単位で取得します。
fdisk -l/dev/sda ディスク/ dev/sda:1000.2 GB、1000204886016バイト 255ヘッド、63セクター/トラック、121601シリンダー 単位= 16065のシリンダー* 512 = 8225280バイト デバイスブート開始エンドブロックIDシステム /dev/sda1 * 1 7 56196 fdLinuxレイド自動検出 /dev/sda2 8 257 2008125 83 Linux /dev/sda3 258 121602 974698231+ fd Linux raid autodetect
Ddを使用してディスクから最後の100バイトを取得します。
dd if =/dev/sda of = /tmp/endofdisk.data bs = 1 skip = 1000204885916 count = 100
Fdisk出力の最初の行にあるディスクの合計サイズに注意してください。私は1バイトのブロックサイズを使用しましたが、もちろん、2バイト以上をコピーする場合は、1Kまたは1Mのブロックを使用してください。サイズを手動で計算し(1024で除算)、1Kブロックの場合はbs=1
をbs=1024
に置き換えます。