$ extend로 인해 외부 USB 드라이브를 안전하게 제거하지 못함

외장 USB 3.0 하드 드라이브를 USB 3.0 포트에 연결하면 절대 안전하게 제거 할 수 없습니다.

어떻게 든 Windows는 항상 저널 파일을 열어 둡니다.

“언제나” 이 시점에서 드라이브를 연결하고 10GB VM을 복사 한 후 나중에 연결을 끊고 싶었습니다 (복사 후 15 분이 지나서 모든 복사가 완료되었습니다).

보시다시피 System 이외의 디스크에 핸들을 유지하는 다른 프로그램은 없습니다 . Uwe Sieberexplorer.exe 뿐만 아니라 다시 시작하려고했습니다 . 운이 좋은 것은 아닙니다. 하드 드라이브의 잠금 장치는 항상 남아 있습니다.RemoveDrive.exe

내 유일한 해결책은 플러그를 뽑거나 (데이터가 손상 될까 걱정 되는가?) 컴퓨터를 다시 시작하는 것입니다 (항상 도움이되지 않습니까?).

SSD 하드 드라이브 만있는 것과 관련이있을 수 있으며 외장 디스크는 일반 드라이브입니까? USB 3.0 드라이버 (NEC Electronics USB Hub)와 관련이 있습니까? 일반 USB 2.0 포트를 사용할 때이 문제가 발생하지 않습니다.

디스크를 올바르게 마운트 해제하는 방법에 대한 아이디어가 있습니까?



답변

가능한 설명이나 MFT / TxF / NTFS 메타 데이터에서이 “잠금”을 지우는 더 쉬운 (읽기 : 자동화 / 스크립트) 방법을 찾아 보았습니다. 나는 수많은 상황에서 나를 위해 일한 해결책을 가지고 있기 때문에 이것을 버릴 것이라고 생각했습니다. 나는 이런 방식으로 붙어있는 모든 USB 및 eSATA 드라이브를 제거하는 데 사용했습니다. 문제는 주로 eSATA 독 또는 USB 인클로저와 같은 고정 드라이브로 마운트 되는 이동식 드라이브 인 것으로 보입니다 . USB 썸 드라이브는 일반적으로이 문제를 보여주지 않는 것 같습니다.

이 마지막 차이점에 대한 참고 사항 : USB 키의 몸체에 SSD 컨트롤러로 구성된 이상한 짐승 인 Sandisk Extreme USB 3.0도 고정 드라이브로 표시됩니다. 안전한 제거가 수행되므로 속도와 잠재적으로 다른 문제로 인해 쓰기 캐싱이 꺼지는 것 같습니다.이 문제가없는 것처럼 보이므로 항상 즉각적인 제거 가능성을 유지합니다. 필자가 테스트에서 철저히 다루지 않았기 때문에 반드시 완벽한 예는 아니지만 (이는 일 화일 뿐이지 만) “고정 된”특성으로 인해이 문제에 약간의 빛이 비춰질 수 있지만이 문제에 대한 감수성이 부족합니다. 그냥 생각할 음식.

<- 해결책 ->

어쨌든 간단히 말해 드라이브를 오프라인으로 전환해야합니다. 두 가지 방법 중 하나로이 작업을 수행 할 수 있습니다. 참고 :이 작업을 수행하는 방법은 약간 짧지 만 여기에 잠재 고객을 모르기 때문에 엄청나게 철저한 단계가 있습니다. diskpart.exe가 스위치 나 인라인 명령 / 인자를받지 않기 때문에 GUI 방법이 훨씬 빠릅니다.

  1. GUI : 실행-> “diskmgmt.msc”-> 물리 디스크 목록 (하단 창)에서 드라이브 찾기-> 파티션이 아니라 드라이브 (가장 왼쪽 부분)를 마우스 오른쪽 단추로 클릭-> “오프라인”클릭

또는:

  1. CLI : 실행-> “cmd.exe”-> “diskpart”유형-> “list disk”유형, 디스크 찾기-> “disk x 선택”을 입력하십시오. 여기서 x는 마지막 단계의 디스크 번호입니다-> 유형 “오프라인 디스크”. 이제 명령 프롬프트를 종료하거나 diskpart에 “exit”를 입력 한 다음 프롬프트를 닫을 수 있습니다.

노트:

  • 드라이브에서 NTFS의 보류를 제거하므로 볼륨을 오프라인 상태로 만드는 것이 중요하지만 디스크를 오프라인 화하는 것이 더 간단하고 철저합니다.

  • 디스크 번호는 diskpart.exe와 diskmgmt.msc간에 항상 동일합니다. 호기심 / 걱정 /주의가 필요한 경우를 대비하여 동일한 위치에서 정보를 가져 오기 때문입니다.


답변

오늘은 이벤트 로그를 살펴 보았습니다. 제거 시도 직후에 이것을 발견했습니다.

로그 : 시스템, 소스 : Kernel-PnP, 이벤트 ID : 225, 레벨 : 경고

프로세스 ID가 6436 인 응용 프로그램 \ Device \ HarddiskVolume2 \ Windows \ System32 \ Taskmgr.exe가 장치의 제거 또는 꺼내기를 중지했습니다 […]

