Échec de la suppression en toute sécurité du lecteur USB externe en raison de l'extension de $

26

Lorsque je connecte un disque dur USB 3.0 externe à mes ports USB 3.0, je ne peux jamais le retirer en toute sécurité.

D'une manière ou d'une autre, Windows garde toujours les fichiers journaux ouverts: entrez la description de l'image ici "Toujours" car à cette époque, je n'ai connecté que le lecteur, copié une machine virtuelle de 10 Go et je voulais le déconnecter par la suite (comme 15 minutes après la copie, donc toute la copie a été effectuée).

Comme vous pouvez le constater, aucun autre programme ne gère le disque en dehors du système . J'ai essayé de redémarrer explorer.exeainsi que RemoveDrive.exed'Uwe Sieber . Pas de chance, les verrous sur le disque dur restent toujours.

Ma seule solution est simplement de le débrancher (alors que j'ai peur d'endommager les données?) Ou de redémarrer l'ordinateur (ça aide toujours, n'est-ce pas?).

Cela pourrait-il avoir quelque chose à voir avec le fait que je n'ai qu'un disque dur SSD et que le disque externe est un lecteur normal? Cela pourrait-il avoir quelque chose à voir avec les pilotes USB 3.0 (NEC Electronics USB Hub)? Je n'ai jamais ce problème lors de l'utilisation des ports USB 2.0 standard.

Des idées sur la façon de démonter correctement le disque?

Dennis G
la source
Si l'une de ces réponses était la solution, n'hésitez pas à voter ou à les marquer comme réponse.
user88311

Réponses:

25

Je suis venu en cherchant une explication possible ou un moyen plus simple (lire: automatisé / scripté) pour effacer ce "verrou" sur les métadonnées MFT / TxF / NTFS. Je pensais que je jetterais ça là-bas, car j'ai une solution qui a fonctionné pour moi dans d'innombrables situations. Je l'ai utilisé pour retirer toutes sortes de lecteurs USB et eSATA qui se bloquent comme ça. Le problème semble être principalement des disques amovibles qui se montent en tant que disques fixes, tels que ceux d'une station d'accueil eSATA ou d'un boîtier USB. Les clés USB ne semblent généralement pas présenter ce problème pour moi.

Un élément à noter sur cette dernière distinction: le Sandisk Extreme USB 3.0, une bête étrange composée d'un contrôleur SSD dans le corps d'une clé USB, apparaît également comme un lecteur fixe, bien qu'il ne semble pas y avoir de problème tiré sans cérémonie et sans toute suppression en toute sécurité est effectuée, donc je suppose qu'au moins cela désactive la mise en cache d'écriture en raison de sa vitesse et potentiellement d'autre chose, car il ne semble jamais avoir ce problème, conservant toujours sa suppression instantanée. Pas nécessairement un exemple parfait, car je n'ai pas été approfondi dans mes tests (c'est juste anecdotique) mais cela peut apporter un peu de lumière à cause de sa nature "fixe", mais un manque apparent de sensibilité à ce problème. Juste matière à réflexion.

<- La solution ->

Quoi qu'il en soit, simplement, vous devez déconnecter le lecteur. Vous pouvez le faire de deux manières. Remarque: Il existe des moyens légèrement plus courts de le faire, mais voici les étapes ridiculement approfondies car je ne connais pas mon public. La méthode GUI est de loin la plus rapide, du fait que diskpart.exe ne prend pas de commutateurs ni de commandes / arguments en ligne.

  1. GUI: Exécuter -> "diskmgmt.msc" -> Trouvez votre lecteur dans la liste des disques physiques (volet inférieur) -> cliquez avec le bouton droit sur le lecteur (la partie la plus à gauche), pas sur la partition -> Cliquez sur "Hors ligne"

Ou:

  1. CLI: Exécutez -> "cmd.exe" -> tapez "diskpart" -> tapez "list disk", trouvez votre disque # -> tapez "select disk x", où x est le # de votre disque à la dernière étape -> type "disque hors ligne". Vous pouvez maintenant quitter l'invite de commande ou simplement taper "exit" sur diskpart, puis fermer l'invite.

Remarques:

  • Tout ce qui est important devrait être de déconnecter le volume car cela supprimera la prise de NTFS sur le lecteur, mais le découpage du disque est plus simple et plus approfondi.

  • Les disques # sont toujours identiques entre diskpart.exe et diskmgmt.msc car ils tirent les informations du même endroit, juste au cas où vous seriez curieux / inquiet / prudent.

