La extracción segura de la unidad USB externa falla debido a $ extender

26

Cuando conecto un disco duro externo USB 3.0 a mis puertos USB 3.0, nunca puedo quitarlo con seguridad.

De alguna manera, Windows siempre mantiene abiertos los archivos del diario: ingrese la descripción de la imagen aquí "Siempre", ya que en este momento solo conecté la unidad, copié una máquina virtual de 10 GB y quise desconectarla después (como 15 minutos después de la copia, así que se realizó toda la copia).

Como puede ver, no hay otro programa que mantenga un controlador en el disco además del Sistema . Traté de reiniciar explorer.exe, así como RemoveDrive.exede Uwe Sieber . Sin suerte, las cerraduras en el disco duro siempre permanecen.

Mi única solución es simplemente desenchufarlo (mientras que tengo miedo de dañar los datos) o reiniciar la computadora (siempre ayuda, ¿no?).

¿Podría tener algo que ver conmigo tener solo un disco duro SSD y el disco externo es un disco normal? ¿Podría tener algo que ver con los controladores USB 3.0 (NEC Electronics USB Hub)? Nunca tengo este problema cuando uso los puertos USB 2.0 normales.

¿Alguna idea sobre cómo desmontar correctamente el disco?

Dennis G
fuente
Si alguna de estas respuestas fue la solución, siéntase libre de votar o marcarlas como respuesta.
user88311

Respuestas:

25

Llegué buscando una posible explicación o una forma más fácil (léase: automatizada / programada) para borrar este "bloqueo" en los metadatos MFT / TxF / NTFS. Pensé en lanzar esto, ya que tengo una solución que me ha funcionado en innumerables situaciones. Lo he usado para eliminar todo tipo de unidades USB y eSATA que se atascan de esta manera. El problema parece ser principalmente unidades extraíbles que se montan como unidades fijas, como las de una base eSATA o una carcasa USB. Las unidades de memoria USB generalmente no parecen mostrar este problema para mí.

Un elemento a destacar en esta última distinción: el Sandisk Extreme USB 3.0, una extraña bestia compuesta por un controlador SSD en el cuerpo de una llave USB, también aparece como una unidad fija, aunque parece no tener ningún problema al ser retirado sin ceremonias y sin se realiza una eliminación segura, por lo que supongo que al menos desactiva cualquier almacenamiento en caché de escritura debido a su velocidad y posiblemente también a otra cosa, ya que nunca parece tener este problema, siempre conservando su capacidad de eliminación instantánea. No es necesariamente un ejemplo perfecto, ya que no he sido exhaustivo en mis pruebas (esto es solo anecdótico), pero puede arrojar un poco de luz sobre esto debido a su naturaleza "fija", pero aparente falta de susceptibilidad a este problema. Solo comida para pensar.

<- La solución ->

De todos modos, simplemente, necesita desconectar la unidad. Puedes hacer esto de dos maneras. Nota: Hay formas ligeramente más cortas de hacer esto, pero estos son los pasos ridículamente completos porque no conozco a mi audiencia. El método GUI es, con mucho, el más rápido, debido al hecho de que diskpart.exe no toma interruptores o comandos / argumentos en línea.

  1. GUI: Ejecutar -> "diskmgmt.msc" -> Encuentra tu unidad en la lista de discos físicos (panel inferior) -> haz clic derecho en la unidad (la parte más a la izquierda), no en la partición -> Haz clic en "Sin conexión"

O:

  1. CLI: Ejecute -> "cmd.exe" -> escriba "diskpart" -> escriba "list disk", busque su número de disco -> escriba "select disk x", donde x es el número de disco del último paso -> escriba "disco fuera de línea". Ahora puede salir del símbolo del sistema o simplemente escribir "exit" en diskpart, luego cerrar el símbolo del sistema.

Notas:

  • Lo importante es desconectar el volumen, ya que esto eliminará la retención de NTFS en la unidad, pero desconectar el disco es más simple y completo.

  • Los números de disco siempre son idénticos entre diskpart.exe y diskmgmt.msc porque extraen la información del mismo lugar, en caso de que tenga curiosidad / preocupación / cautela.

