500GB 하드 드라이브를 복제하고 싶어서 Kali Linux로 부팅하고 다음 명령을 실행했습니다.
dd if=/dev/sda of=/media/root/usb/windows.img bs=64k conv=noerror
이 모든 것이 완벽하게 작동했으며 이미지가 만들어졌고 부팅할 수 있습니다. 그러나 실제 PC가 부팅되면 다음 메시지가 표시됩니다.
An operating system wasn't found. Try disconnecting any drives that don't contain an operating system. Press Ctrl+alt+Del to restart.
이것이 단지 우연일 수도 있지만 그럴 가능성은 거의 없습니다. 현재 이 컴퓨터에 물리적으로 액세스할 수 없습니다. 제 질문은, 어쨌든 이 dd 명령을 실행하면 컴퓨터가 부팅 가능한 드라이브를 찾을 수 없게 될 수 있다는 것입니다.
답변1
그럴 것 같지는 않다이것dd 명령은 /dev/sda 드라이브에서 데이터를 읽고 이를 물리적으로 다른 저장 장치에 있는 이미지 파일에 쓰는 것뿐이므로 부팅 자체에 부정적인 영향을 미쳤습니다.
가능성이 낮다는 것이 불가능하다는 의미는 아닙니다. 다음 두 가지 경우를 제외할 수 있는지 확인하세요.
예외 1: 옵션을 전달한 것으로 확인되었습니다 conv=noerror
. 일반적으로 이 옵션은 실패한 저장 장치에서 데이터를 추출하는 데 사용됩니다(실제로는 conv=sync,noerror
HDD의 물리적 섹터 크기와 일치하는 bs 값을 사용합니다). 이는 읽고 있는 드라이브에서 불량 섹터가 발생한 후 dd가 진행되도록 하기 때문에 이미지 파일에서 데이터를 추출할 수 있기를 바랍니다. 이 파일에는 실패한 드라이브로 인한 데이터 손상이 여전히 포함될 수 있지만 이제 안전한 저장소에 있습니다. . 반대로 생각해보면, 자신의 운전이 건강하다고 의심된다면 그렇게 하세요.~ 아니다conv=noerror
dd가 실패하면 드라이브에 문제가 있음을 알 수 있도록 통과하고 싶습니다 .
불량 드라이브에서 읽는다고 가정하면, 다른 프로그램에 의한 다른 읽기 작업(PC를 정상적으로 부팅하는 것과 같은)과 마찬가지로 dd 자체에 의한 읽기로 인해 드라이브에 더 많은 불량 섹터가 발생할 수 있습니다. 이것이 사실이라면 dd는 해당 섹터에서 마지막으로 성공한 읽기일 수 있습니다.
예외 2: 또한 위에 인용된 dd 호출은 정확하지만 dd 명령을 수동으로 입력할 때 'if'를 'of'로 바꾸는 것은 매우 쉽습니다. 이로 인해 하드 드라이브의 데이터를 쉽게 사용할 수 없게 될 수 있습니다.
dd가 데이터를 망치지 않았다는 확신이 없더라도 부팅 실패의 다른 원인을 찾는 것을 게을리하지 마십시오. 다음은 문제를 보다 정확하게 설명하는 데 도움이 될 수 있는 몇 가지 힌트입니다.
당신이 읽고 있는 메시지( An operating system wasn't found [...]
)는 Windows 부트로더에서 온 것입니다. 따라서 BIOS는 이 부트 로더가 있는 디스크를 찾았지만 그에 맞는 Windows 설치를 찾을 수 없습니다. Windows로 부팅할 예정이었나요?
설명에 있는 소스 하드 드라이브, 새 디스크 이미지가 포함된 하드 드라이브 또는 다른 설치를 모두 실행하려고 했습니까?
예를 들어 Kali로 부팅할 때 BIOS 부팅 옵션을 변경하셨나요? 이제 BIOS가 올바른 드라이브를 가리키고 있습니까? (또는 이전에 Windows 설치에 사용되었던 드라이브일까요?)
설명이 완전하다면 실제로 하드 드라이브를 '복제'한 것이 아니라 기존 파일 시스템 내에 이미지 파일을 생성한 것입니다(백업으로 유용함). 올바르게 복제된 하드 드라이브를 PC에 삽입하여 원본 하드 드라이브를 교체할 수 있지만 지금까지 수행한 작업으로는 아직 작동하지 않습니다. 또한 소스 하드 드라이브에 결함이 있는 경우 이미지가 손상될 가능성이 있습니다. 아마도 dd를 사용한 복제에 대해 더 자세히 읽고 싶을 것입니다.이 기본 예에서는그리고conv=sync,noerror에 대한 토론에서.