Tour
la source
1
Rook, ça a l'air super. J'ai hâte d'essayer. Et oui, cela se produit toujours avec des disques fixes pour moi - généralement des disques externes hébergeant des machines virtuelles. Une question demeure: après avoir mis le lecteur externe hors ligne, alors quoi? Débranchez juste? Retirer en toute sécurité?
Dennis G
Cela a fonctionné pour moi.
hattenn
Cela semble utile, merci. La réponse de @elieux est la plus simple si c'est juste le Gestionnaire des tâches qui cause le problème.
Reg Edit
Je reviens simplement à de vieilles questions, et j'ai vérifié le lien vers Uwe Sieber removerive.exe que vous avez noté, et j'ai l'impression que cela fonctionnerait via le même mécanisme (la mise en ligne et le démontage sont assez proches en termes d'implications pratiques, l'ancien étant pour un lecteur physique (émulé ou non, comme un volume iSCSI) et ce dernier étant pour une partition / volume monté (c.-à-d. C :, X: etc) ... je ne sais pas comment ils fonctionnent de manière similaire sous les feuilles) si vous utilisé l'option "-e". Selon les instructions de removerive.exe: "" [-e] essayez de démonter et d'éjecter si la suppression échoue ""
Rook
Enfin, il semble que Uwe Sieber lui-même explique les fondements des mécanismes en jeu au niveau du code / API et des niveaux d'erreur: codeproject.com/Articles/13839/…
Rook
10

Aujourd'hui, il m'est venu à l'esprit de regarder dans le journal des événements. J'ai trouvé cela juste après la tentative de suppression:

journal: système, source: Kernel-PnP, ID d'événement: 225, niveau: avertissement

L'application \ Device \ HarddiskVolume2 \ Windows \ System32 \ Taskmgr.exe avec l'ID de processus 6436 a arrêté la suppression ou l'éjection du périphérique [...]

J'ai donc fermé le Gestionnaire des tâches et Safe Remove a fonctionné.

David Macek
la source
Excellent! Cela a résolu le problème pour moi. Maintenant, pourquoi Microsoft n'aurait-il pas pu mettre ces informations dans la boîte de dialogue qui indique qu'un "programme" utilise toujours le lecteur!
Reg Edit
Très bien, cela a également résolu le problème pour moi. Windows 10. J'ai constaté que j'avais Taskmgr dans Autostart. Alors, pourquoi Taskmgr verrouille-t-il les clés USB?
weberjn
bien que la mise en ligne (voir la réponse de @ rook) et les trucs fsutil aient fonctionné dans le passé pour moi, ce n'est pas le cas aujourd'hui. ProcessExplorer pensait que seul le «système» faisait le verrouillage. Dans tous les cas, EventViewer a montré le même coupable que vous (TaskManager), donc j'ai fermé cela et j'étais en or.
mpag
5

J'ai créé ce script batch pour "déverrouiller" n'importe quel volume. Exécutez simplement le script .bat en tant qu'administrateur, sélectionnez le volume et appuyez sur ENTRÉE. Après cela, vous devriez pouvoir utiliser "Retirer en toute sécurité" comme d'habitude pour détacher l'unité.

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

Ce script est basé sur la suggestion @Rook, il utilise donc diskpartpour rendre le disque hors ligne. Lorsque cela est fait, toutes les poignées sont fermées de force. La différence dans ce script est qu'il remet automatiquement le disque en ligne, afin qu'il puisse être reconnu la prochaine fois qu'il sera connecté au système.

Diego Queiroz
la source
Doux! Je ne l'ai pas utilisé mais j'apprécie votre initiative pour le rendre plus facile pour tout le monde ... J'ai obtenu quelques autres utilitaires qui donnent plus d'informations (par exemple Hotswap !: mt-naka.com/hotswap/index_enu.htm ) à propos de lecteurs amovibles / fixes que ceux intégrés à Windows, mais n'ont pas trouvé de solution hors ligne rapide et sale, donc c'est génial!
Tour
3

Une grande partie des combos disque externe / système d'exploitation Windows ont ce problème, peut-être la plupart.

Ce que je fais, c'est dormir ma boîte (un ordinateur portable) et attendre les dix secondes qu'il faut pour que le lecteur externe s'éteigne (je peux l'entendre). Débranchez ensuite.

Si le système est en veille, toutes les opérations d'E / S sont terminées et le bus d'E / S est interrompu. Attendre que le lecteur s'éteigne est "ceinture et bretelles" en plus de cela.

