Linux 기반 컴퓨터 또는 Linux Live CD를 사용하여 Windows에서 할 수없는 데이터를 복구 할 수있는 이유는 무엇입니까?
오늘의 질문 및 답변 세션은 커뮤니티 중심의 Q & A 웹 사이트 그룹 인 Stack Exchange의 하위 부문 인 SuperUser가 제공 한 것입니다.
질문
수퍼 유저 독자 인 Philip Allgaier는 Windows에서 복구 불가능한 것으로보고 된 Linux Live CD로 데이터를 복구 할 수 있었던 이유를 알고 싶어합니다.
배경: 올해 초 Windows가 더 이상 인식 할 수있는 SSD 드라이브에 문제가있었습니다. 그러나 결국 부팅 가능한 Parted Magic 2012-10-10이 트릭을 수행했습니다. 이것 좀 봐 해결 된 스레드 . 그 순간부터 한 가지 질문이 떠 올랐습니다.
질문: 나는 Linux가 일반적으로 좀 더 기술적이고 원시적이라는 것을 알고 있지만 Linux 시스템 (또는 Ubuntu가 트릭을 수행하지 않았기 때문에 실제로는 특정 시스템 만)이 여전히 절반으로 액세스 / 통신 할 수있는 이유를 대략적으로 설명 할 수 있습니다. -Windows가 아닌 경우 손상된 장치?
-
그들은 무언가 잘못되었을 수있는 잠재적 인 지표를 무시합니까?
-
구체적인 이유가 있습니까?
-
이 특정 환경이 제한된 시간 동안 만 SSD가 응답하도록 할 수 있었던 것은 행운 이었습니까?
확실히 운이 좋았을 수도 있지만 몇 가지 이상의 요인이 작용할 가능성이 있습니다. 조사해 보겠습니다.
대답
수퍼 유저 기고자 Eike는 데이터를 저장하는 능력에 대해 행운을 넘어서는 잠재적 인 설명을 제공합니다.
일반적으로 이것은 정확히 무엇이 액세스되고 있는지, 정확히 어떻게 장치가 실패하는지에 달려 있습니다. 예를 들어, 문제의 SSD가 섹터 5를 검색 할 수없고 섹터 5를 읽는 즉시 중단되기 시작하는 경우 차이점은 단순히 새 디스크를 인식하면 다른 시스템이 자동으로 액세스하는 항목 때문일 수 있습니다.
Windows가 새 디스크를 감지하면 파티션 테이블을 읽고 읽는 방법을 알고있는 파일 시스템을 자동으로 열려고 시도합니다. 이 "마운팅"프로세스 중에 읽히는 구조 / 블록 중 하나가 결함이있는 SSD를 작별 인사하도록 트리거하는 경우 특정 Linux 배포판과의 차이점은 단순히 문제의 모든 파티션을 자동으로 마운트하지 않을 수 있다는 것입니다. 마운트 할 때 단순히 섹터의 다른 하위 집합을 읽으십시오 (Linux의 NTFS 구현은 Windows의 것과 매우 다릅니다. 디스크상의 형식은 동일하지만 읽을 필요가 있다고 판단되는 구조는 OS에 달려 있습니다. Windows는 MFT의 보조 복사본을 읽거나 일부 데이터를 미리 캐싱하기 시작할 수 있으며 차이가있을 수 있습니다. Ubuntu는 비슷한 종류에 있습니다. 즉석에서 복구 할 수 없으며 찾은 파일 시스템을 마운트하려고 시도합니다. 새로 발견 된 미디어에 자동으로 저장됩니다. 자동으로 작업을 수행하는 대신 사용자가 명시 적으로 요청한 작업 만 수행하므로 복구를위한 전문 배포가 더 나은 방법입니다.
물론 당신도 운이 좋았을 수도 있습니다. SSD의 고장 모드에 대해 충분히 알지 못합니다.
Linux는 일반적으로 무언가 잘못되었다는 표시를 무시하지 않습니다. SATA 칩셋에서 Windows와 동일한 SCSI 오류를 수신합니다. 커널 로그를 보면 결함이있는 디스크에 많은 오류 메시지가 표시됩니다. 다음에 어떤 프로그램이 실제로 디스크에 액세스하는지에 따라 다릅니다. 복구를위한 소프트웨어 인 경우 제한된 횟수만큼 동일한 섹터를 다시 읽으려고 시도하거나 건너 뛸 수 있습니다. 일반적으로 가장 좋은 방법은 가능한 한 많은 섹터를 깨끗하게 읽은 드라이브의 이미지를 얻는 것입니다. 그런 다음 해당 이미지에서 데이터를 복구 해보십시오 (드라이브에서 직접 분석을 수행하는 것은 일반적으로 상태가 악화 될 수 있고 한 번 읽을 수 있었기 때문에 다시 읽을 수 있다는 것을 의미하지 않기 때문에 나쁜 생각입니다. .)
동료 기고자 인 AthonSfere는 다음과 같은 또 다른 사항을 제공합니다.
대부분은 환경이 파일 시스템, ACL 또는 하드 드라이브를 처리하는 방식입니다.
Windows는 ACL과 불량 또는 비어있는 것으로 표시된 섹터를 준수하기 위해 자체적으로 할 수있는 모든 작업을 수행 할 것입니다. 따라서 Windows 및 Windows MBR에서 생성 및 유지 관리되는 NTFS 또는 Fat 파티션은 Windows가 표시 한대로 Windows에서 처리됩니다.
또한 드라이브에 장애가 발생하면 사용할수록 심각한 문제가 발생하고 환경이 충돌 할 가능성이 높아집니다. 그런 다음 OS가 작동하는 방식, Windows는 BSOD 또는 재부팅하고 Windows 부팅 프로세스는 MBR 메시지, 누락 된 파일 메시지 (NTDLR.dll이 없거나 손상됨)를 던지고 중지됩니다. 이러한 잘못된 파일이 필요하기 때문입니다.
라이브 디스크를 사용할 때는 이것에 의존하지 않습니다. 디스크에서 부팅하기 때문에 잘못된 MBR은 무시됩니다. NTDLR.dll을 손상시킨 불량 섹터는 필요하지 않습니다. 모든 것이 디스크에 있습니다. 그런 다음 읽기를 시도 할 수 있습니다. '빈'섹터 또는 불량 비트가 발견되면 해당 환경에서 처리하지만 프로그램은 수행하도록 프로그래밍되었습니다. 우분투는 정상적인 OS 동작을 유지하고 일어날 가능성이 가장 높은 작업을 계속할 것입니다. 섹터가 비어 있습니다. 다른 작업을 수행하십시오. 그 섹터는 나쁘고, 멀리 떨어져 있고, 다시 읽지 말고 쓰지 마십시오. 그렇지 않으면 문제가 발생할 것입니다.
그러나 복구 플랫폼은 모든 데이터를 읽으려고합니다. 파일 마커는 파일이 0,5, 13…에 있어야한다고 말합니다. 파일 시스템이 13이 누락되었다고보고하면 빈 헤더를 무시하고 어쨌든 파일을 읽거나 가능한 한 최선을 다해 불량 섹터를 읽고 복구를 시도하십시오.
또한 Windows는 타사 응용 프로그램을 사용하여 많은 작업을 수행 할 수 있으며, Recuva는 이러한 "누락 된"파일을 많이 찾을 수 있습니다. 그러나 디스크에 다시 기록하여 진정한 영구적 인 손실을 초래할 수있는 환경은 원하지 않습니다.
나는 이것을 단순화하고 몇 가지 해석을 추가했지만 당신이 요구하는 것에 대해 몇 가지 공백을 채워야합니다.
설명에 추가 할 것이 있습니까? 댓글에서 소리를 내세요. 기술에 정통한 다른 Stack Exchange 사용자의 답변을 더 읽고 싶으신가요? 여기에서 전체 토론 스레드를 확인하십시오. .
http://superuser.com/questions/586666/why-can-linux-systems-sometime-recover-data-windows-cant-any-concrete-reasons