/home
毎週Linux(Lubuntu 20.04)を使用してコンピュータパーティションをバックアップしたいと思います。問題は、私が持っている唯一の追加のハードドライブがWindowsコンピュータに接続されていることです。 Windowsは、サードパーティ製のツールがなければ管理または分割できないようですext3
(これらのツールがどれほど安定しているかわかりません)。ext4
NTFSボリュームにバックアップする以外に選択肢がないようです。
さて、ここで問題が発生します。正しいことは何ですか?
同様の質問が見つかりましたこのスレッドしかし、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つの質問があります。
- 10年という時間は長い時間なのですが、それ以来もう少し信じられていて、またはもっと便利なものが出てくるかもしれませんか?
- コマンドの前の部分をよく理解していないし、試してみましたが、
tar
私の範囲外です。 - 私の場合、/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|
とても簡単です。プログラミングの経験がなくても、この形式を自分で解く方法を必然的に理解することができます。
答え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