Montagem CLI vs. GUI

21

No Ubuntu 12.10, quando quero montar um disco rígido, posso apenas clicar na unidade desmontada e tudo funciona bem (montando em /media/username/partitionlabel).

Basicamente, eu gostaria de fazer exatamente isso via linha de comando (para um script em que estou trabalhando).

Como eu não quero montar automaticamente na inicialização, o fstab está fora de questão (certo?).

Quando uso o mount na CLI, preciso especificar um ponto de montagem (que precisa ter um ponto de montagem criado anteriormente; também preciso cuidar das permissões e outros enfeites) - o que não entendo é onde a GUI leva tudo suas informações de? O ponto de montagem parece depender do rótulo da partição, mas esse diretório não existe antes da montagem. Além disso, a maneira da GUI não parece se importar muito com o fato de um usuário não ser root.

Existe uma maneira "fácil" de montar via CLI, exatamente como na GUI, clicando em uma unidade desmontada?

NicApicella
fonte

Respostas:

16

O Nautilus e outros gerenciadores de arquivos que montam unidades (por exemplo, a GUI ) usam o udiskscomando

Isso fornece uma montagem dinâmica , onde o ponto de montagem é criado para a unidade on-the-fly e, quando a unidade é desmontada, o ponto de montagem desaparece.

Consulte man 1 udiskspara obter detalhes sobre como usar este comando (manualmente ou chamado de um script / aplicativo). Para saber mais sobre como udisksfunciona, consulte man 7 udisks.

Para montar um dispositivo udisks, você deve especificar um nome de dispositivo válido para o dispositivo. A especificação do nome do volume do dispositivo não funcionará. Então, você pode usar udisksassim:

udisks --mount /dev/sdb1

Ao usar manualmente a udiskspartir da linha de comando, é melhor você simplesmente conectar um dispositivo e, em seguida, executar dmesg | taillogo em seguida (consulte man dmesge man tail) para descobrir o nome do dispositivo recém-conectado.

udisksEntretanto, essa pode não ser a melhor maneira de escrever um script que monta dispositivos . Não sei exatamente como você deve fazê-lo, e seria difícil saber, pois você não nos disse exatamente o que deseja que esse script faça e quando deseja montar dispositivos.

Eliah Kagan
fonte
Muito obrigado - udisksé exatamente o que eu estava procurando! Por qualquer motivo, eu estou recebendo "Mount falhou: não é de bom gosto" ao executá-lo via ssh; se não estou apostando na minha sorte, os ponteiros serão apreciados sobre como corrigi-lo. ^^
NicApicella
2
@NicolaApicella Como você está executando isso? Você receberá uma mensagem não autorizada se tentar executá-la em uma sessão remota (incluindo SSH) ou em um crontab; por padrão, os usuários não raiz podem montar volumes apenas com udiskslogons interativos locais. (Eles ainda podem executar um script a partir de um login interativo local que utiliza udisks, no entanto.)
Elias Kagan
Sim, desculpe, apenas notei (e editei) meu comentário anterior: De fato, estou executando o ssh. (E atualmente pesquisando uma correção.)
NicApicella
6

Como eu não quero montar automaticamente na inicialização, o fstab está fora de questão (certo?).

Não. noautopalavra-chave faz com que pule a montagem no momento da inicialização.

Existe uma maneira "fácil" de montar via CLI, exatamente como na GUI, clicando em uma unidade desmontada?

O mais fácil seria adicioná-lo /etc/fstabcom noautoe usar ...

mount /dir

Isso terá uma sonda de montagem para um ponto de montagem e, se não for encontrado, para um dispositivo no /etc/fstab. /dirprecisa existir embora.

Se um dispositivo ou UUID for fornecido, /etc/fstabnão será analisado. Igual a ...

mount /dev/sda1 /media/directory

Ou use udisks (deixarei Eliah cuidar disso> :-))


mount geralmente é apenas superusuário.

Opções de exemplo:

  • rw,noauto,user monta-o como leitura + gravação, mas não na inicialização e você pode fazê-lo como usuário.

  • Você também pode adicionar permissões para um usuário em /etc/fstabarquivos. Você pode usar umaskpara isso.

  • umask = 0444: todos lêem, não escrevem, não executam.

  • umask = 0333: todos lêem, executam.
  • umask = 0338: proprietário, grupo de leitura e execução; outros nada
Rinzwind
fonte
OK, provavelmente vou fazer isso, pois parece ser o "jeito de fazer" de qualquer maneira. :-) Então acho que terei que criar um diretório de ponto de montagem (com direitos corretos) de qualquer maneira. ;-)
NicApicella
@Rinzwind Um usuário não root poderá montar o dispositivo?
Eliah Kagan 21/03
1
@EliahKagan Sim, se você definir as opções apropriadas no fstab (uid, user, ...).
precisa saber é o seguinte
@NicolaApicella Espero que esta resposta seja expandida para incluir informações sobre isso. :)
Elias Kagan
@NicApicella ele gosta de mandar em mim: =)
Rinzwind
3

Em um dos comentários, você disse:

Por qualquer motivo, eu estou recebendo "Mount falhou: não é de bom gosto" ao executá-lo via ssh

Eu uso em pmountvez de udisks. Funciona sobre ssh.

Se bem me lembro, esta é a sintaxe / etc que eu uso com ela - a maioria das minhas está oculta por aliases neste momento:

pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb
Izkata
fonte
2

Usar

udisks --mount /dev/sdb1

(substitua /dev/sdb1pelo dispositivo que você deseja montar)

Florian Diesch
fonte