컴퓨터에 UEFI 모드로 opensuse를 설치했는데 이전 버전의 Windows를 사용하고 있어서 부팅 메뉴에 표시되지 않습니다. 인터넷에서 이상한 튜토리얼을 따라 sda에 Windows 파티션을 추가했습니다.
나는 사용했다
dd if="some img" of=/dev/sdaX bs=4m
X는 파티션입니다. 이미지는 몇 KB에 불과합니다. 알고 있지만 이것이 사실인지는 모르겠습니다. dd
장치의 첫 번째 블록부터 쓰기가 시작되므로 파티션 블록의 첫 번째 KB에 대한 파티션 정보를 덮어쓰는 것뿐이므로 시스템이 어떤 파일이 있는지 알 수 없습니다. 시스템이므로 설치할 수 없습니다. 하지만 dd
남은 데이터가 모두 지워졌는지 는 알 수 없습니다 . 그래서 제 질문은 해당 특정 파티션에서 데이터를 복구할 수 있는 방법이 있는지입니다.
답변1
img가 파티션/파일 시스템에 속하는 경우 sdaX는 이제 작동하는 복사본입니다.
IMG가 "약간의 KB"(크기가 1MB 미만이라는 뜻입니까?)와 같은 다른 것이라면 아마도 더 이상 데이터를 소유하지 않을 것입니다.
루프백 장치를 사용하여 IMG를 마운트하면 해당 IMG가 유효한 파일 시스템인지 확인할 수 있습니다.
PhotoRec을 사용하여 sdaX에서 데이터 복구를 시도할 수 있습니다(0으로 설정하지 않았다고 가정).
답변2
별도로 지정하지 않는 한 프로그램은 dd
파티션 시작 부분에서 쓰기를 시작합니다. 또한 소스에서 대상으로 데이터를 쓰기만 하며 소스보다 큰 경우 대상 파티션을 채우지 않습니다.
따라서 소스 파일이 몇 kB에 불과하다면 대부분 또는 모든 데이터가 그대로 남아 있어야 합니다. 문제는 그것이 파티션의 어디에 있는지 알아내는 것입니다.
먼저 전체 파티션을 백업해야 합니다.
이러한 몇 킬로바이트가 실제로 몇 킬로바이트에 불과한 경우 이 파티션에 정확히 동일한 유형의 새 파일 시스템을 생성한 다음 백업에서 몇 킬로바이트 이후의 나머지 부분을 복원할 수 있습니다. 파일 시스템의 시작 부분에는 일반적으로 파일 시스템에 대한 일반 정보가 포함되어 있으며 대부분 변경되지 않습니다. 많은 파일 시스템에는 중요한 데이터 구조의 백업 블록도 있습니다. 대부분의 데이터를 복구할 수 있습니다.