Torre
fuente
1
Rook, esto se ve genial. No puedo esperar para intentarlo. Y sí, esto siempre sucede con unidades fijas para mí, generalmente unidades externas que alojan máquinas virtuales. Queda una pregunta: ¿Después de configurar la unidad externa fuera de línea, entonces qué? ¿Solo desconectar? ¿Retirar cuidadosamente?
Dennis G
Esto funcionó para mí.
hattenn
Esto parece útil, gracias. La respuesta de @elieux es más simple si solo el Administrador de tareas está causando el problema.
Reg Editar
Solo revisé algunas preguntas antiguas y revisé el enlace al Uwe Sieber removerive.exe que notó, y tengo la sensación de que funcionaría a través del mismo mecanismo (la desconexión y el desmontaje son bastante cercanos en términos de sus implicaciones prácticas, la primera siendo para una unidad física (emulada o no, como un volumen iSCSI) y esta última para una partición / volumen montado (es decir, C :, X: etc.) ... no estoy seguro de qué tan similar funcionan debajo de las hojas) si utilizó la opción "-e". Según las instrucciones de removerive.exe: "" [-e] intente desmontar y expulsar si falla la eliminación ""
Rook
Por último, parece que el propio Uwe Sieber explica los fundamentos de los mecanismos en juego en el código / API y los niveles de error: codeproject.com/Articles/13839/…
Rook
10

Hoy se me ocurrió buscar en el registro de eventos. Encontré esto justo después del intento de eliminación:

log: Sistema, fuente: Kernel-PnP, ID de evento: 225, nivel: advertencia

La aplicación \ Device \ HarddiskVolume2 \ Windows \ System32 \ Taskmgr.exe con ID de proceso 6436 detuvo la eliminación o expulsión del dispositivo [...]

Así que cerré el Administrador de tareas y Safe Remove funcionó.

David Macek
fuente
¡Excelente! Esto resolvió el problema para mí. Ahora, ¿por qué Microsoft no pudo haber puesto esa información en el cuadro de diálogo que dice que "un programa" todavía está usando la unidad!
Reg Editar
Genial, esto también resolvió el problema para mí. Windows 10. Descubrí que tenía Taskmgr en Autostart. Entonces, ¿por qué Taskmgr bloquea las unidades USB?
weberjn
aunque fuera de línea (ver la respuesta de @ rook) y las cosas fsutil me han funcionado en el pasado, hoy no. ProcessExplorer pensó que solo el "sistema" hacía el bloqueo. En cualquier caso, EventViewer mostró el mismo culpable que usted (TaskManager), así que cerré eso y fui dorado.
mpag
5

Creé este script por lotes para "desbloquear" cualquier volumen. Simplemente ejecute el script .bat como administrador, seleccione el volumen y presione ENTRAR. Después de eso, debería poder usar "Retirar con seguridad" como de costumbre para desconectar la unidad.

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

Este script se basa en la sugerencia de @Rook, por lo que se utiliza diskpartpara hacer que el disco esté fuera de línea. Cuando se hace esto, todos los tiradores se cierran a la fuerza. La diferencia en este script es que automáticamente vuelve a poner el disco en línea, por lo que puede reconocerse la próxima vez que se conecte al sistema.

Diego Queiroz
fuente
¡Dulce! No lo he usado, pero agradezco su iniciativa para que sea más fácil para todos los demás ... He recibido algunas otras utilidades que brindan más información (es decir, Hotswap !: mt-naka.com/hotswap/index_enu.htm ) sobre unidades extraíbles / fijas que las ventanas integradas, pero no he encontrado una solución rápida y sucia fuera de línea, ¡así que esto es genial!
Torre
3

Una gran fracción de unidades externas / combos del sistema operativo Windows tienen este problema, tal vez la mayoría.

Lo que hago es dormir mi caja (una computadora portátil) y esperar los diez segundos que tarda la unidad externa en apagarse (puedo escucharla). Luego desenchufa.

Si el sistema está inactivo, todas las operaciones de E / S están completas y el bus de E / S está inactivo. A la espera de que la unidad se apague es "cinturón y tirantes" además de eso.

