/home 디렉토리를 NTFS 파티션에 백업하는 가장 좋은 방법은 무엇입니까? [폐쇄]

/home 디렉토리를 NTFS 파티션에 백업하는 가장 좋은 방법은 무엇입니까? [폐쇄]

/home매주 Linux(Lubuntu 20.04)를 사용하여 컴퓨터 파티션을 백업 하고 싶습니다 . 문제는 내가 가지고 있는 유일한 추가 하드 드라이브가 Windows 컴퓨터에 연결되어 있다는 것입니다. Windows는 일부 타사 도구 없이는 관리하거나 분할할 수 없는 것 같습니다 ext3(이러한 도구가 얼마나 안정적인지는 모르겠습니다). ext4NTFS 볼륨에 백업하는 것 외에는 선택의 여지가 없는 것 같습니다.

자, 여기서 문제가 발생합니다. 옳은 일은 무엇입니까?

비슷한 질문을 찾았습니다이 스레드, 그러나 10년 전에 질문을 받고 답변을 받았습니다(허용된 답변보다 더 구체적인 두 번째 답변에 대해 이야기하고 있습니다). 편의상 관련 부분을 여기에 복사했습니다.

지원:

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

하지만 이 답변에 대해 다음과 같은 세 가지 질문이 있습니다.

  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|

매우 간단합니다. 프로그래밍 경험이 없어도 이 형식을 스스로 풀어내는 방법을 필연적으로 알아낼 수 있으며, 더 좋은 점은 46년 동안(2023년 기준) 실제로 변경되지 않았다는 것입니다.

추가 정보: https://en.wikipedia.org/wiki/Cpio

답변2

가장 좋은 방법은 무엇입니까?

/home을 고려하면운영 체제, NTFS 파티션에 백업하지 마십시오. 요즘 비싸지 않은 두 번째 디스크를 추가하고 해당 디스크를 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

관련 정보