Por que o Windows não mostra uma opção de "ejeção" para alguns dispositivos de armazenamento USB?

48

No Windows, você normalmente pode "ejetar" um dispositivo de armazenamento USB antes de desconectá-lo fisicamente para evitar corrupção de dados.

No entanto, para alguns dispositivos, o Windows não fornece uma opção "ejetar". Eu já vi isso com mais frequência em alguns telefones inteligentes.

Por que é isso?

Michael
fonte
3
Não tenho certeza se isso é uma duplicata. Essa é uma pergunta mais ampla que abrange uma variedade de dispositivos que podem ser conectados a um computador, e não apenas um disco rígido externo específico.
bwDraco

Respostas:

69

Provavelmente porque o método usado para transferir arquivos para telefones ( MTP em vez de USB Mass Storage ) coloca o ônus da integridade dos dados e do sistema de arquivos no dispositivo que recebe os dados, o que no caso dos telefones celulares também é considerado inteligente e auto com energia ou com bateria de reserva.

Dispositivos de armazenamento em massa USB geralmente são pen drives ou discos rígidos, dispositivos MTP como telefones, câmeras e similares geralmente são dispositivos razoavelmente inteligentes que lidam com seu armazenamento pessoalmente. Como tal, a transferência de arquivos pode ocorrer em uma ideologia ponto a ponto, em vez de em um cliente burro de host inteligente. Depois que os dados são "enviados" para o telefone, cabe ao sistema operacional do telefone e aos métodos do sistema de arquivos garantir o armazenamento correto do arquivo.

Se a transferência do arquivo for interrompida e, portanto, parcialmente transferida, o telefone poderá decidir se deseja liberar espaço alocado ou mostrar o que foi transferido caso a caso. Suspeito que a maioria das transferências interrompidas simplesmente elimine dados incompletos e libere todos os blocos alocados. A integridade do sistema de arquivos é gerenciada ativamente pelo telefone.

Como essa transferência ocorre ou não, e a ejeção do software é desnecessária, a única razão para isso é a pessoa que usa o computador pode obter a sensação de calor "Estou pronto". O USB certamente não precisa dele da perspectiva do hardware e está bastante satisfeito com os dispositivos de hotplugging.

Na página da Wikipedia do MTP:

Um dos principais motivos para usar o MTP em vez de, por exemplo, a classe de dispositivo de armazenamento em massa USB (MSC) é que este último opera na granularidade de um bloco de dispositivo de armazenamento em massa (geralmente na prática, um bloco FAT), e não no nível de arquivo lógico. Em outras palavras, a classe de armazenamento em massa USB foi projetada para fornecer ao computador host acesso indiferenciado ao armazenamento em massa em massa, como compact flash, em vez de a um sistema de arquivos, que pode ser compartilhado com segurança com o dispositivo de destino(exceto arquivos específicos que o host pode estar modificando / acessando). Na prática, portanto, quando um computador host USB monta uma partição MSC, ele assume o controle absoluto do armazenamento, que pode não ser modificado com segurança pelo dispositivo sem risco de corrupção de dados até que o computador host interrompa a conexão. Além disso, como o computador host tem controle total sobre o dispositivo de armazenamento conectado, existe o risco de o computador host corromper o sistema de arquivos, reformatá-lo para um sistema de arquivos não suportado pelo dispositivo USB ou modificá-lo de tal maneira que o dispositivo USB não pode entendê-lo completamente.

Mokubai
fonte
3
Os HDDs USB não possuem essa opção e são de armazenamento em massa, não MTP.
Johannes Tue
16
@ Alex.S Eu usei vários HDDs USB e todos eles tiveram uma função de ejeção. Nos casos em que eles não podem, espero que o controlador USB da unidade o anuncie como um disco "fixo" em vez de removível e seja intencional, que nunca deve ser removido enquanto um sistema operacional estiver em execução por qualquer motivo, ou foi uma configuração incorreta por parte do fabricante. A pergunta especificava telefones, então eu respondi dessa perspectiva, pois era a situação que eu conhecia de um motivo específico, ou seja, que os arquivos não são transferidos pelo mesmo método.
Mokubai
2
Resposta muito informativa, obrigado pelo seu tempo @Mokubai. Eu só vi esse problema na maioria dos telefones inteligentes. No entanto, encontrei esse problema uma vez com um pen drive USB.
Michael
E essa é apenas uma vantagem secundária do MTP. A principal vantagem é que o sistema de arquivos pode ser usado pelos dois dispositivos simultaneamente. Os telefones mais antigos que suportavam apenas o protocolo de armazenamento em massa USB precisavam desmontar o sistema de arquivos antes que ele pudesse ser acessado por USB.
kasperd
11
Para adicionar um pouco, alguns players MP4 e câmeras digitais usam MTP para conectar-se ao PC. Este não é um protocolo novo, como alguns podem pensar, pois vem em dispositivos Android e tal.
Ismael Miguel
18

Sumário

Em última análise, é uma questão de saber se o dispositivo usa MSC ou MTP / PTP. Como regra, dispositivos de armazenamento dedicados, como drives flash e discos rígidos externos, usam o MSC, enquanto smartphones e outros dispositivos que precisam manter o acesso aos dados enquanto estão conectados a um computador ou requerem controle sobre os dados transferidos usam o MTP. Muitas câmeras usam PTP, um subconjunto do MTP.

Se o dispositivo usa o MSC, você precisará ejetar do computador para poder removê-lo. Se ele usa MTP ou PTP, a ejeção não é necessária.


Detalhes técnicos

