フルハードドライブとパーティションテーブルの検索可能なフルインクリメンタルバックアップを作成するには?

フルハードドライブとパーティションテーブルの検索可能なフルインクリメンタルバックアップを作成するには?

UEFI以前はこれが簡単でした。 ddを使用して最初の63セクタをバックアップし、rsyncを使用して/パーティション内のすべてのエントリのコピーを保持します。

今、同じことを簡単に行う方法はありますか? efiパーティションを/boot/efiとしてマウントし、/マウントポイントを使用してスワップしてデフォルトのext4パーティションをマウントします。

答え1

rsyncを使用して、ルートパーティションとESF(EFIシステムパーティション)のファイルをバックアップします。パーティションテーブルのコピーも必要な場合は、sgdisk(-bバックアップ)オプションを使用してパーティションテーブルのバックアップをファイルに保存できます.-l復元するには(ロード)を使用してください。 sgdiskのマニュアルページでは、名目上同じサイズのディスクでもサイズが多少異なる場合があるため、同じディスクにのみバックアップを復元することをお勧めします。とにかく、パーティションを手動で再作成する方が良いかもしれません。

パーティションテーブルを除くすべてが最初のGRUBステップのようにパーティション化されていないmsgicセクタではないファイルにあるので、UEFIを使用してディスクをバックアップする方が簡単だと思います。

答え2

dd if=/dev/sda of=/my/backup/image.img bs=8MバックアップされたドライブにE​​FIを維持する必要がある場合は、デバイス全体のイメージをイメージファイルにする傾向があります。

これはやや過度で時間がかかるかもしれませんが、私が知っている最も簡単な方法です。

必要に応じて、イメージをループデバイスとしてマウントし、その中のファイルを検索/管理できます。gnome-disk-utilityこの問題を処理するために使いやすいGUIが提供されています。

答え3

このバックアップはパーティションテーブルをコピーし、パーティションの内容の増分バックアップを作成しますrsync。ブラインドフルバックアップと比較しての利点は、迅速かつdd頻繁にバックアップを更新することができ、変更された情報のみを更新し、コピー内のすべてのファイルに簡単にアクセスして、バックアップを復元する前に変更または単に復元できることです。一部。

私はDebian Stretchを使用しています(コマンドの名前が異なる場合があります(例:RedHat))。

ここのすべての作業はrootで行われますので注意してください! :

