dd 명령 사용

dd (데이터 세트 정의) 명령은 간단하고 유용하며 놀랍도록 사용하기 쉬운 도구입니다. 이 도구를 사용하면 Norton Ghost와 같은 상용 프로그램, Windows의 경우 또는 Linux의 CloneZilla와 같은 무료 프로그램 에서처럼 짧은 명령 줄을 사용하여 장치에서 디스크와 파티션에서 동일한 작업을 수행 할 수 있습니다.

기본 구문 :

dd 명령을 사용하는 가장 기본적인 구문은 다음과 같습니다.

sudo dd if=origen of=destino

어디에 의미하는 경우 "입력 파일 = 입력 파일", 즉, 무엇을 복사하고 싶은지 의미 "출력 파일 = 출력 파일“, 즉, 데이터가 복사 될 대상 파일입니다.기원과 대상은 장치 (CD 또는 DVD 리더, 하드 디스크, 플로피 디스크, pendrive, 파티션 등), 백업 파일 또는 디스크 이미지 등이 될 수 있지만 폴더 나 하위 폴더는 아닙니다.

이 명령을 원활하게 사용하려면 먼저 Linux에서 어떤 파티션 / 하드 드라이브가 호출되는지 명확히해야합니다 (예 : / dev / sda1; / dev는 영어로 device = device에서 파생 됨). 소스 및 대상 디스크 / 파티션을 알기 위해 gparted와 같은 그래픽 파티션 프로그램을 사용하여 sudo fdisk -lo 명령을 사용하여 쉽게 찾을 수 있습니다. dd 명령에 대한 모든 정보는 man dd 및 info dd 명령으로 참조 할 수 있습니다.

이 명령은주의해서 사용해야하며 디스크 / 파티션의 순서와 이름을 항상 확인해야합니다. 디스크가 복제되는 것처럼 순식간에 지워지기 때문입니다.

pv 명령을 사용한 구문 : 이전 구문에서 dd 명령을 사용하면 매우 예약 된 명령이기 때문에 작은 단점이 있습니다.-정보를 제공하지 않습니다. 실행될 때 터미널 프롬프트가 고정되어 있으므로 알 수 없습니다. 무슨 일이 일어나고 있으며 실행을 완료하는 데 남은 시간입니다. 이 작은 불편 함은 통과하는 데이터를 측정하는 터미널 파이프 역할을하는 pv, (*) 명령을 dd 명령의 구문에 추가하여 해결할 수 있으므로 이제 구문은 다음과 같습니다.

dd if=origen |pv|dd of=destino

결과적으로 터미널에서 일종의 진행률 표시 줄, 전송 된 바이트에 대한 정보, 실행 시간 및 전송 속도를 모두 실시간으로 얻을 수 있습니다.

