– 의미
bs는 한번에 읽어들일 사이즈를 의미
count는 횟수를 의미

dd는 읽어들일 사이즈와 출력할 사이즈를 다르게 지정할 수 있음. 이경우 ibs와 obs를 씀.
bs를 쓸경우 입출력사이즈는 동일하게 됨
ibs는 input, obs는 output.


– 사용 예
dd if=/dev/zero of=/swapfile bs=1024 count=1000
즉, 위의 경우에는 1024바이트씩 1000번을 /dev/zero에서 읽어서 /swapfile에 기록하는 것임.


dd if=/dev/zero of=/dev/sdX bs=1024 count=9999999
위의 경우는 1024 바이트씩 9999999번을 /dev/zero에서 읽어서 /dev/sdX에 기록하는 것임. /dev/sdX HDD는 1024byte X 9999999번 영역의 데이터가 날라감.


dd if=/dev/sdX of=sda-mbr.bin bs=512 count=1
위의 경우에는 512바이트씩 1번을 /dev/sdX에서 읽어서 sda-mbr.bin 파일로 기록하는 것임.


dd if=sda-mbr.bin of=/dev/sdX bs=1 count=64 skip=446 seek=446
위의 경우에는 입력시작에서 446(0~446)만큼, 그리고 출력시작에서 446(0~445)만큼 건너뛰고 sda-mbr.bin 파일에서 읽어서 /dev/sdX 장치에 기록.
따라서 446~511까지(MBR(master boot record)영역을 건너뛴 파티션테이블)만의 영역을 사용. – MBR(부트로더)를 skip 하고 파티션 테이블만 복구 할 때. 만약 확장 파티션 테이블(Extended Block)이 있을때는 이 방법이 통하지 않는다.
sfdisk -d /dev/sdX > backup-sdX.sf   —> 이 방법을 써야 한다. 복구시엔 아래처럼
sfdisk /dev/sdX < backup-sdX.sf  –> 복구시


dd if=sda-mbr.bin of=/dev/sdX bs=1 count=446
위의 경우에는 446바이트씩 1번을 sda-mbr.bin에서 읽어서 /dev/sdX 장치에 기록하는 것임. – 파티션 테이블을 뺀 부트로더만 복구



– dd 옵션 설명

       if=file
              표준 입력 대신에 지정한 file을 입력 대상으로 한다.

       of=file
              표준 출력 대신에 지정한 file을 출력 대상으로 한다.  conv=notrunc
              옵션을 사용하지 않는 한은, seek= 바이트 크기에 따라 ( seek= 크기
              가 0아닌 한) 지정한 크기에 따라 출력 파일을 자른다.

       ibs=bytes
              한번에 bytes 바이트씩 읽는다.

       obs=bytes
              한번에 bytes 바이트씩 쓴다.

       bs=bytes
              한번에 bytes 바이트씩 읽고 쓴다.  ibs, obs 값 무시.

       cbs=bytes
              한번에 bytes 바이트씩 변환한다.

       skip=blocks
              입력 시작에서 blocks 단위 만큼 ibs 크기를 건너띈다.(가령 skip=5,
              ibs=10 이면, 처음 50바이트를건너띄어 작업을 계속한다.)

       seek=blocks
              출력 시작에서 blocks 단위 만큼 ibs 크기를 건너띈다.

       count=blocks
              입력의 blocks 의 ibs 크기만큼만 복사한다.


– MBR(master boot record)
운영체제가 부팅될 때 POST(Power On Self-Test) 과정을 마친 후 저장매체의 첫 번째 섹터를 호출되는데 이때 해당 부트 코드가 수행된다. 부트 코드의 주 역할은 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터(boot sector)를 호출해주는 역할을 한다. 만약, 부팅 가능한 파티션이 없을 경우에는 미리 정의된 에러 메시지를 출력한다.

다음 표는 MBR 각 영역에 대한 세부적인 데이터구조를 나타낸다.








































범위 (Byte Range)  설명 (Decription) 크기 (Size)
10 진수 16 진수
 0 – 445  0x0000 – 0x01BD  Boot code  446 bytes
 446 – 461  0x01BE – 0x01CD  Partition table entry #1  16 bytes
 462 – 477  0x01CE – 0x01DD  Partition table entry #2  16 bytes
 478 – 493  0x01DE – 0x01ED  Partition table entry #3  16 bytes
 494 – 509  0x01EE – 0x01FD  Partition table entry #4  16 bytes
 510 – 511  0x01FE – 0x01FF  Signature (0x55AA)  2 bytes

dd 예를 통한 옵션의 의미

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다