Dd를 이용한 디스크 백업시 사용한 용량만큼만 복사가 가능할까요?

dd를 이용해서 디스크를 조금 많이 백업할 일이 생겼습니다.

500기가 하드디스크이고 300기가 정도 사용을 했습니다.

500기가를 다 복사하는 시간이 너무 오래걸려서 사용한 만큼만 복사하면 되지 않을까 해서

dd if=/dev/sdb of=/dev/sdc bs=16M count=20000 으로 주고 복사를 했습니다.
(정확히 300기가 면 19200 카운트 이지만 여유를 조금 줬습니다)

이렇게 복사를 했더니 온전히 다 복사가 되지 않습니다.

그냥 전체를 다 복사하면 잘 복사가 되는데, 시간을 줄이기 위해 사용한 만큼만 복사하려니 잘 안되네요.

고용량 하드 디스크에 파일시스템이 진화가 많이 되서 예전에 알았던 CHS지식은 이제 쓸모가 없더군요 ㅡㅡ;;;

요즘의 대용량하드디스크 와 많이 진화된 고급 파일시스템들은 구조를 봐도 잘 이해가 안되고 어렵더군요.

광명을 주소서~~!!!

디스크에 파일이 순차적으로 저장되는 게 아니니까 dd로 사용한 용량만큼만 복사할 수는 없습니다.
tar 나 rsync 를 이용하시는 게… 아니면 리눅스 전문백업툴이 있습니다.

죄송. 영어 링크…

https://help.ubuntu.com/community/BackupYourSystem https://help.ubuntu.com/community/DriveImaging

리눅스 파일 시스템은 단편화가 적게 일어난다고 하네요. 그런데 파일 시스템의 파티션이
실린더를 따라서 생성이 된다고 하니 dd 가 디스크의 각 영역에 어떻게 번호를 매기느냐도
복사하는데 고려해야 할 사항이겠네요. 사실 잘 모르겠습니다.
단편화 찾아 봤더니 이런 글이… 아직 읽어 보지는 않았습니다.

http://www.washington.edu/R870/examples/fragmentation

또 추가.
단편화가 없다는 것이 파일이 단지 한 실린더 내에 연속적으로 존재하면 되는 건지,
아니면 파일들이 앞 실린더부터 채우고 뒤에는 비워 두는 것까지
말하는 건지 모르겠네요.
잘 아시는 분이 대답해 주세요.^^

[quote="esrevinu":18vpw36c]디스크에 파일이 순차적으로 저장되는 게 아니니까 dd로 사용한 용량만큼만 복사할 수는 없습니다.
tar 나 rsync 를 이용하시는 게… 아니면 리눅스 전문백업툴이 있습니다.

죄송. 영어 링크…

https://help.ubuntu.com/community/BackupYourSystem https://help.ubuntu.com/community/DriveImaging

리눅스 파일 시스템은 단편화가 적게 일어난다고 하네요. 그런데 파일 시스템의 파티션이
실린더를 따라서 생성이 된다고 하니 dd 가 디스크의 각 영역에 어떻게 번호를 매기느냐도
복사하는데 고려해야 할 사항이겠네요. 사실 잘 모르겠습니다.
단편화 찾아 봤더니 이런 글이… 아직 읽어 보지는 않았습니다.

http://www.washington.edu/R870/examples/fragmentation

또 추가.
단편화가 없다는 것이 파일이 단지 한 실린더 내에 연속적으로 존재하면 되는 건지,
아니면 파일들이 앞 실린더부터 채우고 뒤에는 비워 두는 것까지
말하는 건지 모르겠네요.
잘 아시는 분이 대답해 주세요.^^[/quote:18vpw36c]
답변감사합니다.

500기가 전체를 하지 않고 사용한 만큼만 복사해보려는 의도가 '시간’을 줄이기 위해서 입니다.

그렇기 때문에 tar나 rsync는 아무래도 dd 보다 속도면에서 큰 의미가 없을 듯합니다.

아, 그리고 질문에서 언급하지 않은 사항이 있는데, 백업하려는 디스크가 ntfs의 윈도우 시스템 입니다.

한 20개정도 해야하는데, 시간의 압박이 큽니다.

clonezilla나 partclone을 이용하면 됩니다.
clonezilla나 partclone은 사용한 블럭 또는 전체 블럭 백업이 가능하고, 멀티쓰레드를 이용하는 pigz(멀티쓰레드 지원하는 gzip)을 이용하면 압축율도 높고 멀티코어를 이용해 속도도 빠급니다.
clonezilla는 gui 프로그램으로 partclone, ntfsclone, …의 프론트 앤드 입니다.

