불량 섹터가 3 개인 하드 드라이브가 있습니다. 섹터 번호를 알고 컴퓨터는 여전히 Windows로 부팅 할 수 있습니다. 제조업체의 HDD 진단 도구에서 섹터 복구를 실행하고 싶지만 수행하기 전에 어떤 파일이 영향을 받는지 알고 싶습니다. 해당 섹터를 차지하는 파일을 파악할 수있는 방법이 있습니까?
불량 섹터가 3 개인 하드 드라이브가 있습니다. 섹터 번호를 알고 컴퓨터는 여전히 Windows로 부팅 할 수 있습니다. 제조업체의 HDD 진단 도구에서 섹터 복구를 실행하고 싶지만 수행하기 전에 어떤 파일이 영향을 받는지 알고 싶습니다. 해당 섹터를 차지하는 파일을 파악할 수있는 방법이 있습니까?
답변:
다음은 드라이브를 직접 검사하고 편집 할 수있는 편리한 16 진 편집기 인 WinHex를 사용하는 프로세스 입니다. 정말 조심하세요; 이 도구를 잘못 사용하면 시스템이 손상 될 수 있습니다. 가능할 때마다 디스크를 읽기 전용으로여 십시오.
불량 섹터 위치가 이미 있으므로 WinHex에서 직접 드라이브를 열고 ( "디스크 열기" 도구 모음 버튼) 섹터를 탐색하여 데이터를 볼 수 있습니다 ( "섹터로 이동" 도구 모음 버튼). 섹터 위치가 물리 섹터 주소라고 가정하면 이 단계에서 물리 드라이브 를 열어야합니다 .
이 되지 않습니다 직접 파일을 식별하지만 왼쪽 창은이 분야 및 해당 들어있는 파티션을 식별해야 상대 섹터 주소를.
식별 한 파티션이 NTFS 또는 FAT 파티션 인 경우 파티션을 직접 열 수 있습니다 ( "디스크 열기" 다시). 그러면 새 탭에서 파티션이 열리므로 필요에 따라 앞뒤로 전환 할 수 있습니다. 파티션 탭에서 "섹터로 이동" 기능을 다시 사용하십시오. 그러나 이번에는 변환 된 섹터 ( 드라이브보기에서 식별 된 "상대 섹터" )를 입력하십시오.
이제 왼쪽 분할 창에 "표시된 드라이브 공간 할당" 섹션 이 표시 됩니다. 이 아래에는 클러스터 #, 물리 섹터 #, 논리 (상대) 섹터 # 및이 섹터가 실제로 파일에 속하는 경우 파일 이름이 있습니다.
이러한 단계를 통해 즉각적인 답변을 얻을 수없는 경우 불량 섹터가 사용 중이 아닐 수 있습니다. 결과가 불분명 한 경우 답을 찾기 위해 더 많은 파기를 수행해야 할 수도 있습니다.
nfi.exe-Windows NT 파일 시스템 (NTFS) 파일 섹터 정보 유틸리티를 사용해보십시오. Microsoft OEM 지원 도구 3 단계 SR2 에서 다운로드 하십시오 .
> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.
Usage: nfi drive-letter [logical-sector-number]
Drive-letter can be a single character or a character followed
by a colon (i.e., C or C: are acceptable).
Logical-sector-number is a decimal or 0x-prefixed hex
number, specifying a sector number relative to the volume
whose drive letter is given by drive-letter. If not
specified, then information about every file on the volume
is dumped.
nfi NT-device-path physical-sector-number
Determines which volume a given physical sector on a drive is
within, and then which file on the volume it is in.
NT-device-path is the NT-style path to a physical device.
It must not include a partition specification.
Physical-sector-number is a decimal or 0x-prefixed hex
number, specifying a sector number relative to the physical
drive whose device path is given by NT-device-path.
nfi full-win32-path
Dumps information about a particular file. full-win32-path
must start with a drive letter and a colon.
"\\?"를 생략해야합니다. 블록 장치 경로의 접두사. 예:
C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.
***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
$DATA (nonresident)
physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)
NT-device-path
로 찾을 수 있습니다 dd --list
. (유닉스 도구를 사용하는 사용자들에게주의를 기울 PATH
이 dd
십시오 : 여기는 C:\WINDOWS\system32\dd.exe
전체 경로를 사용해야합니다.)
c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
대부분의 조각 모음 프로그램은 디스크의 모든 클러스터를 표시하는 디스크 맵을 표시 한 다음 클릭하여 ( 나쁜 것으로 표시된 클러스터를 찾습니다 ) 해당 클러스터에있는 파일을 볼 수 있습니다.
Walter가 말했듯이, 지난 10 년 정도의 디스크와 OS 콤보는 불량 섹터에서 파일을 자동으로 재배치 할 것입니다 (드라이브 펌웨어는 일반적으로이를 처리하지만 디스크 도구 chkdsk
또는 조각 모음 도구도 일반적으로이를 수행합니다).
조각 모음 :
파일 조각 모음 :
Vopt :
fsutil
관리자 명령 프롬프트에서 사용할 수 있습니다 . 부속 명령 volume
에는 부속 부속 명령 이 querycluster
있습니다. Windows 명령 행 참조 Fsutil을 참조 하십시오 .
Fsutil은 논리 드라이브의 클러스터 번호를 섹터 번호 대신 입력 인수로 사용합니다. 그러나
cluster # = (absolute_sector-start_of_partition_sector) / sectors_per_cluster와 같은 숫자를 쉽게 계산할 수 있어야합니다 .
출력 예 :
c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA
드라이브가 섹터에서 특정 수의 읽기 오류를 발견하면 불량으로 표시되고 그 내용이 드라이브의 다른 위치로 복사됩니다. 이것은 일반적으로 해당 섹터의 데이터를 완전히 읽을 수 없게되기 전에 발생합니다.
나는 그것을 위해 소스를 파려고 노력하고 있습니다. 어제 그것을 읽으십시오. 그러나 어디에 있는지 기억하지 못합니다.
또한 --repair-sector 플래그는 실제로 불량 섹터를 포함하여 더 이상 필요하지 않은 불량 섹터를 복원하는 데 사용될 수 있습니다 (드라이브는 해당 미디어를 새로운 영역에 다시 매핑 할 수 있음).
결론 : 불량 섹터에 대해 신경 쓸 필요가 없으며 하드 드라이브 펌웨어가 대신 해줍니다. 당신이해야 할 일은 너무 많아서 드라이브가 죽기 전에 새 드라이브를 얻는 것입니다.
RunTime의 DiskExplorer를 사용하면 섹터별로 드라이브를 검사 할 수 있습니다. 페이웨어 (NTFS 버전의 경우 70 달러)이지만 무료로 사용해 볼 수 있습니다. NTFS, FAT 및 Linux (ext2 / 3) 버전이 있습니다.
나는 스레드가 오래되었다는 것을 알고 있지만 그러한 문제가있는 모든 사람들의 기록을 위해 리눅스에서 확인하는 방법이 있습니다. 실행하기 매우 쉬운 slax와 같이 cd / usb 스틱에서 라이브 리눅스를 항상 사용할 수 있습니다. 어쨌든 사업으로 돌아가
나는 오늘 읽을 수없는 섹터 경고가있는 똑똑한 데몬 로그를 발견하고 조사하기로 결정했습니다. 연구 후 결국 실행합니다 (#는 루트 권한을 나타내는 프롬프트이며 일반 사용자로 실행중인 경우 대신 sudo를 사용할 수 있습니다).
# smartctl -H /dev/sda2
SMART overall-health self-assessment test result: PASSED
이는 해당 드라이브가 다소 건전하다는 것을 나타냅니다. 그러나 나는 계속해서 더 조사하고 실행했다 badblocks
.
# badblocks -v /dev/sda2 > ~/log/sda2.badsectors
# cat ~/log/sda2.badsectors
271521948
그래서 나는 그것이 속한 파일을 알고 싶어하고 있음을 발견 된 일부 badblock 있었다 그것을 할 수 와 함께이 debugfs
문제는 내가 사용 그래서 내 파티션이 NTFS이었다이었다 ntfstools를 핵심이다 :
# ntfscluster -s 271521948 /dev/sda2 > 271521948.secinfo 2>&1
# cat 271521948.secinfo | grep -v "extent"
Searching for sector 271521948
Inode 142427 /tmp/dl/setup_torch_2.exe/$DATA
* one inode found
/ grep -v "extent"
쓸모없는 정보를 제거 오프 많은으로 표시 얻을 것입니다 ntfscluster
/
따라서 ntfs의 경우 모든 요구 사항은 ntfscluster -s $SECTOR
입니다.