簡単な解決策は、「/usr/bin/split」を使用することです。ファイルを断片に分割するだけです。入力ファイル名として「-」を使用して、標準入力から読み取ることができます。分割の良い点は、それが単純であることです。実際にはツールチェーンに影響を与えず、「cat」を使用してファイルを「結合」して、ファイルをまとめて戻す (または別のアプリにパイプする) ことができます。
おそらく tar
の使用を検討したいでしょう 、KPWINCが言うように、しかしあなたの質問に直接答えるために、あなたは dd
を使いたいです の「スキップ」オプション。
前述のように、最初のコマンドが次の場合:
sudo dd if=/dev/sdf1 bs=4096 count=150GB | gzip > img1.gz
次に、2 番目は次のようになります:
sudo dd if=/dev/sdf1 bs=4096 skip=150GB count=40GB | gzip > img2.gz
そして 3 番目:
sudo dd if=/dev/sdf1 bs=4096 skip=190GB count=120GB | gzip > img3.gz
とはいえ、「GB」サフィックスが意図したとおりに機能するかどうかはわかりません。与えられたブロックサイズからその数のギガバイトを取得する方法がわかりません。私なら次のようにします:
dd if=/dev/sdf1 bs=`expr 10 * 1024 * 1024` count=`expr 15 * 1024 * 1024 * 1024`
数学を確実にするために。
ああ、コピーするときにデバイスが変更されていないことを確認してください。それはまずいでしょう。
それは私のコマンドラインです:
dd if=/dev/sda bs=4M | gzip -c | split -b 2G - /mnt/backup_sda.img.gz
この方法で 2GB のファイルが作成されます:
backup_sda.img.gz.aa
backup_sda.img.gz.ab
backup_sda.img.gz.ac
復元:
cat /mnt/UDISK1T/backup_sda.img.gz.* | gzip -dc | dd of=/dev/sda bs=4M
お役に立てば幸いです。