그래서 작업 관리자를 닫고 안전 제거가 작동했습니다.


답변

볼륨을 “잠금 해제”하기 위해이 배치 스크립트를 작성했습니다. .bat 스크립트를 관리자 권한으로 실행하고 볼륨을 선택한 다음 ENTER를 누릅니다. 그런 다음 평소와 같이 “안전 제거”를 사용하여 장치를 분리 할 수 ​​있어야합니다.

@echo off
@cls

set tempfile="%TEMP%\diskscrp.dsk"

echo.
echo   === Disk removal tool ===
echo.
echo   Select the disk volume number
echo   (if the disk has multiple volumes, select any of them)
echo.
echo list volume | diskpart | findstr /C:Volume /C:---
echo.
set /p volume="   Selected volume: "
echo.

echo select volume %volume% >>%tempfile%
echo offline disk >>%tempfile%
echo online disk >>%tempfile%

diskpart /s %tempfile% | findstr /C:"not valid"

if "%ERRORLEVEL%"=="1" (
  echo   Disk has been unlocked successfully.  Try to safely remove it now.
)

del /F %tempfile%

이 스크립트는 @Rook 제안을 기반으로하므로 diskpart디스크를 오프라인으로 만드는 데 사용 됩니다. 이 작업이 완료되면 모든 핸들이 강제로 닫힙니다. 이 스크립트의 차이점은 자동으로 디스크를 온라인 상태로 되돌 리므로 다음에 시스템에 연결할 때 인식 할 수 있다는 것입니다.


답변

대부분의 외장 드라이브 / Windows OS 콤보에이 문제가있을 수 있습니다.

내가하는 일은 내 상자 (노트북)를 자고 외부 드라이브의 전원이 꺼질 때까지 10 초 정도 기다려야합니다 (들을 수 있습니다). 그런 다음 플러그를 뽑습니다.

시스템이 휴면 상태이면 모든 I / O 조작이 완료되고 I / O 버스가 정지됩니다. 드라이브 전원이 꺼질 때까지 기다리는 것이 그 위에 “벨트 및 멜빵”입니다.

(해당 접근 방식에 너무 편집증이있는 경우 최대 절전 모드를 수행하는 것으로 충분합니다. 전체 전원을 끌 필요는 없습니다.)


답변

지금은 컴퓨터를 종료 한 다음 플러그를 뽑아 외부 연결을 끊으려고 시도 할 수 있습니다. 따라서 데이터 손실을 시도한 다음 마운트를 해제하지 않고 간단히 플러그를 뽑을 때 데이터 손실을 방지하기 위해 쉽게 제거 할 수 있도록 설정하십시오.

솔직히 말하면 드라이브가 항상 연결되어있는 것처럼 붙어있는 MBR 오류와 같은 소리가납니다.이 경우 전원을 켠 상태에서 드라이브를 분리하면 MBR이 손상되고 수동으로 수리하는 2 가지 옵션이 남을 수 있습니다 MBR 또는 MBR 복구와 같은 소프트웨어를 사용하여 드라이브에 다시 액세스하거나 gparted와 같은 소프트웨어를 사용하여 디스크를 다시 포맷하고 오류가 발생할 가능성이 가장 높은 새 파티션 테이블을 설정하십시오.


답변

이 파일은 TxF (Transactional NTFS)에 속한다고 생각합니다.

Transactional NTFS가 자동 업데이트에 사용된다고 들었지만 시스템이 외부 디스크에 이것을 배치 한 다음 안전한 제거 요청시이를 중지 할 수없는 이유는 없습니다. Fsutil 리소스 정보에 활동이 표시되지 않습니다.

cmd 콘솔에서 시도하십시오.

fsutil 리소스 중지 E :

도움이되지 않으면

fsutil resource setautoreset true

재부팅합니다. 컴퓨터 관리 / 서비스에서 TxF 관련 서비스를 중지 할 수도 있습니다.


답변

최근에 플래시 드라이브에서도 같은 일이 일어났습니다. 당신처럼, 나는 계속해서 $ Extend 핸들을 보여 주었고 그들이 드라이브를 안전하게 제거하는 것을 방해한다고 가정했습니다. 나는이 질문을 우연히 발견하고 fsutil영향을 미치지 않기 위해 Sem의 제안을 시도했습니다 . 나를 위해 일한 것은 수동으로 드라이브를 마운트 해제하는 것이 었습니다. 플래시 드라이브가 F :로 마운트되었으므로 다음을 실행했습니다.

mountvol f: /d

그런 다음 드라이브의 플러그를 뽑았다가 다시 연결했다가 다시 마운트 mountvol f: <volumename>하여 잠시 동안 사용했습니다. 작업이 완료되면 활성 핸들을 확인하고 이전에 확인한 것과 동일한 $ Extend 항목을 보았습니다. 그래도 ‘정상적인’안전한 제거를 시도했을 때 활성 핸들에도 불구하고 성공했습니다.

이것이 저에게 효과가 있었는지 모르겠지만 다른 사람을 돕기 위해 여기에 추가하고 있습니다.