Há tempos tenho uma dúvida na cabeça:
Eu tenho um disco rígido externo, quando quero desmontá-lo simplesmente dou o ícone que diz: "Remover unidade com segurança" no Nautilus (use o Nautilus do Gnome 3.14 no Debian 8 ), mas na realidade qual é o processo por trás? É uma maneira de ver o que realmente acontece? Algum tipo de registro?
Imagino que o primeiro processo seja umount /wherever/its/mount
, mas notei que quando desmonto usando umount
o led do HD externo fica aceso (quando o SO Windows desliga o led), então: o umount
comando também deve cortar a alimentação da porta USB onde o disco rígido está conectado? Ou outro comando está fazendo isso?
Obrigado
umount
o comando em si não corta a energia da unidade, montar realmente significa vincular um sistema de arquivos na unidade a um diretório, portanto, desmontar apenas faz isso - desvincula uma montagem de um diretório específico; e no que diz respeito ao gerenciador de arquivos Nautilus, não é isso que ele usa sob o capô, na verdade ele usa objetos GMount da API Gio padrão para todos os tipos de desenvolvimento relacionados ao GNOME.Sem confundir muito, deixe-me explicar em termos de código-fonte e documentação. Uma breve pesquisa no código-fonte revela que no arquivo nautilus-file-operations.c , a
nautilus_file_operations_unmount_mount_full
função chamado_unmount
, que chamag_mount_eject_with_operation
function. Esse último pertence à parte GMount da API . A ejeção envolveria sincronizar os dados restantes que precisam ser gravados na montagem,unmounting
um volume ou unidade e, em seguida, desligá-los no caso de uma unidade USB ou disco óptico.Se você está esperando um comando shell que pode desligar uma unidade como no Nautilus, existe um via
udisks
ouudisksctl
, e se não me enganoudisksctl
vem com SOs que usamsystemd
(mas não me cite nesta última afirmação, isso é apenas uma opinião). Isso faz uso de UDisks2 , que na verdade é outra API para lidar com drives e volumes via interface D-Bus ; é realmente muito bom e eu usei para desenvolver meu próprio indicador no Ubuntu .Então TL;DR :
udisks
ouudisksctl
comando.Veja também:
No gnome, a melhor maneira de simular a ejeção de uma unidade MYUSB no nautilus é
Não requer privilégios de root.