A remoção segura da unidade USB externa falha devido a uma extensão de $


26

Ao conectar um disco rígido externo USB 3.0 às portas USB 3.0, nunca consigo removê-lo com segurança.

De alguma forma, o Windows sempre mantém os arquivos do diário abertos: insira a descrição da imagem aqui "Sempre", pois, neste momento, eu apenas conectei a unidade, copiei uma VM de 10 GB e quis desconectá-la depois (15 minutos após a cópia, todas as cópias foram feitas).

Como você pode ver, não há outro programa controlando o disco além do System . Eu tentei reiniciar explorer.exe, bem como a RemoveDrive.exepartir de Uwe Sieber . Sem sorte, as travas no disco rígido sempre permanecem.

Minha única solução é apenas desconectá-lo (enquanto tenho medo de danificar os dados?) Ou reiniciar o computador (sempre ajuda, não é?).

Pode ter algo a ver comigo apenas com um disco rígido SSD e o disco externo é uma unidade normal? Pode ter algo a ver com os drivers USB 3.0 (NEC Electronics USB Hub)? Eu nunca tive esse problema ao usar as portas USB 2.0 regulares.

Alguma idéia de como desmontar corretamente o disco?


Se alguma dessas respostas foi a solução, sinta-se à vontade para votar ou marcar como a resposta.
user88311

Respostas:


25

Eu vim procurando uma explicação possível ou uma maneira mais fácil (leia-se: automatizada / com script) de limpar esse "bloqueio" nos metadados MFT / TxF / NTFS. Pensei em lançar isso lá fora, pois tenho uma solução que funcionou para mim em inúmeras situações. Usei-o para remover todos os tipos de unidades USB e eSATA que ficam presas assim. O problema parece ser principalmente as unidades removíveis montadas como unidades fixas, como as de uma estação eSATA ou gabinete USB. Os pen drives USB geralmente não parecem exibir esse problema para mim.

Um item digno de nota sobre essa última distinção: o Sandisk Extreme USB 3.0, uma besta estranha composta por um controlador SSD no corpo de uma chave USB, também aparece como uma unidade fixa, embora pareça não ter nenhum problema em ser puxado sem cerimônia e sem qualquer remoção segura sendo feita, acho que pelo menos desativa o cache de gravação devido à sua velocidade e potencialmente a qualquer outra coisa, já que nunca parece ter esse problema, mantendo sempre sua capacidade de remoção instantânea. Não é necessariamente um exemplo perfeito, pois eu não fui exaustivo em meus testes (isso é apenas anedótico), mas pode esclarecer um pouco isso devido à sua natureza "fixa", mas aparente falta de suscetibilidade a esse problema. Apenas comida para pensar.

<- A solução ->

De qualquer forma, basta colocar o drive offline. Você pode fazer isso de duas maneiras. Nota: existem maneiras um pouco mais curtas de fazer isso, mas aqui estão as etapas ridiculamente completas porque eu não conheço meu público. O método da GUI é de longe o mais rápido, devido ao fato de o diskpart.exe não aceitar opções ou comandos / argumentos em linha.

  1. GUI: Execute -> "diskmgmt.msc" -> Encontre sua unidade na lista de discos físicos (painel inferior) -> clique com o botão direito do mouse na unidade (parte mais à esquerda), não na partição -> Clique em "Off-line"

Ou:

  1. CLI: Execute -> "cmd.exe" -> digite "diskpart" -> digite "list disk", encontre seu disco # -> digite "select disk x", onde x é o # do disco desde a última etapa -> type "disco offline". Agora você pode sair do prompt de comando ou simplesmente digitar "exit" no diskpart e feche o prompt.

Notas:

  • Tudo o que é importante deve ser o volume off-line, pois isso removerá a retenção do NTFS na unidade, mas o off-line do disco é mais simples e completo.

  • Os #s de disco são sempre idênticos entre diskpart.exe e diskmgmt.msc, porque estão puxando as informações do mesmo local, caso você esteja curioso / preocupado / cauteloso.


