Respostas:
Não. Nem precisam ser; eject
é usado para abrir unidades ópticas, nas quais não é possível puxar a mídia diretamente.
A desmontagem é suficiente para USB / eSATA / etc. dispositivos de armazenamento.
sync
antes de arrancá-lo fora
eject
, o driver de dispositivo USB subjacente ainda pode (tentar) escrever APÓS o umount
retorno. Isso pode ser visto claramente se a unidade tiver um LED de status. Puxar o pendrive logo após o umount
término é RECEITA DE DESASTRE.
Sim. Por exemplo:
sudo eject /dev/sda
Outras respostas aqui que indicam que você precisa de hardware de ejeção mecânica estão incorretas.
Desmontar não é a mesma coisa que ejetar.
sudo
para concluir este comando (tudo o que faria era desmontar a unidade antes de dizer que não era possível abrir o arquivo). Fora isso, resposta útil.
eject
funcionará, mas realmente não "terminará o trabalho" em relação às unidades rotativas USB .
A melhor maneira de desconectar um disco rígido externo USB, após a desmontagem adequada , é:
udisks --detach /dev/sdb
Isso geralmente faz com que a unidade gire para baixo normalmente.
Precisamente, a implementação atual :
Esse processo está próximo ao procedimento manual sugerido aqui . A resposta inicial foi no askubuntu .
EDIT: Além disso, como aponta g.rocket , este comando pode ser equivalente:
udisksctl power-off -b /dev/sdb
udisksctl
que não tem --detach
otion está disponível. O que fazer neste caso? obrigado.
udisks
.
udisks
? Não está no meu sistema. Eu encontrei o pacote udisks2
, mas que não fez udisks
ou udisks2
disponível.
udisksctl power-off -b /dev/sdwhatever
parece fazer a mesma coisa.
Etapas manuais para desmontar o disco / dev / sdb (requer sudo):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
Isso desligará completamente o dispositivo e o desconectará do sistema. Ele não será detectado novamente até que seja desconectado e reconectado.
hdparm -Y
também é útil para unidades SATA / IDE.
Se você ler atentamente a página do manual ejetar (1) , poderá ver que existem 4 métodos de ejeção:
-r This option specifies that the drive should be ejected using a CDROM
eject command.
-s This option specifies that the drive should be ejected using SCSI
commands.
-f This option specifies that the drive should be ejected using a remov‐
able floppy disk eject command.
-q This option specifies that the drive should be ejected using a tape
drive offline command.
Quando você chama ejetar no HDD / SCSI, emite um ioctl(fd, SG_IO, (void *)&io_hdr);
comando (copiar das eject.c
fontes).
Isso é equivalente à remoção segura do dispositivo no MS Windows ou no MaxOSX.
Para alguns dispositivos, isso tem uma média especial. Por exemplo, o Kindle 3 após o comando de ejeção ter sido movido para o modo de carregamento e permitir a navegação no dispositivo, enquanto antes da tela ser bloqueada.
Outros utilitários fazem a mesma coisa, assim
scsi-spin --force --down /dev/sda
"Ejetar" não tem significado para hardware sem uma bandeja ou outro mecanismo de carregamento (presumo que ele também funcione com unidades de fita).
No entanto, o teste com uma unidade flash USB externa informa que eject
funciona da mesma maneira umount
- com o efeito colateral de fazer os nós do dispositivo desaparecerem, por exemplo,
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
Note que /dev/sdc1
desapareceu.
mt rewoffl
é mais conveniente porque também rebobina), mas faz o trabalho com drives de disquetes motorizados, como os encontrados em Macs antigos e estações de trabalho Sun.
udisks --detach /dev/sdX
onde (X) é a última letra do seu dispositivo USB. Funciona bem em qualquer sistema Linux.
OK, vou tentar explicar isso melhor:
O comando udisks remove e desliga completamente qualquer dispositivo USB montado ou conectado ao comando system unmount, basta desmontar a partição, ou seja: dev / sdb1 ou qualquer outra coisa, mas o usb ainda está presente no sistema.
Portanto, não é o mesmo desmontar, ejetar e desanexar
udisks = desligar o usb
umount = apenas desmonte a partição e não o pendrive inteiro
ejetar = o mesmo ou muito próximo do comando umount
eject /dev/sdX
issg_start -s /dev/sdX
(dosg3_utils
pacote), ambos usam comandos SCSI para enviar para o dispositivo.