Monte em qualquer lugar e me fale sobre isso

0

Eu quero escrever um script que faça o seguinte:

  • Montar um dispositivo (sempre o mesmo)
  • Dê uma olhada em um arquivo no dispositivo e diga algo sobre ele
  • Desmonte o dispositivo novamente.

Isso é bastante fácil, mas temo pelo ponto de montagem: E se alguém (eu?) já tiver montado algo nesse ponto ou deixado arquivos nele?

Seria possível dizer ao script algo como o seguinte pseudo-código:

$whereToGo = mount /dev/device --justMountItSomewhereWhereItIsPossibleAndTellMeWhereThatIs
// Do something with $whereToGo/myFile
umount $whereToGo
    
por Bowi 07.09.2018 / 10:31

1 resposta

1

O utilitário de disco Gnome usa o udisks2, parece que o udisksctl é sua ferramenta de linha de comando, ele pode fazer coisas como:

status
    Shows high-level information about disk drives and block devices.

info
    Shows detailed information about OBJECT or DEVICE.

mount
    Mounts a device. The device will be mounted in a subdirectory in the /media
    hierarchy - upon successful completion, the mount point will be printed to
    standard output.

    The device will be mounted with a safe set of default options. You can
    influence the options passed to the mount(8) command with --options.
    Note that only safe options are allowed - requests with inherently unsafe
    options such as suid or dev that would allow the caller to gain additional
    privileges, are rejected.

unmount
    Unmounts a device. This only works if the device is mounted. The option
    --force can be used to request that the device is unmounted even if active
    references exists.

Se o ponto de montagem já existir, o udksks2 criará & use um novo ponto de montagem (provavelmente anexando 1 ).

Então você deve ser capaz de escrever um script como este (usando / dev / loop5 como exemplo):

$ udisksctl mount --block-device /dev/loop5
Mounted /dev/loop5 at /media/demo/675584e8-d292-4c69-96d6-0fdb720bdf93.

# parse stdout for the mount point, do something with it

$ udisksctl unmount --block-device /dev/loop5
Unmounted /dev/loop5.

(Poderia até mesmo montar somente leitura adicionando --options ro a udisksctl mount )

Informações do archwiki em Udisks - Mount Helpers do Arch

Mount helpers

The automatic mounting of devices is easily achieved with udisks wrappers. See also List of applications#Mount tools.

Note: Desktop environments, such as GNOME and KDE may also provide a udisk wrapper.

     
  • bashmount - Um script básico para montar e gerenciar mídias removíveis como um usuário comum com o udisks2. link
  •   
  • udisks - automontador udisks2 com notificações opcionais, ícone de bandeja e suporte para dispositivos LUKS protegidos por senha . Veja o wiki udiskie para detalhes sobre link
  •   
  • udisksvm - wrapper GUI udisks2 escrito em Python3 e usando a estrutura do Qt5. Ele usa cliques do mouse para montar, desmontar dispositivos removíveis ou ejetar um CD / DVD. Consulte o arquivo README para obter detalhes. link
  •   
  • udevil - Inclui o devmon, que é compatível com os udisks e udisks2.    link
  •   
    
por 08.09.2018 / 12:15