1
Torre, isso parece ótimo. Mal posso esperar para tentar. E sim, isso sempre acontece com unidades fixas para mim - geralmente unidades externas que hospedam VMs. Uma pergunta permanece: depois de configurar a unidade externa offline, o que então? Apenas desconecte? Remova com segurança?
Dennis G

Isso funcionou para mim.
hattenn

Isso parece útil, obrigado. A resposta de @elieux é mais simples se for apenas o Gerenciador de Tarefas que está causando o problema.
Reg Editar

Apenas revisitando algumas perguntas antigas e verifiquei o link do Uwe Sieber removedrive.exe que você notou e tenho a sensação de que funcionaria pelo mesmo mecanismo (off-line e desmontagem são muito próximas em termos de implicações práticas, a primeira sendo para uma unidade física (emulada ou não, como um volume iSCSI) e sendo a última para uma partição / volume montado (por exemplo, C :, X: etc) ... não tem certeza de como elas funcionam sob as folhas da mesma forma) se você usou a opção "-e". De acordo com as instruções removedrive.exe: "" [-e] tente desmontar e ejetar se a remoção falhar ""
Rook

Por fim, parece que o próprio Uwe Sieber explica os fundamentos dos mecanismos em ação nos
Rook

10

Hoje, ocorreu-me olhar no log de eventos. Encontrei isso logo após a tentativa de remoção:

log: Sistema, fonte: Kernel-PnP, ID do evento: 225, nível: aviso

O aplicativo \ Device \ HarddiskVolume2 \ Windows \ System32 \ Taskmgr.exe com o ID do processo 6436 interrompeu a remoção ou ejeção do dispositivo [...]

Então fechei o Gerenciador de Tarefas e a Remoção Segura funcionou.


Excelente! Isso resolveu o problema para mim. Agora, por que a Microsoft não conseguiu colocar essas informações na caixa de diálogo que diz "um programa" ainda está usando a unidade!
Reg Editar

Ótimo, isso também resolveu o problema para mim. Windows 10. Descobri que eu tinha o Taskmgr no Autostart. Então, por que o Taskmgr bloqueia unidades USB?
Weberjn

embora coisas off-line (veja a resposta de @ rook) e fsutil funcionaram no passado para mim, hoje não funcionou. O ProcessExplorer achou que era apenas "sistema" fazendo o bloqueio. De qualquer forma, o EventViewer mostrou o mesmo culpado que você (TaskManager), então encerrei isso e fiquei com o ouro.
MPAG

5

Eu criei esse script em lote para "desbloquear" qualquer volume. Basta executar o script .bat como administrador, selecione o volume e pressione ENTER. Depois disso, você poderá usar "Remoção segura", como de costume, para desconectar a unidade.

@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%

Esse script é baseado na sugestão do @Rook, portanto, é usado diskpartpara deixar o disco offline. Quando isso é feito, todas as alças são fechadas à força. A diferença nesse script é que ele coloca o disco automaticamente online novamente, para que possa ser reconhecido na próxima vez em que for conectado ao sistema.


Doce! Ainda não o usei, mas agradeço a sua iniciativa em facilitar para todos os outros ... Consegui alguns outros utilitários que fornecem mais informações (por exemplo, Hotswap !: mt-naka.com/hotswap/index_enu.htm ) sobre unidades removíveis / fixas que a do Windows embutida, mas não encontraram uma solução offline rápida e suja, por isso é ótimo!
Rook

3

Uma grande fração dos combos de unidades externas / sistemas operacionais Windows tem esse problema, talvez a maioria.

O que faço é dormir minha caixa (um laptop) e aguardar os dez segundos necessários para que a unidade externa seja desligada (eu posso ouvi-la). Então desconecte.

Se o sistema estiver em suspensão, todas as operações de E / S serão concluídas e o barramento de E / S será desativado. Esperar a unidade desligar é "cinto e suspensórios" em cima disso.

