Questão Como acessar uma unidade flash USB a partir do terminal?


Eu só tenho acesso à linha de comando.
Eu preciso fazer backup de meus dados (na pasta do usuário) para uma caneta (USB DOK).

  • Como posso montar uma unidade flash manualmente?
  • Qual deve ser o comando de cópia?

212
2018-04-29 00:26


origem




Respostas:


1. Encontre o que a unidade é chamada

Você precisa saber o que a unidade é chamada para montá-lo. Para fazer isso, dispare um dos seguintes (classificados na ordem de minha preferência):

lsblk
sudo blkid
sudo fdisk -l

Você está procurando por uma partição que deve ser algo como: /dev/sdb1. Quanto mais discos você tiver, maior será a letra que provavelmente será. Enfim, encontre e lembre o que é chamado.

2. Crie um ponto de montagem (opcional)

Isso precisa ser montado no sistema de arquivos algum lugar. Você geralmente pode usar / mnt / se estiver sendo preguiçoso e nada mais estiver montado lá, senão você desejará criar um novo diretório:

sudo  mkdir /media/usb

3. Monte!

sudo mount /dev/sdb1 /media/usb

Quando estiver pronto, basta disparar:

sudo umount /media/usb

Esta resposta tem quase 6 anos e enquanto o núcleo ainda funciona, coisas como fdisk -l não são as opções mais fáceis de usar. Há também novos mecanismos em pilhas mais altas para a montagem de dispositivos de maneira sã e padrão, que nem sempre estão disponíveis.

Então eu adicionei um pouco de polonês das outras respostas. Enquanto você está lendo esta nota de rodapé e você está fazendo isso em um sistema de desktop, definitivamente há argumentos para usando udisksctl, por resposta de wecac. Isso é montado da mesma maneira que a área de trabalho - criando o seu próprio /media/$USER/device directory - mas eu acho que ainda existem argumentos para um ponto de montagem estático, especialmente quando você não quer que o caminho mude.

O Udisks também depende do D-Bus, então pode não estar disponível em todos os lugares.


298
2018-04-29 00:43



A principal desvantagem deste método é que ele monta o dispositivo como root. se o dispositivo for formatado em FAT, o usuário não poderá gravar nele. o ponto de montagem / media / $ USER / device será sempre o mesmo - eMBee


Instalar pmount. Monta discos em / media /

pmount /dev/sdb1
pumount /dev/sdb1

Nenhum sudo necessário. Substitua "sdb1" pelo seu caminho de dispositivo específico. Para mais informações, consulte a página do manual:

pmount  ("policy mount") is a wrapper around the standard mount program
which permits normal users to mount removable devices without a  match-
ing /etc/fstab entry.

pmount is invoked like this:

pmount device [ label ]

This  will  mount  device  to a directory below /media if policy is met
(see below). If label is given, the mount point will  be  /media/label,
otherwise it will be /media/device.

40
2017-11-06 01:39



Isso funcionou quando mount insistiu em montar minha unidade de leitura apenas. - Jonathan Landrum


Além de usar o padrão mount comando (que requer raiz) você pode montar unidades usando udisks e dbus com o seu usuário padrão.

Para fazer isso, é útil (mas não obrigatório) saber algumas coisas sobre a unidade primeiro:

  1. Qual dispositivo é (ou seja, /dev/sdb1)
  2. qual sistema de arquivos ele usa.

Sabendo estes você pode usar um comando simples para montar uma movimentação da linha de comando.

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemMount "<filesystem>" []

essa chamada deve ecoar o caminho em que está montada se a montagem for bem-sucedida.

Para desmontar unidades montadas desta maneira, você pode executar:

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount []

N.B. a <device> é simplesmente o fim do caminho para isso. Então, por exemplo, se o que você quer montar está em /dev/sdb2 então você colocaria sdb2 no lugar de <device>.


Se você não souber qual dispositivo é ou qual sistema de arquivos ele usa, não tema. Você pode imprimir facilmente todas essas informações com este pequeno comando:

gdbus introspect --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices --recurse --only-properties | grep -E "(readonly .+ (IdLabel|IdType|Device(IsMounted|IsDrive|File) ).*|\}|.*\{)"

Isto irá imprimir algo como isto:

node /org/freedesktop/UDisks/devices {
  node /org/freedesktop/UDisks/devices/sda {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = '';
        readonly s IdUsage = '';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sda';
    };
  };
  node /org/freedesktop/UDisks/devices/sda1 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = 'SYSTEM';
        readonly s IdType = 'ntfs';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sda1';
    };
  };
  node /org/freedesktop/UDisks/devices/sda2 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = 'Windows7';
        readonly s IdType = 'ntfs';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = true;
        readonly s DeviceFile = '/dev/sda2';
    };
  };
  node /org/freedesktop/UDisks/devices/sda3 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = 'Recovery';
        readonly s IdType = 'ntfs';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sda3';
    };
  };
  node /org/freedesktop/UDisks/devices/sda4 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = '';
        readonly s IdUsage = '';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sda4';
    };
  };
  node /org/freedesktop/UDisks/devices/sda5 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = 'ext4';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = true;
        readonly s DeviceFile = '/dev/sda5';
    };
  };
  node /org/freedesktop/UDisks/devices/sda6 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = 'swap';
        readonly s IdUsage = 'other';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sda6';
    };
  };
  node /org/freedesktop/UDisks/devices/sda7 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = 'ext4';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = true;
        readonly s DeviceFile = '/dev/sda7';
    };
  };
  node /org/freedesktop/UDisks/devices/sdb {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = '';
        readonly s IdUsage = '';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sdb';
    };
  };
  node /org/freedesktop/UDisks/devices/sdb1 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = 'USB DRIVE';
        readonly s IdType = 'vfat';
        readonly s IdUsage = 'filesystem';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sdb1';
    };
  };
  node /org/freedesktop/UDisks/devices/sr0 {
    interface org.freedesktop.UDisks.Device {
        readonly s IdLabel = '';
        readonly s IdType = '';
        readonly s IdUsage = '';
        readonly b DeviceIsMounted = false;
        readonly s DeviceFile = '/dev/sr0';
    };
  };
};

