/homeディレクトリをNTFSパーティションにバックアップする最善の方法は何ですか? [閉鎖]

/homeディレクトリをNTFSパーティションにバックアップする最善の方法は何ですか? [閉鎖]

/home毎週Linux(Lubuntu 20.04)を使用してコンピュータパーティションをバックアップしたいと思います。問題は、私が持っている唯一の追加のハードドライブがWindowsコンピュータに接続されていることです。 Windowsは、サードパーティ製のツールがなければ管理または分割できないようですext3(これらのツールがどれほど安定しているかわかりません)。ext4NTFSボリュームにバックアップする以外に選択肢がないようです。

さて、ここで問題が発生します。正しいことは何ですか?

同様の質問が見つかりましたこのスレッドしかし、10年前に質問を受けて答えを受けました(許可された答えよりも具体的な2番目の答えについて話しています)。便宜上、関連部分をここにコピーした。

サポート:

ionice -c2 -n5 nice -n9 tar czvf - /media/somelinuxdrivepath | split -b 16m - /media/usb/ntfsmounted/back.tar.gz.

バックアップコピーから復元するには:

ionice -c2 -n5 nice -n9 cat /media/usb/ntfsmounted/back.tar.gz.* | tar xzvf - /media/somenewlinuxpath

ただし、この回答には3つの質問があります。

  1. 10年という時間は長い時間なのですが、それ以来もう少し信じられていて、またはもっと便利なものが出てくるかもしれませんか?
  2. コマンドの前の部分をよく理解していないし、試してみましたが、tar私の範囲外です。
  3. 私の場合、/homeパーティションのサイズは200GBを超えました。平日にいくつかのファイルを変更する場合は、週末ごとにすべてのファイルをバックアップするのが合理的ですか?これはRsync論理的な選択のように聞こえますが、パーティションを完全に回復するために使用できる完全なコピーですか?

答え1

Linux で ntfs と他のファイルシステム間でコピーする場合、および以下を使用してファイルの権限/所有権をバックアップ/復元できgetfaclますsetfacl

サポート:

cp -rv /home /mnt/ntfs_vol 
getfacl -R /home | xz -9 > /mnt/ntfs_vol/home_permissions.txt.xz

再び覆う:

cp -rv /mnt/ntfs_vol/home / 
setfacl --restore <(xzcat /mnt/ntfs_vol/home_permissions.txt.xz)

編集する:

以前の意見では、誰かが公式と非公式のバックアップ/検証の違いについて言及しました。これを次のrsyncように置き換えることができますcp

TS=$(date '+%Y%m%d%H%M%s') ; rsync -avv /home \
/mnt/ntfs_vol                                 \
--log-file="/mnt/ntfs_vol/rsync.${TS}.log" && \
getfacl -R /home                              \
| xz -9 > "/mnt/ntfs_vol/home_permissions.${TS}.txt.xz"

引用:

https://superuser.com/questions/1002074/linux-command-line-to-create-a-log-file-for-rsync

ファイル権限のバックアップと復元

これより正式な検証が必要な場合は、マニフェストの暗号化ハッシュを生成することもできます。

apt install parallel 

TZ=$(date '+%Y%m%d%H%M%s') ; find /home \
-type f | parallel sha256sum {}         \
> "/mnt/ntfs_vol/backup.${TZ}.manifest"

そして以下を確認してください:

sha256sum --quiet -c /mnt/ntfs_vol/backup.2023122707571703692656.manifest

名前や何らかの理由でtarが好きではありませんが、アーカイブ形式が好きなら、別の一般的な選択肢があります。

find /home | cpio -vo > /mnt/ntfs_vol/archive.cpio

この形式の内容を確認すると、次のようになります。

find /usr/include/ | cpio -o | hexdump -C | head -n 20
00000000  c7 71 1d 00 9c 09 ed 41  00 00 00 00 01 00 00 00  |.q.....A........|
00000010  83 65 9c 05 0e 00 00 00  00 00 2f 75 73 72 2f 69  |.e......../usr/i|
00000020  6e 63 6c 75 64 65 2f 00  c7 71 1d 00 f9 47 ed 41  |nclude/..q...G.A|
00000030  00 00 00 00 01 00 00 00  92 64 2a 63 16 00 00 00  |.........d*c....|
00000040  00 00 2f 75 73 72 2f 69  6e 63 6c 75 64 65 2f 69  |../usr/include/i|
00000050  70 72 6f 75 74 65 32 00  c7 71 1d 00 f2 d6 a4 81  |proute2..q......|
00000060  00 00 00 00 01 00 00 00  6b 64 f8 6b 20 00 00 00  |........kd.k ...|
00000070  f7 04 2f 75 73 72 2f 69  6e 63 6c 75 64 65 2f 69  |../usr/include/i|
00000080  70 72 6f 75 74 65 32 2f  62 70 66 5f 65 6c 66 2e  |proute2/bpf_elf.|
00000090  68 00 2f 2a 20 53 50 44  58 2d 4c 69 63 65 6e 73  |h./* SPDX-Licens|
000000a0  65 2d 49 64 65 6e 74 69  66 69 65 72 3a 20 47 50  |e-Identifier: GP|
000000b0  4c 2d 32 2e 30 20 2a 2f  0a 23 69 66 6e 64 65 66  |L-2.0 */.#ifndef|
000000c0  20 5f 5f 42 50 46 5f 45  4c 46 5f 5f 0a 23 64 65  | __BPF_ELF__.#de|
000000d0  66 69 6e 65 20 5f 5f 42  50 46 5f 45 4c 46 5f 5f  |fine __BPF_ELF__|
000000e0  0a 0a 23 69 6e 63 6c 75  64 65 20 3c 61 73 6d 2f  |..#include <asm/|
000000f0  74 79 70 65 73 2e 68 3e  0a 0a 2f 2a 20 4e 6f 74  |types.h>../* Not|
00000100  65 3a 0a 20 2a 0a 20 2a  20 42 65 6c 6f 77 20 45  |e:. *. * Below E|
00000110  4c 46 20 73 65 63 74 69  6f 6e 20 6e 61 6d 65 73  |LF section names|
00000120  20 61 6e 64 20 62 70 66  5f 65 6c 66 5f 6d 61 70  | and bpf_elf_map|
00000130  20 73 74 72 75 63 74 75  72 65 20 64 65 66 69 6e  | structure defin|

とても簡単です。プログラミングの経験がなくても、この形式を自分で解く方法を必然的に理解することができます。

追加情報: https://en.wikipedia.org/wiki/Cpio

答え2

最良の方法は何ですか?

/homeを考えるとオペレーティングシステム、NTFSパーティションにバックアップしないでください。最近高価ではない2番目のディスクを追加し、そのディスクをEXT4またはXFS(Linuxでサポートされているもの)としてフォーマットします。

ただし、さまざまな制限を考慮して既存のリポジトリーの一部のみを使用したいが、NTFSの場合は次のように/homeします。アスファルト。 tarファイルはすべての権限を保持してから解凍すると、ホームフォルダが復元されます。バックアップにNTFSパーティションを使用する必要がある場合は十分に機能し、LinuxおよびNTFS権限の問題を解決する簡単な方法です。

  • /etc/crontab-> 0 1 * * * root /usr/local/backuphome.sh 毎日午前1時に実行されます。

  • /usr/local/backuphome.sh次の内容を含むスクリプトを作成します。

  • chown root.root backuphome.sh; chmod 700 /backuphome.sh

#!/bin/bash

today="$(date '+%Y-%m-%d')"

tar -cf /ntfsdisk/backup/home_$today.tar  /home

関連情報