A Mass Storage Class (MSC) permite que o computador se comunique com a unidade da mesma maneira que faria com um disco rígido interno ou SSD, tornando-o mais rápido do que outros protocolos para transferência de dados. É isso que dispositivos de armazenamento dedicados, como unidades flash USB e discos rígidos externos, usam. No entanto, requer nível de blocoacesso à mídia de armazenamento subjacente e isso significa acesso exclusivo ao dispositivo. Como resultado, o MSC não é adequado para dispositivos inteligentes, pois eles precisam acessar o conteúdo do sistema de arquivos enquanto o computador o usa. Um smartphone precisaria efetivamente desligar o sistema operacional para poder conceder acesso em nível de bloco a um computador - um procedimento complicado e que impediria a execução de aplicativos ou o uso do dispositivo enquanto ele estiver conectado. É de responsabilidade do computador garantir que os dados tenham sido completamente transferidos; portanto, é necessário informar ao computador que você terminou a ejeção.

MTP (Media Transfer Protocol) , que é o que a maioria dos dispositivos inteligentes usa, envolve o nível de arquivoo acesso e o dispositivo, não o computador host, são responsáveis ​​pelo gerenciamento dos dados. Os smartphones usam o MTP porque precisam acessar os dados enquanto o dispositivo está conectado a um computador. O MTP também permite que o dispositivo controle ou limite quais dados podem ser transferidos; alguns players de mídia / MP3 digitais (principalmente antigos) usam o MTP para impor proteção de cópia (DRM) nos arquivos transferidos ou para garantir que os arquivos de mídia transferidos sejam compatíveis com o dispositivo. Como o MTP simplesmente apresenta uma estrutura hierárquica de arquivos / pastas, o computador não precisa se preocupar com o sistema de arquivos ou com a maneira como o dispositivo armazena dados. De qualquer forma, com o MTP, não há necessidade de um comando de ejeção explícito; depois que o dispositivo informar ao sistema que a transferência foi concluída (a caixa de diálogo de andamento foi fechada), você poderá remover o dispositivo sem ejetar explicitamente.

MTP é um superconjunto do Picture Transfer Protocol (PTP) , originalmente projetado para câmeras que se comunicam com computadores. Muitas câmeras ainda usam PTP, mas algumas suportam MSC e outras permitem uma escolha entre MSC e PTP. Além disso, algumas câmeras suportam impressão direta através de um protocolo conhecido como PictBridge , que requer PTP. Como no MTP, o PTP não requer um comando de ejeção. Se uma câmera pode usar MSC, PTP ou ambas depende de como a câmera lida com seu armazenamento enquanto estiver conectada a um computador.

Observe que, se você remover o cartão de memória de uma câmera e inseri-lo em um slot para cartão SD ou outro leitor de mídia no seu computador, será um dispositivo MSC e será necessário ejetar quando terminar de transferir as fotos.

bwDraco
fonte
7
E não deixe ninguém lhe dizer que isso não importa; Eu avisei meu ex por semanas para parar de puxar suas chaves USB. Ainda não parar de fazer isso mesmo depois de perder dois dias de trabalho em uma planilha, como resultado (também de backup Gees!)
Leveza raças com Monica
11
@LightnessRacesinOrbit em seguida, certifique-se que a remoção rápida é habilitado para ela - que vai abrandar a unidade, mas fazer com que ela não tem para ejetar o stick USB
Baldrickk
3
@Baldrickk Oh, ela já se foi ^ _ ^
Lightness Races with Monica
6

O design também está relacionado à forma como os dispositivos são alimentados.

Onde os dois dispositivos têm sua própria fonte de energia, por exemplo, o computador e o smartphone, há espaço suficiente para implementar o manuseio adequado das interrupções de transferência ou qualquer outra falha. O projeto depende da energia disponível continuamente e esse é um fator estável que permite tornar o outro fator (comunicação) tolerante a falhas. Sem ele, em casos excepcionais, por exemplo, se a bateria for subitamente removida do smartphone ou o PC for desligado à força, esses dispositivos e seus sistemas não são mais resistentes a erros do que as unidades USB estúpidas. ( chkdskalguém?) Esses dispositivos tolerantes a falhas contam apenas com tempo suficiente para resolver normalmente os problemas esperados.

Mas os dispositivos alimentados pelo host têm pouco ou nenhum tempo para qualquer reação à desconexão de sua energia. E hospedar um sistema de arquivos nesse dispositivo significa não apenas atender a solicitações do usuário, mas também disponibilidade para leituras e gravações em segundo plano feitas por processos em segundo plano do host desconhecidos para o usuário. O usuário nunca sabe se a comunicação está acontecendo no momento. Portanto, deve haver uma maneira explícita de sinalizar a intenção de desligar (e é esse comando Ejetar) sobre o qual o host deve interromper qualquer operação. A desconexão repentina de energia é aguardada sem riscos. Portanto, o evento "Ejetar" é uma maneira simples de iniciar a finalização adequada enquanto ainda podemos confiar na operação contínua. E a substância agora não é diferente do caso acima: o poder é concedidodurante todas as ações necessárias. Quando concluído, o host sinaliza de volta (porque é o usuário quem controla fisicamente a interrupção de energia) que agora é seguro interromper repentinamente a energia do dispositivo sem o risco.

Portanto, vemos que um dos fatores mais importantes na condução do projeto é se o dispositivo é capaz de funcionar autonomamente para ter tempo para lidar com falhas ou não. Caso contrário, a finalização explícita prévia deve ser solicitada - pelo comando Ejetar.

miroxlav
fonte