Aqueles que têm IdUsage = 'filesystem' pode ser montado usando o comando acima.

Isso significa que, por exemplo, se eu quisesse montar o dispositivo 'USB DRIVE', eu executaria o comando

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/sdb1 --method org.freedesktop.UDisks.Device.FilesystemMount "vfat" []

Todos esses comandos funcionam usando o dbus sistema de mensagens, da mesma forma que Nautilus e outros gerenciadores de arquivos montam automaticamente as coisas. Nestes comandos estamos enviando vários objetos (ou seja, /org/freedesktop/... mensagens pedindo-lhes para montar e desmontar certos dispositivos. Eles podem ou não fazer isso dependendo das permissões que foram dadas PolicyKit.

Usando comandos semelhantes pode-se controlar quase todos os aspectos da experiência no Ubuntu e simular a maioria dos programas e funções do sistema (por exemplo, desligamento, alteração de volume, etc.).


11
2017-08-29 15:42



O caminho de 2015 é gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties - Nick Alexander


Usar udisksctl from package =udisks2 (no Ubuntu e no Debian). O procedimento é:

  1. Encontre o ID do dispositivo de bloco que você deseja montar, usando lsblk:

    user@machine:~$ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   1.8T  0 disk
    ├─sda1   8:1    0  19.1M  0 part /boot/efi
    ├─sda2   8:2    0   1.8T  0 part
    └─sda3   8:3    0    16G  0 part [SWAP]
    sdb      8:16   0 931.5G  0 disk
    ├─sdb1   8:17   0    37M  0 part
    ├─sdb2   8:18   0  15.9G  0 part [SWAP]
    └─sdb3   8:19   0 915.7G  0 part /
    sdc      8:32   1  14.4G  0 disk
    └─sdc1   8:33   1  14.4G  0 part
    sdd      8:48   0   1.8T  0 disk
    └─sdd1   8:49   0   1.8T  0 part
    

    Do seu tamanho, /dev/sdc1 parece ser o drive USB que eu quero montar.

  2. Usar udisksctl para montar o dispositivo. Observe que -b == --block-device (para reduzir a digitação), mas prefiro longas opções de documentação:

    user@machine:~$ udisksctl mount --block-device /dev/sdc1
    ==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount ===
    Authentication is required to mount Kingston DT microDuo 3C (/dev/sdc1)
    Multiple identities can be used for authentication:
     1.  XXXXX,,, (user)
     2.  ,,, (YYYYY)
    Choose identity to authenticate as (1-2): 1
    Password:
    ==== AUTHENTICATION COMPLETE ===
    Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
    

Dirigindo-se a Hans Deragon Comente abaixo: você também pode dizer udisksctl façam --no-user-interaction. Ele não tenta autenticar o usuário, que geralmente "apenas funciona":

user@machine:~$ udisksctl mount --block-device /dev/sdc1 --no-user-interaction
# possibly some complaining here about I/O charset or need to run `fsck`
Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.

10
2017-12-28 15:34





Isso é simples Quando eu quero usar um drive USB no terminal eu faço isso:

Crie uma pasta em /media com:

mkdir /media/mountDrive 

Esta pasta será usada para o ponto de montagem. Use este comando:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 é a primeira partição do meu USB. Então você pode navegar para a pasta que você já montou com

cd /media/mountDrive

Se você quiser listar os arquivos na unidade, você pode usar o ls comando.

Para desmontar a unidade, você pode usar

sudo umount /dev/sdd1

Note que no meu sistema o drive USB é /dev/sdd1, mas no seu sistema pode ser algo diferente. Para descobrir o que é usar o df comando para ver todos os discos conectados no momento.


2
2017-08-29 14:08





Você também pode montar automaticamente dispositivos USB no Ubuntu Server com a ajuda do USBmount.

Certifique-se de executar o apt-get update / upgrade antes de iniciar a instalação:

sudo apt-get update && sudo apt-get upgrade

Agora instale o USBmount dos repositórios:

sudo apt-get install usbmount

O USBmount monta todas as unidades USB em /media/usb* (usb0, usb1, usb2 ...)

Agora, conecte uma unidade USB e espere que ela seja detectada e montada. Contanto que o sistema operacional host suporte o sistema de arquivos, ele deve ser montado.

Para verificar se a unidade USB foi montada corretamente, você pode usar df -h para visualizar todas as unidades disponíveis e seus respectivos pontos de montagem

Para desmontar uma unidade, você pode usar umount.

sudo umount /media/usb0

2
2018-05-14 16:35