하드 드라이브를 백업해야 해요. dd
이미지를 외장 하드 드라이브에 사용하고 저장하고 싶습니다 .
- 하드 드라이브 자체의 운영 체제를 사용하여 이 작업을 수행할 수 있습니까?
dd
아니면 다른 장치(예: LiveCD)에서 부팅해야 합니까? - 일반적으로 장비가 설치되어 작동하는 경우 해당 장비의 이미지를 촬영하는 것이 안전한가요?
dd
장치가 마운트되어 있지만 실행 중에 다른 I/O 작업이 없다고 확신한다면 어떻게 될까요?
rsync
나는 이것이 백업, 특히 증분 백업을 위한 최고의 도구라고 확신합니다 .
dd
그런데 다른 저장 장치도 백업하고 싶고, 분할되지 않은 공간에 저장된 데이터도 복사하고 싶기 때문에 관심이 갑니다 . 예를 들어, 내 전자책 리더는 분할되지 않은 공간을 사용하여 uboot, 커널 및 기타 데이터를 저장합니다.
답변1
일반적으로 이것은 안전하지 않습니다. FS는 작업이 특정 순서로 기록된다고 가정하므로 파일에 새 데이터를 쓴 다음 다른 데이터에서 해당 데이터에 대한 포인터를 만들 수 있습니다. 세부 사항은 파일 시스템에 따라 다릅니다. 다음과 같은 일이 발생한다고 상상해 보십시오.
dd
가비지 또는 일부 데이터가 포함된 위치 X에서 읽습니다.- 파일 시스템 쓰기 위치 X
- 파일 시스템 쓰기 위치 X+1 위치 X에 대한 포인터
dd
링크는 X+1 위치에서 X 위치까지 읽습니다.
백업 관점에서 볼 때 정크 데이터가 발생합니다. 그러나 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
- 파일 시스템 특정 명령을 통해 파일 시스템을 고정합니다(나는
xfs_freeze
그것이 하나라고 생각하며 다른 명령은 모릅니다. 그러나 그러한 옵션은 적어도 이론상 존재합니다) - lvm 스냅샷을 생성하고 복사합니다. 복사본은 컴퓨터를 재부팅한 것처럼 생성되므로(HDD 재정렬 제외) 더티 파일 시스템이 되지만 복사본은 원자적으로 생성됩니다. 일부 파일 시스템(예: XFS)은 먼저 고정해야 합니다.
- 다른 사람들이 제안한대로 rsync를 사용하십시오. 이제 복사본은 안전하며 LVM이 필요하지 않지만 복사본은 원자적이지 않습니다. 따라서 파일 시스템 수준에서 위의 문제를 방지하는 동안 여전히 파일 문제가 발생할 수 있습니다(예를 들어 백그라운드에서 mv를 실행하는 동안 파일이 손실될 가능성은 낮지만 생각할 수 있음).
- 스냅샷이 있는 파일 시스템을 사용하세요.BTFS,턱시도 3,지브스,넬베스...그러면 두 가지 문제를 모두 방지할 수 있습니다. 스냅샷을 생성하고 완전히 원자적인 rsync를 통해 복사하면 됩니다. 그러나 이러한 파일 시스템은 실험적인 경우가 많습니다.
마지막 참고 사항 - dd
아마도 최선의 백업 방법은 아닐 것입니다. 전체 디스크를 복사하는데, 이는 "쓰레기"도 복사하기 때문에 일반적으로 낭비입니다. 유사한 디스크 이미지가 필요한 경우이미지의 일부더 좋을 수도 있습니다. 더 나은 옵션이 없다면 rsync, tar 등과 같은 차등/증분 모드를 사용하거나 전체 백업 시스템을 사용하십시오.바큘럼,태스냅아니면 다른 많은 것 중 하나입니다. 중복 제거는 백업 크기 측면에서 놀라운 효과를 발휘할 수 있습니다.
답변2
이는 파티션의 특정 목적과 복제본의 목적에 따라 다릅니다. 그러나 나는 일반적으로 말하면dd
파일 시스템 백업에 적합한 도구가 아닙니다.. 그것은 원래 의도도 아닙니다.
파티션의 빈 부분을 복사하면 많은 시간이 낭비됩니다.
파일 시스템이 현재 마운트되어 있는 경우 부분적으로 운영 체제 수준 엔터티이고 기본 블록 장치와 동기화되지 않을 수 있기 때문에 불일치가 발생할 수 있습니다. 초기 전화 통화는
sync
프로세스가 즉각적이지 않기 때문에 이 작업에 큰 도움이 되지 않습니다.
사용 cp -a
하거나 rsync
대체하십시오. 물론 대상 파티션을 생성해야 하기 때문에 쉽지는 않지만 더 안전하고 유연합니다. 파일 시스템을 생성해야 하는 경우영상, 아래를 참조하세요.
루트 파일 시스템 을 복사할 계획이라면 절대 사용하지 마십시오 dd
.rsync -ax
cp -ax
사본에는 나타나지 않을 수 있음. Linux의 경우 여기에는 다음이 포함됩니다.
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
이들 중 일부는 실제로 디스크의 실제 디렉터리가 아닌 커널 인터페이스입니다. 이를 복사하면 복사본에 적용되지 않는 많은 정보를 복사하는 것입니다. 이를 사용하여 시스템을 실행하려고 하면 실제 인터페이스가 맨 위에 설치되므로 공간 낭비일 뿐입니다. 다른 것들은 프로세스를 실행하는 데 사용되는 임시 정보를 포함하고 있는데, 이를 복사하면 시스템이 쓰레기를 분류할 수 없기 때문에 더 큰 문제가 됩니다.
루트 파일 시스템의 이미지 파일을 생성하려는 경우(또는 모든 파일 시스템), 빈 이미지 파일을 생성합니다. 이는 다음에 대한 적절한 용도입니다 dd
.
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
1024MB 이미지(1000000 * 1024)입니다. count
다른 사이즈를 원하시면 조정해주세요. 예를 들어 ext
파일 시스템을 만듭니다.파일에:
mke2fs whatever.img
실제 블록 장치가 아니라는 경고 메시지가 표시됩니다. 계속하다. 이제 이미지 파일을 마운트합니다.
mount whatever.img /mnt/img
/mnt/img
존재해야 하지만 무엇이든 될 수 있습니다. 지금 입력 할 수 있습니다 rsync
(또는 ) . 제거해도 콘텐츠는 내부에 남아 있습니다.cp -a
/mnt/img
whatever.img
하지만...
명확하게 말하면 어떤 이유로 이미지 파일이 꼭 필요한 경우에만 방금 설명한 파일 시스템 이미지 방법을 사용하십시오. 파티션을 다른 하드 드라이브에 복사하는 것이 목표라면,이미지는 필요하지 않습니다: 해당 드라이브에 빈 파일 시스템이 있는 새 파티션을 생성하고 마운트한 다음 거기에 복사합니다. 파일 시스템 내용을 빈 디렉터리에 넣고 보관할 수 있습니다.
tar -czf myarchive.tar.gz [the directory path]
그런 다음 이를 기존(비어 있거나 다른) 파티션 위에 배치하고 다음을 사용하여 배포할 수 있습니다.
tar -xzf myarchive.tar.gz
해당 경로가 아카이브의 항목과 일치하면 기존 파일을 덮어쓰게 됩니다. 그렇지 않으면 기존 디렉터리 계층 구조가 변경되지 않고 그대로 유지됩니다.
답변3
rsync는 파일 시스템 백업을 위해 선택한 도구이며 현재 실행 중인 운영 체제의 부팅 가능한 백업을 만들 수 있습니다.
몇 가지 참고사항:
- 적절한 알파벳 수프 옵션을 추가해야 합니다.
- 경로가 매우 중요합니다.
- 제외 목록은 필수이며 운영 체제와 구성마다 다를 수 있습니다.
tar와 같은 다른 방법에 비해 rsync의 장점은 다음과 같습니다.
- 언제든지 백업을 중지하고 시작할 수 있습니다.
- 요청 시 삭제, 이전 삭제, 이동 등 대체된 파일을 처리하기 위한 다양한 옵션
- 백업을 복원(또는 반복)하는 것은많은이전에 복사한 파일을 건너뛰기 때문에 다른 방법보다 빠릅니다. (20배속 향상이 일반적입니다)
- --link-dest 옵션은 실제로 새 파일을 복사하는 동안 버전이 지정된 백업을 생성합니다.
이미지 백업은 그 자리가 있지만 발생할 수 있는 모든 문제를 포함하여 드라이브를 있는 그대로 복사합니다. 파일 백업은 완전히 새로운 디렉터리를 생성하고 프로세스에서 드라이브를 선형화(조각 모음)합니다. 현재 운영 체제에 대해 10개의 동일한 복사본을 만들고 싶다면 rsync를 복사본 마스터로 사용한 다음 dd(또는 이와 유사한)를 사용하여 나머지 작업을 수행합니다.
답변4
사용클론속, 진지하게. Norton Ghost와 같은 최고의 오픈 소스 Linux 기반 유틸리티입니다. 파티션 복제와 전체 디스크 복제, 디스크에서 디스크로 또는 디스크에서 파일 시스템으로(파일로 저장)를 수행합니다. 대부분의 Linux 파일 시스템, NTFS, FAT32 등을 지원합니다. 내부 디스크, 외부 드라이브 또는 네트워크를 통한 SMB 또는 NFS 공유에도 저장할 수 있습니다.
사용하기가 매우 쉽고 시간을 많이 절약할 수 있습니다.
편집: 아니요, 질문에 대답하려면 dd
블록 장치에서 읽는 것이 원자적이지 않기 때문에 대부분의 파일 시스템을 마운트할 수 없으므로 파일 시스템의 복사본이 일관되지 않을 위험이 있습니다. 예를 들어, 100개의 블록을 복사하는 경우 시스템은 첫 번째 블록과 마지막 블록을 중간에 업데이트했을 수 있습니다. 즉, 복사본에는 마지막으로 수정된 블록이 포함되지만 첫 번째 블록은 포함되지 않습니다.