Se as unidades montadas (usb) estão aparecendo no iniciador Unity ou não, não tem nada a ver com fstab.
Execute o seguinte comando para redefinir a lista negra e mostrar novamente todos os dispositivos montados no inicializador:
gsettings set com.canonical.Unity.Devices blacklist "[]"
Explicação
Quando você desbloqueia volumes montados a partir do lançador, você os adiciona a uma lista negra ( com.canonical.Unity.Devices
), que os impede de aparecer no lançador. Eles serão montados, no entanto.
Você pode ver quais dispositivos estão atualmente na lista negra executando o comando:
gsettings get com.canonical.Unity.Devices blacklist
Forçar temporariamente a lista negra
Para remover automaticamente os dispositivos na lista negra da lista negra, depois de desmontados, você pode executar um pequeno script em segundo plano. Ele observa mudanças na lista de volumes montados. Se um dispositivo for desconectado, o script removerá sua (possível) menção na lista negra.
O dispositivo aparecerá novamente no lançador na próxima vez que for conectado.
Como usar
- Copie o script abaixo em um arquivo vazio (use, por exemplo,
gedit
). - Salve o arquivo em algum lugar como
rm_blacklist.py
. -
Para um início limpo, redefina a lista negra com o comando:
gsettings set com.canonical.Unity.Devices blacklist "[]"
-
Teste - conduza o script abrindo uma janela de terminal e execute o comando:
python3 /path/to/rm_blacklist.py
Mantendo a janela do terminal aberta (executando o script):
- Insira um pen drive. Aguarde alguns segundos até que ele seja montado e, em seguida, desbloqueie-o no iniciador
- Desconecte o pen drive.
- Insira novamente após alguns segundos; agora deve reaparecer no lançador.
Se tudo funcionar como você deseja, adicione-o aos seus aplicativos de inicialização:
Dash > "Aplicativos de inicialização" > Adicionar. Adicione o comando:
python3 /path/to/rm_blacklist.py
O script
#!/usr/bin/env python3
import subprocess
import time
def get_info(cmd):
return subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
def get_mountedlist():
devices = get_info("lsblk").splitlines()
return [l.split("/")[-1].strip() for l in devices if "/" in l and not l.endswith("/")]
def get_blacklist():
try:
return eval(get_info("gsettings get com.canonical.Unity.Devices blacklist"))
except SyntaxError:
return []
while True:
curr_blacklist = get_blacklist()
mounted_blacklisted = sum([[it for it in curr_blacklist if m in it] for m in get_mountedlist() ], [])
if '-' in curr_blacklist:
mounted_blacklisted = mounted_blacklisted+['-']
if not curr_blacklist == mounted_blacklisted:
cmd = "gsettings set com.canonical.Unity.Devices blacklist "+'"'+str(mounted_blacklisted)+'"'
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(3)