Como montar e desmontar discos rígidos no Windows (a maneira unix)

36

No meu computador de trabalho, tenho dois discos rígidos USB que uso raramente. Eles têm um modo de economia de energia que os coloca no modo de espera após alguns minutos de inatividade.

Sempre que abro um menu de contexto em um arquivo, as unidades são ativadas (provavelmente causadas pelo manipulador "enviar para"). Então eu ejeto a unidade, mas não consigo encontrar uma maneira de recuperá-la, além de desconectá-la e reconectá-la.

Existe uma maneira de desmontar as unidades e remontá-las somente quando eu realmente precisar delas? (No Windows 7 Ultimate.)

Der Hochstapler
fonte
Se serve de ajuda, eu resumiu toda opção dentro a minha resposta para esta pergunta
Albin

Respostas:

39

Remova as letras da unidade usando mountvolou diskmgmt.msc. Sem uma letra de unidade, eles não aparecerão em Computador ou Enviar para .

mountvol Q: /p

O uso /pdesmontará o dispositivo. Nas versões mais antigas do Windows, você possui apenas /d, que não atribui a letra da unidade, mas mantém o volume montado.

Reatribua quando necessário, usando o ID do volume impresso por mountvol:

mountvol Q: \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\

Você também pode montar o volume em uma pasta vazia (estilo Unix) usando as mesmas ferramentas:

mkdir C:\fs\backup-disk
mountvol C:\fs\backup-disk \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\

Todas essas operações requerem privilégios de administrador.


(De fato, você pode até usar diretamente o ID do volume nos scripts de backup, sem precisar montá-lo em qualquer lugar. Por exemplo, em \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\projectsvez de Q:\projects.)

gravidade
fonte
6
A propósito, esse GUID está vinculado ao dispositivo? Será o mesmo se eu conectar o dispositivo em outra máquina Windows? É estático entre as reinicializações na mesma máquina?
Der Hochstapler
2
@OliverSalzburg: o GUID do volume está vinculado a esse volume específico e persiste após a reinicialização. (É necessário, para que atribuições de letra de unidade persistentes e montagens de sistema de arquivos funcionem.) Mas, infelizmente, é local para a máquina. (Tanto quanto eu sei, o Windows não tem maneira de volumes de referência pela etiqueta ou sistema de arquivos UUID ainda.)
grawity
3
Isso é realmente o mesmo que desmontar no UNIX? Em uma caixa UNIX, depois que o volume é desmontado, é seguro removê-lo do computador. (Talvez isso atrapalhe o seu barramento SATA, se você não tiver o suporte de hardware apropriado para isso e precisar reiniciar, mas não perderá nenhum dado.) Se você ainda puder acessar o disco como \ \? \ Volume {...}, isso não significa que o sistema de arquivos ainda está disponível para o sistema operacional e, portanto, pode ter dados não liberados no cache de gravação e assim por diante?
Glyph
3
@ DavidBalažic: /Dremove apenas a atribuição da letra da unidade (ou caminho). Desmontar significa desanexar todas essas atribuições, além de fechar o próprio sistema de arquivos. Lembre-se de que o Windows monta todos os sistemas de arquivos por padrão nos \\?\Volume{…}caminhos e, portanto, o mountvoluso regular apenas adiciona / remove outros (como mount --bind /x /yno Linux).
grawity
3
Então, se eu quiser que o Windows "solte" completamente o volume, tenho que usar / P? Para obter o mesmo efeito que umount no * nix? Usar / D remove uma atribuição de letra / caminho enquanto o volume permanece realmente montado?
David Balažic
6

Use o DISKPART para definir seu disco offline.
Ele permanecerá offline mesmo após uma reinicialização ou uma nova inicialização.

Use o DISKPART para configurá-lo novamente online

Isso pode ser feito em scripts

arquivo de comando para colocar o disco 2 offline:

Offline.cmd

 echo list disk              > c:\windows\temp\namexxxx.none
 echo select disk 2         >> c:\windows\temp\namexxxx.none
 echo offline disk          >> c:\windows\temp\namexxxx.none
 echo exit                  >> c:\windows\temp\namexxxx.none
 diskpart /s c:\windows\temp\namexxxx.none
 erase c:\windows\temp\namexxxx.none
 pause

arquivo de comando para colocar o disco 2 online:

Online.cmd

 .
 echo select disk 2 ........
 echo online disk ......
 .

Executar como administrador

Opoedre
fonte
"list disk" não é necessário, ele só exibe lista de unidade para o usuário
trogper
5

A resposta correta está usando o parâmetro / P para mountvol (veja os comentários na resposta aceita para entender por que / D não é suficiente), mas isso só se aplica a versões recentes do Windows (kernel NT versão 6 e posterior) .

O devconutilitário descrito nesta resposta funciona em todas as versões do NT

Costin Gușă
fonte