(alf)-(~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 1,630GB 0:21:30 [1,12MB / s] [

또한 완료되면 전송 속도, 전송 된 총 바이트 및 모든 데이터를 전송하는 데 걸린 총 시간에 대한 통계를 보여줍니다.

(alf)-(~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 + 0 개 레코드 읽기 <=> 10530816 + 0 개 레코드 쓰기 5391777792 바이트 (5.4GB) 복사, 3873,48 s, 1,4MB / s 5,02GB 1:04:33 [1,33MB / s] [<=> 10530816 + 읽기 0 개 레코드 <=> 10530816 + 쓰기 0 개 레코드 5391777792 바이트 (5.4GB) 복사, 3873,48, 1,4 초, XNUMXMB / 초 (alf)-(~) └──┤

(*)이 두 번째 구문으로 명령 줄을 실행하기 전에 시스템에 pv 패키지가 설치되어 있는지 확인하거나없는 경우 설치하십시오. 둘 다 Synaptic으로 설치하십시오.

이 명령의 몇 가지 실용적인 예와 옵션을 살펴 보겠습니다 (이전에 pv 명령으로 설명 된 트릭이있는 버전에서).

A) 하드 드라이브 및 파티션 정보 :

= 하드 드라이브 복제 :

이를 통해 hdb에서 hda 디스크를 복제합니다. (IDE 디스크) :

sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M

이를 통해 sdb에서 sda 디스크를 복제합니다. (SATA 디스크) :

sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M

bs = 1M 옵션을 사용하면 읽기와 쓰기가 모두 1 메가 바이트 블록으로 수행됩니다.

이러한 방식으로 디스크는 "있는 그대로", MBR, 파티션 테이블, 빈 공간 등으로 기록되므로 크기가 같거나 더 큰 디스크에만 기록 할 수 있습니다.

= 원본 디스크의 첫 번째 파티션 (hda1) 만 대상 디스크 (hdb)에 씁니다.

sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M

= 전체 디스크 (hda)를 대상 디스크의 첫 번째 파티션 (hdb1)에 굽습니다.

sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M

= 이미지 생성-bin 또는 iso 일 수 있음-하드 디스크 (hda)의 / 홈 디렉토리 :

sudo dd if=/dev/hda |pv|dd of=/home/hda.bin

= 디스크의 정보를 완전히 지우려면 디스크를 임의의 문자로 XNUMX 번 채 웁니다. 디스크에는 정보 추적이 없습니다.

for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;

= 모든 장치에서 파티션과 전체 디스크 지우기 :

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (전체 디스크 지우기)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (디스크 파티션 삭제)

여기서 : x는 지울 디스크, a는 지울 파티션입니다.

이 작업은 파티션을 완전히 지우는 데 매우 유용하며 지워질 데이터는 복구 할 수 없으므로 낮은 수준의 매우 안전한 지우기입니다. 예를 들어 pendrive가 바이러스에 감염된 경우 매우 유용합니다. 친애하는 창문.

B) CD / DVD에서

= CD (또는 DVD)에서 .iso 이미지 생성 / 마운트

/ home 디렉토리에 CD의 .iso 이미지를 만들려면 :

sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso

CD에서 .iso 이미지를 마운트하려면 :

sudo mount -o loop imagedeCD.iso /mnt/home

= 긁힌 DVD를 복구합니다 (이렇게하면 전체 DVD가 복구되지 않으며이 경우 읽을 수있는 섹터 만 복구됩니다). 결함이있는 하드 드라이브에도 적합합니다.

sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync

noerror 옵션은 어떤 상황에서도 오류를 읽는 것을 방지합니다.

C) MBR 및 VBS 정보 :

= MBR (마스터 부트 레코드) 복사 / 복원 :

MBR을 복사하려면 :

sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512

MBR을 복원하려면 :

sudo dd if=mbr |pv|dd of=/dev/hda

= MBR 및 파티션 테이블 정리 :

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1

= MBR을 지우지 만 파티션 테이블을 건드리지 않습니다 (파티션의 데이터를 잃지 않고 GRUB을 지우는 데 매우 유용함) :

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1

= VBS (볼륨 부팅 섹터) 복사 / 복원 :

VBS를 복사하려면 :

sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512

VBS를 복원하려면 :

sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda

D) 기타 :

= 디스크 오류를 건너 뛰고 / 홈 디렉토리에 디스크 이미지를 굽습니다 (죽어가는 디스크에 매우 유용함) :

sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso

= 비어있는 1Mb 파일 만들기 :

sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024

= 2Gb 스왑 파일 생성 :

sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace

= 모든 문자를 대문자로 변환 :

sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase

그래픽 환경 프로그램과 함께 dd 명령을 사용하십시오. Gdiskdump는 다음 작업을 용이하게하는이 dd 명령을위한 그래픽 환경입니다. 복제 파티션 또는 디스크, 빠르고 쉽게. 페이지에서 다운로드 할 수 있습니다. https://launchpad.net/gdiskdump/ 루트 권한 (sudo gdiskdump)을 사용하여 파일을 열면 복제 할 파티션이나 디스크 (입력 형식)와 대상 (출력 형식) 만 지정하면되므로 프로그램을 사용하기가 매우 쉽습니다.