su

  1. どのハードドライブがsda、sdbなどとして認識されているかを確認してください。

    fdisk -l

    バックアップしたいノートブックハードドライブの名前が/dev/sda(sda1、sda2 ...パーティションです)表示されます。

    警告:行を盲目的にコピーしないでください。バックアップしたいハードドライブがバックアップすると仮定します/dev/sdaが、あなたの場合はそうではないかもしれません。

  2. バックアップコピーを保存する場所に外付けハードドライブをマウントします。

    もう一度実行してみると、fdisk -l名前が/dev/sdb。 Debian Stretchはマウントします/media/[username]/[whatever]が、私はrootとしてマウントすることを好みます/mnt/USB/

    umount /media/[username]...
    mkdir /mnt/USB/  # this is done only this first time
    mount -t auto /dev/sdb1 /mnt/USB -rw
    mkdir /mnt/USB/backup #this is done only this first time
    mkdir /mnt/USB/backup/partition_table #this is done only this first time
    mkdir /mnt/USB/backup/files #this is done only this first time
    
  3. パーティション表タイプがMBRかGPTかを確認する

    parted /dev/sda print
    

    「パーティションテーブル:gpt」または「パーティションテーブル:msdos」が表示されます。

  4. パーティションテーブルを外付けハードドライブ上のファイルにバックアップする

    MBRテーブル(パーティションテーブル:msdos)がある場合:

    ストレージパーティションテーブル内のすべてのセクタに対してフルバイナリバックアップを作成できます。

    dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1
    

    (後で復元する方法を学びます)

    注:パーティションテーブルにいくつかの変更を記録するように求めるプロンプトが表示されるので、dd後者を好みます。試している間に誤って「Y」を押したため、めちゃくちゃになりやすいです。sfdisk

    GPTテーブルがある場合

    sgdisk --backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
    

    (後で復元する方法を学びます)

  5. すべてのファイルを外部ドライブに増分バックアップ:

    これは、あなたが私と同じで、すべての情報ツリーがぶら下がっているハードドライブにLinuxディストリビューションがインストールされていると仮定します/知識豊富なLinuxの人々はこれをより技術的な方法で書き直すことができますか?)。私の場合、/efiパーティションがマウントされているので、すべての内容をバックアップすると問題が解決しました。/boot/efiその内容もバックアップに含まれます。

    rsync -aAXv /* /mnt/USB/backup_of_laptop_hd/files --exclude={/dev/、/プロセス/、/システム/、/tmp/、/ラン/、/mnt/、/メディア/、/紛失+検索、/家//.gvfs,/var/tmp/、/家//。隠れ家/、/家//.サムネイル//、/ルート/.thumbnail//、/root/.cache/、/家//.config/VirtualBox/*} --削除

    注1:これは一つです増加バックアップ、つまり次回これを行うときにすべてをコピーする必要はありませんが、変更されたファイルのみが自動的に更新されます(削除されたファイルもコピーから削除されます)。

    ノート2:{}の間のすべてのオプションは、バックアップ(一時的なエントリなど)と仮想マシン(各マシンにカプセル化された.ovaファイルを保持することを好む)には意味がありません。

  6. すべて復元する方法:

    まず、最悪のシナリオは、ハードドライブを永遠に台無しにすることです。まず、パーティションテーブルを復元してから(パーティションテーブルがまだ存在する場合は、この手順をスキップして)、ライブUSBから起動する必要があります。

    ライブディストリビューションで端末を開き、ハードドライブ名を確認してください。

    fdisk -l
    

    私はラップトップのハードドライブがまだ/dev/sda例にあると仮定します(警告、おそらくこの時期です/dev/sdb)。

    テーブルがMBRテーブルの場合は、上記の手順に従ってバックアップを含む外付けハードドライブをマウントしてから、次の手順を実行します。

    dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda
    

    ただし、テーブルがGPTテーブルの場合は、次のようになります。

    sgdisk --load-backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
    

    すでにこれを行った場合、またはパーティションが破損していないために回復する必要がない場合は、すべてのファイルを回復する必要があります。これは、作業中のシステムで非常に安全に使用して最後のバックアップに復元することもできます。

    rsync -aAXv /mnt/USB/backup/files/* / --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/var/tmp/*,/home/*/.cache/*,/root/.cache/*} --delete
    cp /mnt/USB/backup/files/vmlinuz / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/vmlinuz.old / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/initrd.img / --preserve=all --remove-destination
    cp /mnt/USB/backup/files/initrd.img.old / --preserve=all --remove-destination
    

    コメント:rsync何らかの理由でツリーのルートにあるファイルは直接復元されないため、コマンドに最後の4行を追加する必要がありました。また、フォルダが/に直接配置され、コンピュータから削除されても、バックアップから削除されません。これは問題を引き起こすことはありませんが、そのファイルとライブラリがもう存在しないため、リンクしたり、必要な人がいなくても、見苦しいです。ここでrsync構文を修正するのに役立つ人はいますか?

    ついに、

    grub-install /dev/sda
    

注1:上記のrsync構文を使用してシステムを以前の状態に復元することがよくありますが、パーティションテーブルを復元する必要はありませんでした。

  1. そうすることは本人の責任であり、
  2. この回答を改善するには、いつでも変更を提案してください。

ノート2:簡単にするために、MBRパーティションについては使用法のみを紹介しますdd。拡張パーティションがある場合は、次のようにバックアップしてください。

    dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1

    sfdisk -d /dev/sda > /mnt/USB/backup/partition_table/backup-sda.sfdisk

次の方法でMBRとパーティションテーブルを復元します。

    dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda

    sfdisk /dev/sda < /mnt/USB/backup/partition_table/backup-sda.sfdisk

関連情報