dd 백업을 즉시 압축


23

어쩌면 이것은 바보 같은 질문처럼 들리지만 내가하려고하는 방식으로는 효과가 없습니다.

나는 livecd에 있고, 드라이브는 마운트 해제됩니다.

내가 이런 식으로 백업 할 때

sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

... 일반적으로 작동하지만 복사 할 외부 hd에 충분한 공간이 없습니다 (ALMOST가 적합합니다). 이 방법으로 압축하고 싶었습니다

 sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

...하지만 권한이 거부되었습니다. 이해가 안 돼요


2
하지마 이것은 백업이 아닙니다. '덤프'및 '복원'명령을 확인하십시오.
Juliano

또는 tar 또는 cpio ....
chris

1
Juliano, '이것은 백업이 아닙니다'는 무슨 뜻입니까?
Phil

5
백업은 심각하고 체계적이며 백업을 생성하기위한 적절한 도구를 사용하기 때문에 백업이 아닙니다. 파티션의 원시 데이터를 복사하고 있습니다. 이 데이터를 복원하려면 동일한 지오메트리를 가진 다른 파티션이 필요하지만 보장되지는 않습니다. 또한 아카이브의 단일 블록 (수퍼 블록, inode 테이블, 루트 디렉토리 등)을 손상 시키면 모든 데이터가 손실 될 위험이 있습니다. 적절한 백업을 사용하면 이런 일이 발생하지 않습니다.
Juliano

7
"이 데이터를 복원하려면 동일한 지오메트리를 가진 다른 파티션이 필요합니다. 이것이 보장되지 않는 이유"루프백 장치에 파티션 이미지를 마운트 할 수없는 이유는 무엇입니까?
Kyle Brandt

답변:


41

sda2-backup ... gz 파일에 액세스 할 수 있습니까? Sudo는 명령 후에 만 ​​작동하며 리디렉션에는 적용되지 않습니다. 리디렉션에 적용하려면 셸을 루트로 실행하여 모든 자식 프로세스도 루트로 실행하십시오.

sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

또는 uid / gid 마운트 옵션 (ext3으로 가정)을 사용하여 디스크를 마운트 할 수 있으므로 사용자가 무엇이든 쓰기 권한을 갖습니다. 또는 root를 사용하여 / media / disk에 권한이있는 폴더를 만듭니다.

도움이 될만한 기타 정보 :

  • 블록 크기는 대부분 속도에만 중요합니다. 기본값은 MBR 및 플로피 디스크에 대해 유지하려는 512 바이트입니다. 포인트의 크기가 클수록 작업 속도가 빨라지므로 버퍼와 유사하다고 생각하십시오. 다음은 다른 블록 크기로 일부 속도 벤치 마크를 수행 한 사람에 대한 링크 입니다. 그러나 성능은 여러 요소의 영향을 받기 때문에 자체 테스트를 수행해야합니다. andreas의 다른 답변도 살펴보십시오.
  • 공간이 큰 문제가되지 않도록 ssh 및 netcat으로 네트워크를 통해이 작업을 수행하려면 이 serverfault 질문을 참조하십시오 .
  • 실제로 파티션 이미지가 필요합니까? 더 나은 백업 전략이 있습니까?
  • dd는 매우 위험한 명령이므로 of대신 사용 if하면 백업하려고하는 것을 덮어 씁니다! oi서로 옆에 있는 방법에 주목하십시오 . 그래서이 될 아주 아주 아주 조심.

나는 이것을 시도 할 것이다. bs = 64k로 만들려면 어떻게해야합니까? (필요한가?)
Phil

dd는 기본 블록 크기 (기억하지 않음) 대신 각각 64k의 블록을 읽으므로 bs = 64k는 전송 속도를 더 빠르게 만듭니다.
chris

chris가 말한 내용을 포함하고 싶다면 dd 뒤에 그리고 파이프 기호 (|) 앞에 dd에 대한 인수이므로 넣으십시오.
Kyle Brandt

1
또한 때때로 파이프 라인에서 "sudo tee $ file> / dev / null"을 사용하여 사용자 계정이 액세스 할 수없는 파일에 쓸 수도 있습니다.
Rik Schneider

6

첫 번째 경우, dd는 루트로 실행 중입니다.

두 번째 경우, dd는 루트로 실행되지만 gzip은 실행됩니다.

/ media / disk에 대한 권한을 변경하거나 루트 쉘을 제공하거나 gzip을 루트로 실행하십시오.


3

또한 bzip2 --best더 나은 압축 을 위해 gzip을 다음과 같이 대체 할 수 있습니다 .

sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2

3
많은 시간이 소요됩니다. 자세한 내용은 changelog.complete.org/archives/… "압축에 대한 생각"을 참조하십시오.
Bill Weiss

@ BillWeiss : 귀하의 의견, 매우 흥미로운 읽기 주셔서 감사합니다!
andreas

압축 : lzma> bzip2> gzip .. 속도 : gzip> bzip2> lzma. 인터넷에 디스크 이미지를 게시하지 않는 한 더 나은 압축을 위해 소비하는 시간, CPU 성능 및 메모리에는 큰 이점이 없습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.