
프로그래밍 중인 장치에 대한 정확한 복사본을 만들고 싶은 파일 시스템이 있습니다. 이상적으로는 이 복사본이 복사된 원본 폴더와 동일하기를 바랍니다. 나는 이것을 사용 cp -r
cp -a
하고 rsync -azvP
이것을 달성하려고 노력했습니다 . 각각은 크기가 다른 폴더를 생성하며(사용 du -s
) 궁극적으로 내 장치가 원래 폴더에서 실행되더라도 내가 복사한 폴더에서는 실행되지 않습니다.
- 내가 사용한 명령이 설명하지 못하는 이유는 무엇입니까?
- 파일 시스템/폴더를 복사할 때 모든 것을 동일하게 유지할 수 있습니까? 그렇다면 어떻게 해야 할까요?
추신: 비슷한 질문을 게시했습니다.스택 오버플로하지만 내가 잘못된 거래소에서 요청했다는 사실을 금방 깨달았습니다.
편집: 이것은 도움이 되지 않을 수 있지만 복사된 디렉터리를 사용하는 방법에 관계없이 항상 다음 출력과 함께 문제의 컴퓨터에 커널 패닉이 발생합니다.
VFS: 플로피를 시도하여 NFS를 통해 루트 fs를 마운트할 수 없습니다. VFS: 루트 장치 "nfs" 또는 알 수 없는 블록(2,0)을 열 수 없습니다. 올바른 "root=" 부팅 옵션을 추가하십시오. 사용 가능한 파티션은 다음과 같습니다. 1f00
64 mtdblock0(드라이버?) 1f02 64 mtdblock2(드라이버?) 1f04 2432 mtdblock4(드라이버?) 1f05 128 mtdblock5(드라이버?) 1f06 4352 mtdblock6(드라이버?) 1f07 204928 mtdblock7(드라이버?) 1f08 50304 mtdblock8(드라이버?) 0800
8388608 sda 드라이버: sd 커널 패닉 - 동기화되지 않음: VFS: 알 수 없는 블록(2,0)에 루트 fs를 마운트할 수 없습니다.
답변1
나는 일반적으로 다음 대안 중 하나를 사용합니다.
rsync -aHAX
(자세한 내용을 보려면 v를 추가하세요) 복사하는 동안 대상 폴더의 모든 링크 구조와 x 속성이 유지되는지 확인하세요. 잊지 마십시오.a
보관을 의미하며 이미 시간, 소유권 및 권한을 보존합니다.- 간단한 것
tar cvf
(시간을 절약하기 위해 압축하지 말고 그냥 tar로 압축)은 첫 번째 것이 어떤 이유로든 필요한 것을 충족하지 못하고 시간이 없을 때 사용하는 방법이지만 항상 첫 번째 것을 시도합니다.
모든 것이 제대로 진행되었는지 확인하려면 diff -r <folder1> <folder2>
원하는 경우 나중에 실행할 수 있습니다.
답변2
댓글에서 답글을 읽으면 루트 폴더를 복사하려고 하는 것 같습니다("내 장치는 복사된 디렉터리를 사용하여 부팅되지 않습니다"). 그런 경우에는 해야 할 일이 몇 가지 있습니다.
$ cd /
$ mkdir backups
$ tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys \
--exclude=dev/pts --exclude=backups .
루트 폴더를 새 시스템에 복사한 후에는 부팅하기 전에 grub을 업데이트해야 합니다.
$ grub-install --recheck /dev/sdX (Where X is the partition number)
$ update-grub
답변3
당신은 시도해 볼 수 있습니다FSArchiver. 이는 현재 유지 관리되지 않는 유사한 부분 이미지의 후속 제품입니다. 저는 과거에 partimage와 FSArchiver를 모두 사용해 본 적이 있으며 둘 다 잘 작동했습니다. 내가 아는 한, 둘 다 가능한 한 원본과 거의 동일한 파일 시스템의 복사본을 만듭니다. FSArchiver는 partimage보다 조금 더 강력하다고 생각합니다. 예를 들어, ext4에서는 작동하지만 partimage에서는 작동하지 않습니다. 보다FSArchiver/partimage 비교표.
답변4
"동일하다"는 것이 무엇을 의미하는지에 따라 약간 다릅니다.
- 그냥 하는 것이
rsync
대부분의 경우에는 괜찮을 것입니다. 때로는tar
파일의 모든 내용을 압축하고 다른 위치에서 추출하는 데 사용하고 싶을 때가 있습니다 . - 전체 파일 시스템의 복제를 원하는 경우
dd
전체 파일 시스템 자체를 복사하는 데 사용할 수 있습니다.
장치를 디버깅할 수 있는 방법이 있다면 현재 작동하지 않는 문제가 정확히 무엇인지 알아내십시오.