- 의미
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 |