Linux/ディスクイメージ取得

itefuの廃止時に、ディスク全体のイメージを取った。

mountで構成を表示してメモしておく。
例:

/dev/hda1 /
/dev/hda6 /var
/dev/hda7 /usr
/dev/hda8 /home

正しくイメージが取れるよう、リードオンリーマウント

mount -o ro,remount /var
mount -o ro,remount /usr
mount -o ro,remount /home
mount -o ro,remount /

mountで確認すると、/がrwのままだが、これは表示が間違っているだけ。
/etc/mtabに書き込めなくなるので、情報が更新できないためらしい。
例えば touch /hoge で、roになっているのが確認できる。

イメージを取得。

dd if=/dev/hda1 bs=16M | ssh 192.168.0.4 "dd of=/path/to/backup/root.dd-image"
dd if=/dev/hda6 bs=16M | ssh 192.168.0.4 "dd of=/path/to/backup/var.dd-image"
dd if=/dev/hda7 bs=16M | ssh 192.168.0.4 "dd of=/path/to/backup/usr.dd-image"
dd if=/dev/hda8 bs=16M | ssh 192.168.0.4 "dd of=/path/to/backup/home.dd-image"

マウントしてファイルが読めることを確認

mount -o loop,ro /path/to/backup/root.dd-image /mnt/root

CPUネック対策

古いPCからのddだと、sshの暗号化(圧縮も?)がCPUネックになる。
ncを使うと改善できそう(圧縮アルゴリズムも選べる)

## 送信
# dd if=/dev/vda | lz4 -c | nc 192.168.0.2 4444

## 受信(192.168.0.2)
# nc -l 4444 | lz4 -cd | dd of=/dev/vdb

lz4はデフォルトで入ってないので、環境によってはgzipでも

## 受信側 (先に実行, @ 192.168.139.4)
$ nc -l 4444 | gzip -cd | dd of=whole_drive.dd-img

## 送信側
$ sudo dd if=/dev/disk/by-id/ata-NGFF_2280_256GB_SSD_2022061302250 | gzip -c | nc 192.168.139.4 4444

圧縮したまま保存したいなら、受け側のgzip -cdを外せばたぶんいける