새 컴퓨터의 전체 드라이브를 백업하고 싶습니다.
나는 다음 명령을 시도했습니다.
sudo tar -czvf disk.tar /dev/nvme0n1
하지만 1초만에 끝났다.
아카이브의 nvme0n1 파일은 0바이트입니다.
여기에 문제가 있나요?
편집하다:
이전에는 항상 파티션에서 이 명령을 실행했기 때문에 (삭제된) 파일이 없었습니다.
dd if=/dev/zero of=moh bs=100M
rm moh
답변1
tar
파일을 백업하는 데 사용해야 합니다. 디스크의 정확한 상태를 백업하려면 를 사용해야 합니다 dd
.
그래서 당신이 하나를 원한다면정밀한드라이브 복사본은 다음을 사용합니다:
dd if=/dev/nvme0n1 of=/mnt/some_other_drive/copy_of_the_first_drive
.
더 좋은 방법은 압축을 사용하는 것입니다. (새 컴퓨터의 디스크인 경우 무차별 대입 압축이 가능합니다.)dd if=/dev/nvme0n1 | bzip2 > /mnt/some_other_drive/copy_of_the_first_drive.bz2
다른 많은 옵션도 가능합니다:
- 터널을 사용
nc
하거나ssh
생성하고 터널을 만들 때 백업을 다른 시스템으로 전송할 수 있습니다(시스템에 두 번째 디스크가 없는 경우). tar
전체 상태가 아닌 파일만 원하는 경우 사용할 수 있습니다.rsync
파일만 필요하고 사용 가능한 두 번째 디스크가 없는 경우에 사용할 수 있습니다.
답변2
먼저 /mnt와 같은 디렉터리에 설치해야 합니다. 그런 다음 명령(tar czvf somebackup.tar.gz /mnt)을 사용할 수 있습니다. 어쨌든 rsync를 사용하는 것이 좋습니다. 전체 상태를 다른 하드 디스크로 전송하려면 dd 명령을 사용해야 하며, 그렇지 않으면 그럴 필요가 없습니다.
답변3
tar
파일 수준에서 작동하도록 설계됨
이를 사용하여 tar
압축 여부에 관계없이 디렉터리와 파일의 아카이브를 만들 수 있습니다.
이 방법으로 루트 파티션의 내용을 백업할 수 있습니다./시스템에 있을 수 있는 기타 파티션.
예(USB 플래시 드라이브에서 부팅하는 등 다른 시스템을 실행하는 동안 실행)
sudo mkdir /mnt/sd1
sudo mkdir /mnt/sd2
sudo mkdir /mnt/sd3
sudo mount /dev/nvme0n1p1 /mnt/sd1
sudo mount /dev/nvme0n1p2 /mnt/sd2
sudo mount /dev/nvme0n1p3 /mnt/sd3
sudo tar -cvzf root.tar.gz /mnt/sd1
sudo tar -cvzf home.tar.gz /mnt/sd2 # optional
sudo tar -cvzf data.tar.gz /mnt/sd3 # optional
특히 아카이브가 압축되지 않은 경우 개별 백업 파일에 액세스하는 것은 쉽습니다. 이것은 좋다.
그러나 파티션 테이블(및 BIOS 부트 로더(BIOS 모드에서 부팅하는 데 필요))은아니요백업하세요.
Clonezilla는 전체 드라이브에서 작동합니다.
당신은 그것을 사용할 수 있습니다클론속, 파티션 및 부트로더 등을 포함한 전체 드라이브 내용의 [압축] 이미지를 복제하거나 생성하는 도구입니다.
- Clonezilla iso 파일을 다운로드하고,
- USB 부팅 드라이브를 만들고,
- 그것에서 부팅하고
- Clonezilla가 대신해 드립니다.
Clonezilla는 파일 시스템에서 사용된 블록만 복사하고 여유 공간을 건너뛸 만큼 똑똑합니다. 또한 이미지를 압축하므로 속도가 더 빠르고 훨씬 작은 이미지를 생성합니다(예: 의 순수 복제본에 비해 dd
). 이미지는 파일이 아니라 파일 집합이 포함된 디렉터리이며 Clonezilla를 사용하여 이미지에서 복원할 수 있습니다.
Clonezilla에는 드라이브를 식별하고 백업 시 올바른 드라이브에서 데이터를 읽고 복원 시 올바른 드라이브에 데이터를 쓰는 데 도움이 되는 여러 검사점이 있습니다.