(Tenga en cuenta que si uno es demasiado paranoico para ese enfoque, hacer una hibernación debería ser completamente suficiente. No debería requerirse un apagado total).

Daniel R Hicks
fuente
Una solución alternativa, pero eso debería funcionar.
Dennis G
1

Por ahora, solo puede intentar desconectar el dispositivo externo apagando la computadora y luego desenchufando, por lo tanto, intente la pérdida de datos y luego configúrelo para una fácil eliminación para evitar la pérdida de datos cuando simplemente lo desconecta sin desmontarlo.

Para ser sincero, suena como un error de MBR en el que la unidad está atascada y se ve a sí misma como siempre conectada, en cuyo caso si desconectara la unidad mientras está encendida, podría dañar el MBR y dejarlo con 2 opciones, reparando manualmente MBR o intentar utilizar un software como MBR para poder acceder de nuevo a la unidad, o utilizar un software como gparted para formatear el disco nuevamente y establecer una nueva tabla de particiones donde es muy probable que ocurra el error.

usuario88311
fuente
"luego configúrelo para una fácil extracción" <- ¿podría explicar a qué se refiere? ¿Cómo sabría que la unidad cree que siempre está conectada, es decir, que no es una unidad USB externa?
Dennis G
Vuelva a enchufar la unidad una vez que se haya quitado en el estado apagado y la computadora se haya reiniciado nuevamente, propiedades, hardware, haga clic en la unidad, propiedades, políticas, optimice para una eliminación rápida. EDITAR: En su pregunta, afirma que ES, de hecho, una unidad USB externa.
user88311
En la mayoría de los casos, el sistema instala unidades externas con el conjunto de indicadores de "extracción rápida". Y, supongo, se supone que esta configuración hace que sea "altamente improbable" que simplemente desenchufar la unidad cause problemas.
Daniel R Hicks
1

Creo que estos archivos pertenecen a Transactional NTFS (TxF).

Escuché que Transactional NTFS es utilizado por la actualización automática, pero no tengo idea de por qué el sistema querría colocar esto en un disco externo y luego no podrá detenerlo luego de una solicitud de eliminación segura. La información del recurso Fsutil no muestra ninguna actividad.

Prueba en la consola cmd:

Parada de recursos fsutil E:

o, si no ayuda,

fsutil resource setautoreset true

y reiniciar. También puede intentar detener un servicio relacionado con TxF en Administración / Servicios de informática

Sem
fuente
¡Esto es bastante interesante! Lo investigaré la próxima vez que suceda.
Dennis G
2
Pero ... no funciona. Al ejecutar fsutil resource stop <drive:>sysinternals handle.exeno se muestran identificadores. Por lo tanto, se quitan, pero cuando trato de quitarlo con seguridad, los mangos vuelven a donde estaban.
Dennis G
0

Hace poco sucedió lo mismo con una unidad flash. Al igual que usted, seguí mostrando los controles activos $ Extend y asumí que me impedían quitar la unidad de forma segura. Me topé con esta pregunta y probé la fsutilsugerencia de Sem sin ningún efecto. Lo que funcionó para mí fue desmontar manualmente la unidad. Como mi unidad flash se montó como F :, ejecuté:

mountvol f: /d

Luego desconecté el disco, lo volví a enchufar, lo volví a montar mountvol f: <volumename>y lo usé por un tiempo. Cuando terminé, verifiqué los controladores activos y vi las mismas entradas $ Extend que noté anteriormente. Sin embargo, cuando intenté hacer la eliminación segura 'normal', lo logré a pesar de los controles activos.

No sé si fue pura casualidad que esto funcionó para mí, pero lo estoy agregando aquí en caso de que ayude a alguien más.

ajk
fuente
Creo que el $ extender es una pista falsa: hay alguna otra razón que impide que Windows desmonte la unidad.
Daniel R Hicks
De acuerdo, esa realización fue la principal razón por la que publiqué esta respuesta. Había estado persiguiendo problemas de $ extender sin sentido, y descubrí que esos controladores no causan ningún problema con la eliminación segura. Solo espero que, dado que el arenque rojo me llevó a esta pregunta, tal vez esta respuesta ayude al próximo pescador desafortunado :).
ajk