partclone은 바로 백업이 가능해 아주 편합니다. (멀티쓰레드를 활용하려면 pigz를 설치해야함.)
압축을 사용하면 백업이 압축하지 않은것 보다 빠릅니다.

사용법:
압축 사용 안함
백업: sudo partclone.ntfs -c -s /dev/sda1 -o ~/image_sda1.pcl
복원: sudo partclone.ntfs -r -s ~/image_sda1.pcl -o /dev/sda1

압축 사용시 (gzip -c 대신 pigz -p 4 -0 -c를 넣으면 됨, 속도가 빠름. p 다음 숫자는 압축시 쓰레드수, -0는 압축 정도 (0-9: --fast -1, --best -9))
백업: sudo partclone.ntfs -c -s /dev/sda1 | gzip -c > ~/image_sda1.pcl.gz
복원: zcat ~/image_sda1.pcl.gz | sudo partclone.ntfs -r -o /dev/sda1

sudo 명령 사용해야함. 디스크 접근이기에…

클론질라의 사이트에서 패키지 다운이 가능합니다.
아래의 주소에서 32, 64 비트 버전 다운로드 가능합니다.

partclone

http://free.nchc.org.tw/drbl-core/pool/ ... partclone/

pigz

http://free.nchc.org.tw/drbl-core/pool/ ... able/pigz/

홈페이지 (사용법…)

http://partclone.org/index.php https://wiki.archlinux.org/index.php/Partclone http://clonezilla.org/

Windows 7를 150대 설치해야해서 dd와 clonezilla를 사용해 봤습니다.

Intel SSD 320 Series 40GB를 SATA로 4개(원본 디스크 1개, 복사 대상 디스크 3개) 연결해서 테스트했습니다.

dd는 Ubuntu live CD로 부팅 후 백그라운드로 dd 3개 실행

clonezilla를 USB clonezilla live로 부팅 후 진행

dd: 1:1 복사 13분, 1:3 복사 13분
clonezilla: 1:1 복사 6분, 1:3 테스트 안함

bluealbum 님 감사드려요…

제가 지금 백업을 해야지…해야지…하면서도 못했었는데…

바로 실행해 봐야 겠군요…

모든 분들 세해 복 많이받으세요~~

에구…사고가 터졌네요…

C: 가 xp를 쓸시에는 30기가가 널널 하더니, 7을 깔고 나니 2기가 정도밖에는 여유가 없어서리(이것도 테스트로만…)
이걸 해결할려구 partclone.ntfs 로 백업하구, C:파티션 날리고, 다시 40기가로 만든다음, partclone.ntfs 로 복구했는데…

여전히 30기가로 되어있군요…저의 기대는 40기가 안에 7 이 있을꺼라 예상했는데…
복구시에 디스크 이미지인 관계로 30기가가 고대로 들어 갔나봐요…

기냥 tar 로 떠 볼껄 그랬나 …ㅠㅠ

직접적으로 해결책은 도움을 못 드리겠고… 다만 위에 단편화 이야기가 나와서 말인데.

리눅스에서 단편화가 생기지 않는다는 말은 좀 어폐가 있습니다… 다만 그걸 최소화 하기 위해 파일을 연결해서 쓰지 않고 가급적 뚝뚝 띄워 놓는 방법을 쓸 뿐입니다. 멀티유저/멀티테스킹 환경이면 한번에 한 파일을 균일하게 다 읽고 쓰고 하는 경우는 잘 없고 프로세스들끼리 할당된 시간 동안 이거 조금 저거 조금 읽고 쓰고 하는 형태가 되는데요, 이런 환경에서 빈 공간을 충분히 두고 불규칙적으로 흩어 놓으면 파일에 생기는 웬만한 변화는 파편화를 일으키지 않고도 해결이 되게 하고, 헤드가 극단적으로 움직이는 경우가 최소화 된다는 장점이 있습니다.

비유를 해서 설명하자면…

윈도우즈가 책상 위를 가급적 깔끔하게 정리해 놓는 타입이라면
리눅스는 모든 물건을 책상 위에 대충 늘어놓는 타입인겁니다.

얼핏 보기에 깔끔하게 정리한 편이 효율적일거라 생각하겠지만 예를 들어 편지를 쓰고 있다가 예쁜 그림을 하나 다른 종이에 그려서 그걸 오려 붙이고 싶다고 해 봅시다.

