Mac OS X와 ​​Linux의 dd 차이점

Mac OS X와 ​​Linux의 dd 차이점

Linux(Debian)를 사용할 때 종종 dd를 사용하여 디스크 이미지를 SD 카드에 복사합니다. "of" 옵션에 지정된 장치 파일이 너무 크면 오류가 발생하는 스크립트를 작성했습니다. 이렇게 하면 하드 드라이브 중 하나가 실수로 폭발하는 것을 방지할 수 있습니다.

SD_SIZE=$(sudo sfdisk -s ${SD_DEV}) 
if [ $SD_SIZE -gt 33554432 ]; then
  echo "might not be and SD card, exiting"
  exit 1
fi

하지만 SD 카드를 삽입하고 마운트 해제하는 것을 잊어버린 경우 결과는 대략적입니다. 복사가 성공할 때도 있고 실패할 때도 있습니다.

여기에 있는 답변을 사용하여 스크립트를 수정할 수 있었습니다. 스크립트를 통해 파일 시스템이 마운트되었는지 확인하는 방법

하지만 이 기능을 사용하는 옵션이 dd에 있습니까? (OS X에서는 dd가 기본적으로 마운트된 디스크에 쓰지 않습니다)

또한 흥미로운 점은 마운트된 디스크에 복사하려고 할 때 dd(OS X에서) 오류가 발생하는 이유는 무엇입니까? 커널이나 dd에 약간의 차이가 있습니까? OS X(10.9) 설치에 드라이브를 추가하려고 하면 다음 오류가 발생합니다.

dd: /dev/diskN: 리소스가 사용 중입니다. 디스크가 사용 중이 아닌지 확인하세요.

cp를 사용하여 디스크에 쓸 수 있으므로 dd에 의한 시스템 호출은 OPEN 이후 WRITE만큼 간단하지 않을 수 있습니다.

답변1

복사가 성공할 때도 있고 실패할 때도 있습니다.

동시에 일부 프로세스가 마운트된 파일 시스템에 쓰기 때문에 실패할 수 있습니다. 이것이 umount이전에 좋은 습관인 이유인 것 같습니다 :-)

dd정말 공평해야 합니다 open. writeMacOSX 버전에는 제어 기능이 추가된 것 같고 Linux와 비교하여 장치 이름을 사용하는 이유를 쉽게 알 수 있다고 생각합니다. dd사용하기 전에 세 번 확인했습니다.

관련 정보