Não. Nem precisam ser; eject
é usado para abrir unidades ópticas, onde não é possível extrair a mídia diretamente.
A desmontagem é suficiente para USB / eSATA / etc. dispositivos de armazenamento.
Eu sei que o comando eject
pode ser usado para ejetar quase qualquer componente de hardware conectado, mas ele pode ser usado para ejetar drives USB?
É possível ejetar drives USB e HDDs externos com o comando eject
?
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 é o mesmo que ejetar.
eject
funcionará, mas não irá realmente "terminar o trabalho" em relação às unidades USB rotação .
A melhor maneira de desconectar um disco rígido externo USB, após a desmontagem correta , é:
udisks --detach /dev/sdb
Isso geralmente faz com que a unidade desacelere normalmente.
Precisamente, a implementação atual :
Este processo está próximo do procedimento manual sugerido aqui . A resposta inicial foi em askubuntu .
EDIT: Além disso, como g.rocket aponta, este comando pode ser equivalente:
udisksctl power-off -b /dev/sdb
Passos 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. Não será detectado novamente até que seja desconectado e reconectado.
Se você ler atentamente a página de 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 eject no HDD / SCSI, emite o comando ioctl(fd, SG_IO, (void *)&io_hdr);
(copie de eject.c
sources).
Isto é equivalente à remoção segura do dispositivo no MS Windows ou no MaxOSX.
Para alguns dispositivos, isso tem um significado especial. Por exemplo, o Kindle 3 após o comando eject ser movido para o modo de carregamento e permitir a navegação no dispositivo, enquanto a tela estava bloqueada.
Outros utilitários fazem a mesma coisa, assim
scsi-spin --force --down /dev/sda
"Ejetar" não tem significado para o hardware sem uma bandeja ou outro mecanismo de carregamento (suponho que também funcione com unidades de fita).
No entanto, o teste com uma unidade flash USB externa informa que eject
funciona muito como umount
- com o efeito colateral de fazer com que os nós do dispositivo desapareçam, por exemplo,
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
Observe que /dev/sdc1
desapareceu.
Na linha de comando osx, você deve usar diskutil onde LABEL é o rótulo do seu drive USB.
diskutil eject /Volumes/<LABEL>
udisks --detach /dev/sdX
em que (X) é a última letra do seu dispositivo usb.
Funciona bem em qualquer sistema linux.
OK, vou tentar explicar isso melhor:
O comandoudisks remove e desliga completamente qualquer dispositivo usb montado ou conectado ao sistema desmonte o comando apenas desmonte a partição ie: dev / sdb1 ou qualquer outra coisa, mas o usb ainda está presente no sistema.
Portanto, não é o mesmo desmontar, ejetar e separar
udisks = desligar o usb
umount = apenas desmonte a partição e não o pendrive inteiro
eject = o mesmo ou muito perto do comando umount