43 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   시그84

    나는 dd 명령의 오용으로 거의 당뇨병에 걸렸다.
    그런데 dd_rescue와의 차이점은 무엇입니까?

    1.    이제까지

      ddrescue는 기본적으로 읽기 오류시 중지되지 않으며 읽을 수없는 정보를 복구하기 위해 다양한 방법으로 시도합니다.

    2.    셰코

      hahahha 나도 dd 명령을 아주 나쁘게 사용했는데 생각보다 훨씬 강력합니다.

  2.   썩은 87

    나는 모든 아치 사용자가 어느 시점에서

  3.   ALF

    @ sieg84, 차이점은 dd가 일부 읽기 또는 장치 오류로 중단되었다는 것입니다.이 경우 손상된 블록이 특정 횟수만큼 읽고 다음 블록을 계속하기 때문에 이런 일이 발생하지 않으며 다음과 같은 이점도 제공합니다. 동일한 이미지에서 여러 번 실행할 수 있으며 처음부터 시작하지 않고 완료하려고합니다.

    dd_rescue를 사용한 적이 없다는 점을 언급 할 가치가 있습니다.

    1.    데비안 멀린

      이 명령을 사용하는 KDE 용 qt로 만든 GUI가 있다면? 아니면 사임해야하나요.?

      1.    7월

        Gdiskdump는이 명령에 대한 GUI 이상이며 (기반으로) qt에서 수행했는지 (내 생각에) 모르겠지만 KDE에서 거의 확실하게 작동합니다

    2.    시그84

      설명해 주셔서 감사합니다.
      ISO를 USB로 복사하기 위해 dd_rescue 만 사용했습니다 (주로 openSUSE wiki에 있었기 때문에).
      dd_rescue tu.iso / dev / sdX
      내가 좋아하는 것은 진행률 표시 줄이 표시된다는 것입니다.
      http://box.jisko.net/i/110db781.png

  4.   크렐

    Alf :
    최근에 Hatteras 블로그에 게시 된 동일한 게시물을 보았습니다. 그가 이것을 나쁘게 받아들이지는 않을 것 같지만 적어도 예의로서 그것을 참조하는 것이 좋을 것입니다. 따라서 그는 웹 포지셔닝에서도 이깁니다.

    나는 이것으로 딜레마를 만들고 싶지 않지만 언뜻보기에 당신이 조정 한 터미널 스크린 샷을 제외하고는 기사가 95 % 동일 해 보인다. 그는 심지어 그의 출처를 언급했습니다.

  5.   데비안 멀린

    흥미로운 사실 ​​인정 | pv | 그를 몰랐다.

    Krel 소스는 우분투 위키 또는 아치 인사말에 있다고 생각합니다.

  6.   ALF

    @krel, 리눅스는 다음과 같습니다.

    이 세상을 여행하는 동안 저는 물건을 읽고 수집했습니다. 저는 제가 초창기에 가장 많이 기여한 커뮤니티였던 Ubuntu Mexico에 게시 한 400 개 이상의 게시물이있는 노트북을 가지고 있습니다. 아쉽게도 많은 양을 검토하면 일이 반복 될 수 있습니다. 인터넷에 게시 된 게시물의 순서는 거의 동일하지만 대부분이 더 짧습니다.

    이번 주에 또 다른 5 개의 게시물을 게시 할 수 있으며 유사하거나 동일한 다른 게시물을 찾을 수있는 이유는 무엇입니까? 우분투는 인터넷에서 가장 많은 포럼 / 블로그를 가지고 있습니다.

    딜레마는 절대 없을 것 같고, 관리자가 삭제를 고려해도 불쾌하거나 전혀 귀찮게하지 않을 것 같으면, 규칙과 다음 사항을 준수합니다. 우연을 피하기 위해.

    안부

    1.    크렐

      인터넷에서 생성되는 콘텐츠의 최대 10 % 만 새로운 콘텐츠라는 것은 누구에게도 미스테리가 아닙니다. 나머지 90 개는 복제, 갱신 또는 구출 된 내용이며, 이것이 덜 중요하다고 말하는 것이 아니라 오히려 지식 전파의 한 형태입니다.

      그러나 내가 멈추는 곳은 다른 것입니다. 이런 유형의 블로그가 있으면 도움을 주며 인정을받을 수있는 개인적인 동기가 있습니다. 동시에 나는 자유 소프트웨어에 대한 내용을 쓰는 대부분의 사람들이 공유의 개념에 동의한다고 확신합니다. 그러나 BSD와 같은 가장 고귀한 라이센스조차도 인정을 요구한다는 것을 잊지 마십시오.

      또한 참조는 Google과 같은 일부 검색 엔진이 웹 사이트의 위치를 ​​개선하는 방법입니다. 저는 그저 감사의 최소한으로 자료를 사용했기 때문에 그 작품을 참고할 것입니다.

      공유하는 것은 좋은 일이라고 생각하지만 참조를 함으로써 무엇을 잃게 됩니까? 이 블로그보다 위치가 더 나은 다른 블로그에서 이 블로그의 내용이 복제될 수 있다고 생각해 보세요. desdelinux 그것을 언급하지 않으면 결국 그들은 이 블로그를 묻어버릴 것입니다.

      Hatteras는 10 일 전에 그것을 출판했고 그가 당신의 노트에서 그것을 꺼내지 않았거나 당신이 Luis Puente가 아니라면, 당신이 나에게 말하는 것을 설명 할 수 없습니다. 거의 모든 것이 텍스트라는 것입니다. 가능성은 없지만 불가능하지는 않습니다.

      하지만 이런 일은 일어나지 않습니다. 그리고 개인적 윤리와 다른 동료와의 협력을 위해 그를 언급 할 것입니다. 그것은 당신에게 달려 있습니다. 나는 Hatteras가 이것을 잘못된 방식으로 받아들이고 있다고 생각하지 않습니다.

      1.    MSX
  7.   전에 하나

    흠… 나는 dd if = file.iso of = / media / hard drive… 실수로 만들었습니다 😛
    하드 드라이브에서 파일을 복구하는 방법 ???

    1.    엘라 브

      Testdisk를 사용할 수 있습니다.

    2.    데비안 멀린

      아마도 친구가 testdisk 나 데이터 복구 전문 라이브 배포판으로 나를 넘겼을 것입니다. 이 명령을 사용하여 다음 번에 백업 할 것을 권장합니다. 신인 시절에는 전체 하드 디스크를 포맷하고 재부트를 원하지 않고 지금은 잘 포맷하는 것이 섬세한 일입니다.…

  8.   라울

    누군가가 dd 명령으로 복사 진행률을 확인하는 데 사용할 명령을 말할 수 있습니까? 내 말은 복사중인 %가있는 진행률 표시 줄을 보는 것입니다.

    Slds

    1.    7월

      친구! 명령 pv를 추가합니다. 이 같은 포스트에서 그는 거의 처음에 그것을 말하고 그것을 사용하는 방법을 설명합니다. 다시 읽어보세요

  9.   페드로

    이 명령 사용 :
    dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
    16Gb 디스크의 iso 이미지를 만들어 400Gb 디스크에 저장했습니다.
    그러나 해당 이미지를 원래 16GB 디스크 또는 동일한 용량의 다른 디스크로 복원하는 명령이 무엇인지 모르겠습니다.

  10.   루이스 로드리게스

    질문

    이 명령을 사용하여
    {1..5}의 n에 대해; do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    2TB 디스크 용
    그런 다음 콘솔에 그대로 있습니다.
    >
    다른 명령을 실행해야합니까? 아니면 프로세스에 얼마나 오래 걸릴 수 있습니까?

    고마워 계속가

    1.    재즈

      for… 줄 끝에 누락 된 오타가 있습니다«; 완료»stayed«for n in {1..5}; do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; 완료»

  11.   헨리 살라자르

    아주 좋은 기사… .. 실천으로하겠습니다… 인사 친구

  12.   Marcos_tux

    매우 유용했습니다. 많은 도움이되었습니다. 감사합니다.

  13.   EDFR

    Good Alf. 정보에 대해서 감사드립니다.

    질문. 소스 디스크의 일부만 복사하는 방법이 있습니까? 120Gb 만 사용되는 25Gb 디스크가 있고 40Gb 디스크에 복사하려는 경우 사용 된 공간 (25Gb) 만 복사하는 데 관심이있는 경우이 명령을 사용할 수 있습니까?
    미리 감사드립니다.

    1.    유키 테루

      rsync -av / path / to / origin / path / to / destiny 명령을 사용하여 rsync를 사용하는 것이 더 낫습니다. 이미 해당 권한으로 모든 권한을 백업하고있을 것입니다.

    2.    유키 테루

      내 말은 : "해당 권한이있는 모든 파일"

  14.   폭스 스파이

    친애하는, dd 명령을 사용할 때 왜 4.2GB에 도달하고 파일이 매우 크다는 것을 나타내는 지 아는 사람이 있습니까? 250GB 디스크 이미지이며 1TB 외부 디스크로 이동합니다.

    sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso

    1.    납치범

      fs FAT4을 사용하여 파티션에 백업을 만들려고하기 때문에 16Gb 오류가 발생합니다.

  15.   베른

    정말 좋은 블로그입니다. 매우 유용한 항목입니다. 나는 이미 다른 곳에서이 명령의 사용을 보았지만 아무것도 설명하지 않았습니다. 감사합니다.

  16.   카를로스 토레스

    안녕하세요 저는 BIOS 스택을 교체했기 때문에 프로그램이 손실 된 주입 기계가 있습니다. 백업은 없지만 동일한 기계가 있습니다. 플로피와 직렬 및 병렬 포트만 있습니다.이 기계의 백업을 어떻게 만들 수 있습니까? 다른 곳에로드 해주셔서 감사합니다.

  17.   에르네스토

    LIVE CD에서 시작하지 않고 파티션을 복사하고 싶습니다. 예를 들어 / dev / sda1, / dev / sda5, / dev / sda6이있는 디스크가 있고 다른 디스크 / dev / sdb5에서 / dev / sda1로 복사본을 만들고 싶습니다.

    = / dev / sdb1 of = / dev / sda5 bs = 1M ????

  18.   페드로 로바 토

    안녕하세요, 잘 지내세요. 나는 또한 과달라하라에 살고 있습니다.
    DD 명령에 대한 귀하의 기사는 매우 흥미 롭습니다. 일부 Linux 배포판, 특히 Archlinux를 테스트하고 싶지만 DD 명령을 사용하고 이미 다운로드 한 Archilinux ISO를 USB 스틱에 복사 할 수 없었습니다. 이걸로 시작하기 위해 나에게 진드기를 통과시킬 수 있는지 모르겠습니다. 감사합니다, Pedro lobato

  19.   승리자

    "dd"명령을 사용하여 iso를 기록하면 일부 PC에서 부팅하는 데만 사용되기 때문입니까?
    특급. 나는 2 개의 랩탑을 가지고 있는데 그들 중 어느 것도 리눅스 배포판의 iso를 부팅하지 않는다. 그러나 반대로 유휴 디스크가있는 오래된 데스크톱 PC에서 부팅됩니다.

    1.    SEB

      unetbootin을 사용하여 안전하게 플레이하는 것이 가장 좋습니다. dd와 함께 가끔 작동하지 않는 이유에 대한 질문도 남았습니다.

      1.    엘라 브

        나는 그것이 DD에 의존하지 않고 ISO에 의존한다고 생각합니다. Unetbootin에서도 마찬가지입니다. 모든 배포판에서 잘 작동하지는 않습니다.

  20.   승리자

    때로는 모든 PC에서 작동하지만 mbr 및 syslinux를 프로세스의 usb에 추가해야합니다. 그러나 이것은 길고 지루합니다.
    부팅 해제에 대한 쉬운 부분

    조심하세요. 그것은 나를위한 iso 나 dd가 아니라 당신이 그것을 녹음하는 방식입니다.

  21.   대니

    이 명령을 사용하는지 의심 스럽습니다.
    sudo dd if = / dev / zero of = / dev / diskdrive
    대신 저수준 서식이 동일하거나 다음보다 오래 걸립니다.
    sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M ..

  22.   Arg0

    dd 명령을 사용하여 특정 파일을 삭제할 수 있습니까?

    dd if = / dev / urandom of = / home / myfile delete

  23.   Arg0

    bs = 1M이면 더 빨라집니다.

  24.   알렉스

    그리고 모든 파티션 (스왑, sda ...)과 두 디스크가 동일하지만 하나는 PC에 있고 다른 하나는 네트워크를 통해 NAS에있는 한 디스크에서 다른 디스크로 정확한 사본을 만들려면 ????
    감사

  25.   제라르도

    코멘트, 나는 마지막에 status = progress와 함께 사용하고 pv가 필요하지 않으므로 데비안은 진행 상황을 보는 데 매우 잘 작동합니다.
    두 번째로, 전체 장치가 아닌 데이터 만 가져올 수있는 방법이 있습니다. 2TB 디스크이고 100GB 만 사용하면 해당 공간이 모두 필요하기 때문입니다. 100GB를 백업하는 방법이 있습니까? 다른 매체로 전달하면 500 개 중 하나의 작은 디스크가 될 수 있습니다.

  26.   알렉산더

    도와주세요!
    명령 수행
    dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb

    모두 좋습니다 ...하지만 이제 USB를 저장 장치로 사용하고 싶습니다 ...

    USB가 마운트되지 않았으며 GParted에도 나타나지 않습니다.

    내가 무엇을 할 수 있는지 아는 사람이 있습니까?

    추신 : 디스크 및 CD DVD에서 정보를 복구하는 가장 좋은 프로그램입니다….

    1.    익명

      fdisk로 테스트를 다시 파티션해야합니다.