(Notez que si l'on est trop paranoïaque pour cette approche, une mise en veille prolongée devrait être entièrement suffisante. La mise hors tension complète ne devrait pas être nécessaire.)

Daniel R Hicks
la source
Une solution de contournement, mais cela devrait fonctionner.
Dennis G
1

Pour l'instant, vous pouvez simplement essayer de déconnecter l'externe en éteignant l'ordinateur, puis en le débranchant, donc en tentant de perdre des données, puis en le configurant pour un retrait facile afin d'éviter la perte de données lorsque vous le débranchez simplement sans le démonter.

Pour être honnête, cela ressemble à une erreur de MBR où le lecteur est bloqué se voyant comme toujours branché, auquel cas si vous débranchez le lecteur sous tension, vous risquez d'endommager le MBR et de vous laisser 2 options de réparation manuelle le MBR ou essayez d'utiliser un logiciel comme la réparation MBR pour pouvoir accéder à nouveau au lecteur, ou utilisez un logiciel comme gparted pour formater à nouveau le disque et définir une nouvelle table de partition où l'erreur s'est probablement produite.

user88311
la source
"puis le configurer pour un retrait facile" <- pourriez-vous préciser ce que vous voulez dire? Comment pourrais-je savoir que le lecteur pense qu'il est toujours branché, c'est-à-dire qu'il ne s'agit pas d'un lecteur USB externe?
Dennis G
Rebranchez votre disque une fois qu'il a été retiré à l'état hors tension et que l'ordinateur a été redémarré, propriétés, matériel, cliquez sur le disque, propriétés, politiques, optimisez pour une suppression rapide. EDIT: Dans votre question, vous déclarez qu'il s'agit en fait d'un lecteur USB externe.
user88311
Dans la plupart des cas, le système installe des disques externes avec l'indicateur "retrait rapide" défini. Et, je suppose, ce paramètre est censé rendre «hautement improbable» que le simple fait de débrancher le lecteur causera des problèmes.
Daniel R Hicks
1

Je crois que ces fichiers appartiennent au NTFS transactionnel (TxF).

J'entends que Transactional NTFS est utilisé par la mise à jour automatique, mais je n'ai aucune idée pourquoi le système voudrait le placer sur un disque externe et ne pourra pas ensuite l'arrêter lors d'une demande de suppression sûre. Les informations sur les ressources Fsutil ne montrent aucune activité.

Essayez dans la console cmd:

arrêt de ressource fsutil E:

ou, si cela n'aide pas,

fsutil resource setautoreset true

et redémarrez. Vous pouvez également essayer d'arrêter un service lié à TxF dans Gestion / Services informatiques

Sem
la source
Ce sont des trucs assez intéressants! Je vais l'examiner la prochaine fois que cela se produira.
Dennis G
2
Mais ... ça ne marche pas. Lors de l'exécution de fsutil resource stop <drive:>sysinternals handle.exen'affiche aucun descripteur . Ils sont donc retirés, mais lorsque j'essaie ensuite de le retirer en toute sécurité, les poignées sont de retour là où elles étaient.
Dennis G
0

J'ai eu la même chose récemment avec un lecteur flash. Comme vous, j'ai continué d'afficher les poignées $ Extend actives et j'ai supposé qu'elles m'empêchaient de retirer le lecteur en toute sécurité. Je suis tombé sur cette question et j'ai essayé la fsutilsuggestion de Sem sans effet. Ce qui a fonctionné pour moi a été de démonter manuellement le lecteur. Depuis mon lecteur flash a été monté en F :, j'ai couru:

mountvol f: /d

J'ai ensuite débranché le lecteur, l'ai rebranché, l'ai remonté en l'utilisant mountvol f: <volumename>et l' ai utilisé pendant un certain temps. Quand j'ai fini, j'ai vérifié les poignées actives et j'ai vu les mêmes entrées $ Extend que j'ai remarquées précédemment. Quand j'ai essayé de faire le retrait sûr «normal», cela a réussi malgré les poignées actives.

Je ne sais pas si c'était une simple chance que cela fonctionne pour moi, mais je l'ajoute ici au cas où cela aiderait quelqu'un d'autre.

ajk
la source
Je pense que le truc $ extend est un hareng rouge - il y a une autre raison qui empêche Windows de démonter le lecteur.
Daniel R Hicks
D'accord, cette réalisation était la principale raison pour laquelle j'ai posté cette réponse. Je cherchais inutilement les problèmes de $ extend et j'ai découvert que ces poignées ne causaient aucun problème de suppression en toute sécurité. J'espère juste que puisque ce hareng rouge m'a amené à cette question, peut-être que cette réponse aidera le prochain pêcheur malchanceux :).
ajk