USB storage devices (日本語) - ArchWiki

# USB storage devices (日本語)

関連記事

- マウント

この文章では Linux で一般的な USB メモリーを使用する方法を説明します。また、デジタルカメラなど他のデバイスも USB ストレージデバイスとして使える場合があります。

標準の Arch カーネルと最近のデスクトップ環境を使っている場合、最新の環境なら、デバイスはデスクトップに表示され、コンソールを開く必要はありません。

## udisks による自動マウント

これは一番簡単でよく使われている方法です。多数のデスクトップ環境によって用いられいますが、単独で使用することも可能です。詳しくは Udisks を見て下さい。

## 手動マウント

Note: Arch Linux が USB デバイスをマウントしてないと決めつける前に、全てのポートを確認しましょう。ポートによってはコントローラを共有してないことがあり、それによってデバイスがマウントできなくなっている可能性があります。

### usb_storage をサポートするカーネルを取得

カスタムカーネルを使っていない場合、問題はありません。全ての Arch Linux 標準カーネルはちゃんと設定されています。カスタムカーネルを使っている場合 SCSI-Support, SCSI-Disk-Support, usb_storage を有効にしてカーネルをコンパイルするようにしてください。最新の udev を使っていれば、デバイスを接続するだけでシステムは自動的に必要なカーネルモジュールを全てロードします。古いリリースの udev では hotplug もインストールする必要があります。もしくは、手動で同じことを行うこともできます:

    # modprobe usb_storage
    # modprobe sd_mod      (only for non SCSI kernels)

Tip: 手動でモジュールをロードする場合、`sg` モジュール (SCSI generic driver) もロードする必要があるかもしれません。

### デバイスの確認

ストレージデバイスにアクセスするのにまず必要なのはカーネルによって割り振られたデバイスの識別子です。詳しくは fstab#ファイルシステムの識別 を参照。

Tip: どれが USB デバイスか確認するには、USB デバイスを接続したときに接続してないときの `lsblk -f` の出力を比較してください。

### USB メモリーのマウント

デバイスをマウントするディレクトリを作成する必要があります:

    # mkdir /mnt/usbstick

#### root を使用

次のコマンドで root でデバイスをマウント (device_node は確認したパスに置き換えてください):

    # mount device_node /mnt/usbstick

または:

    # mount -U UUID /mnt/usbstick

`mount` がデバイスのフォーマットを認識できないときは `-t` 引数を使うことができます。詳しくは `man mount` を参照。

Note: メモリーのマウントが出来ない場合、パーティションしなおすこともできます。ファイルシステム#デバイスのフォーマットを参照。

#### 通常ユーザーで mount を使用

root 以外のユーザーで USB メモリーに書き込みを行えるようにするには、次のコマンドを実行:

    # mount -o gid=users,fmask=113,dmask=002 /dev/sda1 /mnt/usbstick

#### 通常ユーザーで fstab を使用

root 以外のユーザーで fstab を使って USB メモリーをマウントできるようにするには、次の行を `/etc/fstab` ファイルに追加:

    /dev/sdXY /mnt/usbstick vfat user,noauto,noatime,flush 0 0

または:

    UUID=E8F1-5438 /mnt/usbstick vfat user,noauto,noatime,flush 0 0

fstab の user やその他のオプションの説明を見て下さい。

Note: `/dev/sdXY` は USB メモリーのパスに置き換えてください。USB メモリーのマウントを参照。

これで、どのユーザーでも次のコマンドでマウントできます:

    $ mount /mnt/usbstick

アンマウントするには:

    $ umount /mnt/usbstick

## udev や systemd/udev によってマウントされたデバイスをアンマウント

実行可能ファイルを作成してください (例: `/usr/local/bin/unmount.sh`):

    #!/bin/sh

    # Global variables
    TITLE="Unmount Utility"
    COLUMNS=3 # TARGET,SOURCE,FSTYPE
    #IFS=$'\n'

    # Populate list of unmountable devices
    deviceList=($(findmnt -Do TARGET,SOURCE,FSTYPE | grep -e "sd[b-z]"))
    deviceCount=$((${#deviceList[@]} / $COLUMNS))

    # Start of program output
    echo $TITLE

    # Display list of devices that can be unmounted
    for ((device=0; device<${#deviceList[@]}; device+=COLUMNS))
    do
      printf "%4s)   %-25s%-13s%-10s\n"\
        "$(($device / $COLUMNS))"\
        "${deviceList[$device]}"\
        "${deviceList[$(($device + 1))]}"\
        "${deviceList[$(($device + 2))]}"
    done

    printf "%4s)   Exit\n" "x"

    # Get input from user
    read -p "Choose a menu option: " input

    # Input validation
    if [ "$input" = "X" ] || [ "$input" = "x" ]
    then
      echo "Exiting"
      exit 0
    fi

    if (( $input>=0 )) && (( $input<$deviceCount ))
    then
      echo "Unmounting: ${deviceList[$(($input * $deviceCount))]}"
      sudo umount "${deviceList[$(($input * $deviceCount))]}"
      exit 0
    else
      echo "Invalid menu choice"
      exit 1
    fi

Note: このスクリプトを使うには sudo をインストールする必要があり、sudo 権限が必要です。
Category:

- Storage (日本語)