(Observe que, se alguém for muito paranóico para essa abordagem, fazer um hibernar deve ser totalmente suficiente. Não é necessário desligar totalmente.)


Uma solução alternativa, mas isso deve funcionar.
Dennis G

1

Por enquanto, você pode apenas tentar desconectar o externo desligando o computador e, em seguida, desconectando-o, tentando perda de dados e configurando-o para facilitar a remoção, a fim de evitar a perda de dados ao simplesmente desconectá-lo sem desmontá-lo.

Para ser sincero, soa como um erro de MBR em que a unidade está presa, como sempre conectada; nesse caso, se você desconectar a unidade enquanto estiver ligada, poderá danificá-la e deixá-lo com 2 opções, reparando manualmente o MBR ou a tentativa de usar software como o reparo do MBR para poder acessar a unidade novamente ou usar o software como gparted para formatar o disco novamente e definir uma nova tabela de partição onde o erro provavelmente ocorreu.


"configurando-o para fácil remoção" <- você poderia elaborar o que quer dizer? Como eu saberia que a unidade acha que está sempre conectada, ou seja, não sendo uma unidade USB externa?
Dennis L

Conecte sua unidade novamente depois de removida no estado desligado e o computador reiniciado, propriedades, hardware, clique na unidade, propriedades, políticas, otimizar para remoção rápida. EDIT: Na sua pergunta, você afirma que é de fato uma unidade USB externa.
user88311

Na maioria dos casos, o sistema instala unidades externas com o sinalizador "remoção rápida" definido. E, entendo, essa configuração deve tornar "altamente improvável" que simplesmente desconectar a unidade cause problemas.
Daniel R Hicks

1

Eu acredito que esses arquivos pertencem ao NTFS transacional (TxF).

Ouvi dizer que o NTFS transacional é usado pela atualização automática, mas não tenho idéia do motivo pelo qual o sistema deseja colocá-lo em um disco externo e não conseguir pará-lo mediante solicitação de remoção segura. As informações do recurso Fsutil não mostram nenhuma atividade.

Tente no console do cmd:

parada do recurso fsutil E:

ou, se não ajudar,

recurso de fsutil setautoreset true

e reinicie. Você também pode tentar interromper um serviço relacionado ao TxF em Gerenciamento / serviços de computador


Isso é coisa bem interessante! Vou dar uma olhada na próxima vez que acontecer.
Dennis L

2
Mas ... não funciona. Ao executar o fsutil resource stop <drive:>sysinternals handle.exenão mostra nenhum identificador. Portanto, eles são removidos, mas quando tento removê-lo com segurança, as alças estão de volta onde estavam.
Dennis L

0

Eu tive a mesma coisa recentemente com um pen drive. Como você, continuei mostrando alças ativas do $ Extend e assumi que elas estavam me impedindo de remover a unidade com segurança. Eu me deparei com essa pergunta e tentei a fsutilsugestão de Sem sem efeito. O que funcionou para mim foi desmontar manualmente a unidade. Como minha unidade flash foi montada como F :, executei:

mountvol f: /d

Eu então desconectei a unidade, conectei novamente, remontei usando mountvol f: <volumename>e usei por um tempo. Quando terminei, verifiquei as alças ativas e vi as mesmas entradas $ Extend que notei anteriormente. No entanto, quando tentei fazer a remoção segura 'normal', ela foi bem-sucedida, apesar das alças ativas.

Não sei se foi por acaso que isso funcionou para mim, mas estou adicionando aqui para o caso de ajudar outras pessoas.


Acho que o material de extensão $ é um arenque vermelho - há algum outro motivo que impede o Windows de desmontar a unidade.
Daniel R Hicks

Concordo que essa realização foi a maior razão pela qual publiquei esta resposta. Eu estava perseguindo questões de extensão $ sem sentido e descobri que essas alças não causam problemas com a remoção segura. Só espero que, desde que o arenque vermelho tenha me levado a essa pergunta, talvez essa resposta ajude o próximo pescador azarado :).
AJK
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.