그럼 윈도우즈는 종이에 연필로 편지를 쓰고 있다가 일단 편지지를 한쪽으로 놓아 두고 연필꽂이에서 그림을 그릴 사인펜들을 꺼내고 옆에 종이 수납함에서 여분의 종이도 꺼내야 합니다. 곧이어 서랍을 열어 칼울 꺼내고 닫은 다음 자를 넣어 놓은 상자를 열어 철자를 하나 꺼낸 다음 그림을 그리고 모양에 맞게 자른 풀을 서랍에서 꺼내 편지에 붙이죠. 그리고 남은 부스러기는 휴지통에 넣습니다.

반면 리눅스는 똑같은 일을 하지만 어차피 모든게 다 책상위에 나와 있었기 때문에 위 시나리오에서 서랍을 열고 상자를 뒤지고 하는 시간을 버는 겁니다. 모든게 다 손에 닿는 곳에 있으니까요. 뭔가 놓아야 할 물건이 늘어난다고 하더라도 윈도우즈쪽은 나름의 기준에 맞게 여기저기 정리를 해 놔야 하고 애초에 생각한 공간 이상이 필요하면 다른걸 다 움직여야 하지만 리눅스쪽은 대충 빈 공간에 놓으면 되는거죠.

여기서 요는 깔끔한게 목적이 아니라 책상이라는 공간을 어떻게든 효율적으로만 사용하면 된다기 때문에 컴퓨터에서는 이런 방식이 더 효율적이 되는 겁니다.

[quote="doodoo":1z3c75n9]에구…사고가 터졌네요…

C: 가 xp를 쓸시에는 30기가가 널널 하더니, 7을 깔고 나니 2기가 정도밖에는 여유가 없어서리(이것도 테스트로만…)
이걸 해결할려구 partclone.ntfs 로 백업하구, C:파티션 날리고, 다시 40기가로 만든다음, partclone.ntfs 로 복구했는데…

여전히 30기가로 되어있군요…저의 기대는 40기가 안에 7 이 있을꺼라 예상했는데…
복구시에 디스크 이미지인 관계로 30기가가 고대로 들어 갔나봐요…

기냥 tar 로 떠 볼껄 그랬나 …ㅠㅠ[/quote:1z3c75n9]

걱정할 필요 없습니다. partclone은 원본보다 작은 디스크에는 복원 하지 못하나 큰 디스크에서는 늘려주면 됩니다.
윈도7에서는 디스크 관리에서 용량을 늘려주면 되니까 말입니다.
제어판 > 관리도구 > 컴퓨터 관리 > 저장소 -> 디스크 관리에서 30기가의 파티션에서 볼륨 확장을 하면 40기가로 늘어납니다.
partclone은 원래 섹터 레벨의 복원이니 겪게 되는 문제입니다.

clonezilla는 iso 이미지로 부팅해서 백업하고, 큰 파티션에 복원하면 대상 파티션에 맞게 파티션을 리사이즈 해줍니다.

참고하시길 바랍니다.

구세주!!!

bluealbum 님 감사합니다.(다시한번 :) )

그런 방법이 있군요… 집에가서 언른 해 봐야겠습니다.

클론질라 최신버젼을 다운 받아서 구워 놔야겠군요…ㅎㅎㅎ

집에가서 복원을 한 7으로 부팅을 해 봤더니…전혀 부팅이 안돼더군요…ㅠㅠ
결국 7 다시 깔았습니다…

다시 이 상테에서 클로닝좀 해 놔야 겠네요.

[quote="doodoo":1mwdhk1z]집에가서 복원을 한 7으로 부팅을 해 봤더니…전혀 부팅이 안돼더군요…ㅠㅠ
결국 7 다시 깔았습니다…

다시 이 상테에서 클로닝좀 해 놔야 겠네요.[/quote:1mwdhk1z]

아마, 윈도우7 부트 레코드(mbr) 문제일 겁니다.

partclone 으로 저장하셨으면 부트 레코드를 저장하지 않으셨을 겁니다.

dd 명령으로 부트 섹터를 저장해야 합니다.

저장
dd if=/dev/hda of=/mnt/hda5/a/boot.mbr bs=512 count=1
복원
dd if=/mnt/hda5/a/boot.mbr of=/dev/hda bs=512 count=1

보통 동일 파티션에서 저장 복원하면 mbr 문제가 없으나 새 파티션이면 문제가 생깁니다.

클론질라를 사용하신다면 옵션에서 체크 복원이 가능합니다.