端末からUSBフラッシュドライブにアクセスする方法は?


250

コマンドラインにのみアクセスできます。
(ユーザーフォルダの)データをペン(USB DOK)にバックアップする必要があります。

  • フラッシュドライブを手動でマウントするにはどうすればよいですか?
  • コピーコマンドはどうあるべきですか?

回答:


348

1.ドライブの名前を見つける

マウントするには、ドライブの名前を知る必要があります。それを行うには、次のいずれかを実行します(私の好みの順):

lsblk
sudo blkid
sudo fdisk -l

次のようなパーティションを探しています/dev/sdb1。ディスクの数が多いほど、文字が高くなります。とにかく、それを見つけて、それが何と呼ばれているか覚えておいてください。

2.マウントポイントを作成します(オプション)

これはどこかファイルシステムにマウントする必要があります。怠け者で、他に何もマウントされていない場合は通常/ mnt /を使用できますが、そうでない場合は新しいディレクトリを作成する必要があります。

sudo  mkdir /media/usb

3.マウント!

sudo mount /dev/sdb1 /media/usb

完了したら、起動します。

sudo umount /media/usb

この答えはほぼ6年前のものであり、その核心はまだ機能しfdisk -lていますが、最も使いやすいオプションではありません。また、デバイスを正常かつ標準的な方法でマウントするためのより高いスタックの新しいメカニズムがありますが、これは常に利用できるとは限りません。

だから私は他の答えからいくつかの洗練を追加しました。この脚注を読んでいて、デスクトップシステムでこれを実行している間、wecacの答えごとに使用udisksctlするための議論が間違いなくあります。これはデスクトップと同じ方法でマウントされます(独自の/media/$USER/deviceディレクトリを作成します)が、特にパスを変更したくない場合は、静的なマウントポイントの引数がまだあると思います。

UdisksもD-Busに依存しているため、どこでも利用できない場合があります。


この方法の主な欠点は、デバイスをルートとしてマウントすることです。デバイスがFAT形式である場合、ユーザーはデバイスに書き込むことができません。/ media / $ USER / deviceマウントポイントも常に同じになります
-eMBee

45

インストールしますpmount。/ media /にディスクをマウントします

pmount /dev/sdb1
pumount /dev/sdb1

sudoは必要ありません。「sdb1」を特定のデバイスパスに置き換えます。詳細については、マンページを参照してください。

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.

これはmount、ドライブを読み取り専用でマウントすることを要求したときに機能しました。
ジョナサンランドラム

12

mount(rootを必要とする)標準コマンドを使用することに加えて、標準ユーザーを使用udisksdbusてドライブをマウントできます。

これを行うには、最初にドライブに関するいくつかのことを知っておくと便利です(必須ではありません)。

  1. どのデバイスか(例/dev/sdb1
  2. 使用するファイルシステム。

これらを知っていれば、簡単なコマンドを使用して、コマンドラインからドライブをマウントできます。

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

この呼び出しは、マウントが成功した場合、マウントされたパスをエコーする必要があります。

この方法でマウントされたドライブをアンマウントするには、次を実行できます。

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

NBは、<device>単にそれへのパスの終わりです。したがって、たとえば、マウントしたい場所にある/dev/sdb2場合はsdb2、の代わりに配置し<device>ます。


どのデバイスであるか、またはどのファイルシステムを使用しているのかわからない場合でも心配しないでください。この小さなコマンドを使用すると、すべての情報を簡単に印刷できます。

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) ).*|\}|.*\{)"

これにより、次のようなものが出力されます。

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';
    };
  };
};

持っているものはIdUsage = 'filesystem'、上記のコマンドを使用してマウントできます。

これは、たとえば、デバイス「USB DRIVE」をマウントする場合、コマンドを実行することを意味します

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

これらのコマンドはすべて、dbusメッセージングシステムを使用して機能します。これはNautilus、他のファイルマネージャーが自動的にマウントする方法と同じです。これらのコマンドでは、さまざまなオブジェクトを送信しています(つまり/org/freedesktop/...、特定のデバイスをマウントおよびアンマウントするように要求するメッセージPolicyKitです。

同様のコマンドを使用して、Ubuntuでの経験のほぼすべての側面を制御し、ほとんどのシステムプログラムと機能(シャットダウン、ボリューム変更など)をシミュレートできます。


1
2015年の方法はgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
ニックアレクサンダー

12

udisksctlfrom package =を使用しますudisks2(UbuntuとDebianの両方で)。手順は次のとおりです。

  1. を使用して、マウントするブロックデバイスのIDを検索します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
    

    そのサイズから、/dev/sdc1私がマウントしたいUSBドライブのようです。

  2. udisksctlデバイスのマウントに使用します。-b== --block-device(入力を減らすため)ですが、ドキュメントには長いオプションが好ましいことに注意してください。

    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.
    

以下のハンス・デラゴンのコメントへの対応:あなたもそうすることができudisksctlます--no-user-interaction。ユーザーを認証しようとはしませんが、通常は「正常に動作します」。

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.

--object-pathそれは何を求めているのですか?
CMCDragonkai

5

USBmountを使用して、UbuntuサーバーにUSBデバイスを自動的にマウントすることもできます。

インストールを開始する前に、apt-get update / upgradeを必ず実行してください。

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

次に、リポジトリからUSBmountをインストールします。

sudo apt-get install usbmount

USBmountはすべてのUSBドライブをマウントします/media/usb*(usb0、usb1、usb2 ...)

次に、USBドライブを接続し、検出されてマウントされるのを待ちます。ホストOSがファイルシステムをサポートしている限り、マウントする必要があります。

USBドライブが正しくマウントされたかどうかを確認するには、使用df -h可能なすべてのドライブとそれぞれのマウントポイントを表示するために使用できます

ドライブのマウントを解除するには、umountを使用できます。

sudo umount /media/usb0

3

簡単です。ターミナルでUSBドライブを使用したい場合、これを行います:

でフォルダーを作成します/media

mkdir /media/mountDrive 

このフォルダーは、マウントポイントに使用されます。次のコマンドを使用します。

sudo mount /dev/sdd1 /media/mountDrive 

sdd1USBの最初のパーティションです。次に、既にマウントしたフォルダーに移動できます

cd /media/mountDrive

ドライブ内のファイルを一覧表示する場合は、lsコマンドを使用できます。

ドライブをアンマウントするには、使用できます

sudo umount /dev/sdd1

私のシステムではusbドライブが/dev/sdd1であることに注意してください。しかし、あなたのシステムでは何か違うかもしれません。dfコマンドを使用して、現在接続されているすべてのディスクを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.