リムーバブルメディア

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Removable media and the translation is 100% complete.
Other languages:

リムーバブルメディア は単に、システムから容易に取り除くことができるメディアのことです。典型的には、CD、DVD、USB ドライブ、各フォームファクタのメモリカードがこれに該当します。

非特権ユーザが未知のデバイスをマウントしたい場合、こうした種類のメディアには特別な処理が必要です。

前提条件

  • カーネルが、ストレージデバイスに対応していること。
  • カーネルが、デバイスが使用する ファイルシステム に対応していること。

UUID とラベル

多くの場合、ストレージデバイスは /dev/sd* などの デバイスファイル によって区別されます。または、 UUID ( U niversally U nique Id entifier) ( /dev/disk/by-uuid/* ) または ラベル ( /dev/disk/by-label/* ) を使用することもできます。デバイスファイルとは違って UUID とラベルは永続的であり、非同期的な検出によって変わることはありません。UUID はファイルシステム作成時に自動的に生成されます。ラベルはファイルシステム作成時に指定するか、後で変更することができます。

すべてのストレージデバイスと、それらの UUID とラベルを表示するには、 tree /dev/disk/ または lsblk ( sys-apps/util-linux に含まれます) を使用してください:

user $ tree /dev/disk/
user $ lsblk -o +fstype,label,uuid,partuuid
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT FSTYPE   LABEL           UUID                                 PARTUUID
sda      8:0    0 111.8G  0 disk                                                                          
├─sda1   8:1    0    96M  0 part            ext2                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01
├─sda2   8:2    0     1K  0 part                                                                          xxxxxxxx-02
├─sda3   8:3    0   100M  0 part            ntfs     System Reserved XXXXXXXXXXXXXXXX                     xxxxxxxx-03
├─sda4   8:4    0  29.6G  0 part            ntfs                     XXXXXXXXXXXXXXXX                     xxxxxxxx-04
├─sda5   8:5    0   2.8G  0 part [SWAP]     swap                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05
└─sda6   8:6    0  79.2G  0 part /          ext4                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06
sr0     11:0    1  1024M  0 rom    

リムーバブルメディアをマウントする

root 特権を持たない通常ユーザとしてデバイスを マウント するためには、 /etc/fstab 内にそのデバイスに関するエントリが user オプション付きで存在している必要があります。

コンピュータにリムーバブルメディアを接続して、 tree /dev/disk/ または lsblk を実行してください。

user $ lsblk -o +fstype,label,uuid,partuuid
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT FSTYPE   LABEL           UUID                                 PARTUUID
sda      8:0    0 111.8G  0 disk                                                                          
├─sda1   8:1    0    96M  0 part            ext2                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01
├─sda2   8:2    0     1K  0 part                                                                          xxxxxxxx-02
├─sda3   8:3    0   100M  0 part            ntfs     System Reserved XXXXXXXXXXXXXXXX                     xxxxxxxx-03
├─sda4   8:4    0  29.6G  0 part            ntfs                     XXXXXXXXXXXXXXXX                     xxxxxxxx-04
├─sda5   8:5    0   2.8G  0 part [SWAP]     swap                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05
└─sda6   8:6    0  79.2G  0 part /          ext4                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06
sdb      8:16   1   3.8G  0 disk                                                                          
└─sdb1   8:17   1   3.8G  0 part            vfat                     QWER-1234                            
sdc      8:32   1   1.9G  0 disk                                                                          
└─sdc1   8:33   1   1.9G  0 part            vfat     QWERTZ12345     4321-REWQ                            qwer1234-01
sr0     11:0    1  1024M  0 rom    

sdb1 sdc1 の行は今接続した 2 つのメディアに対応し、 /etc/fstab に追加する UUID QWER-1234 4321-REWQ を表示しています。 sdc1 にはラベル QWERTZ12345 も付いていて、代わりにこれを使用することもできます。マウントポイント larry1 および larry2 を作成しましょう:

root # mkdir /mnt/{larry1,larry2}
root # chmod 777 /mnt/{larry1,larry2}

そして、 /etc/fstab にこれらを追加してください。

ファイル /etc/fstab
# <fs>            <mountpoint> <type> <opts>         <dump/pass>
...
UUID=QWER-1234    /mnt/larry1  vfat   noauto,rw,user     0 0
LABEL=QWERTZ12345 /mnt/larry2  vfat   noauto,rw,user     0 0

これらのエントリに user オプションを付けると、通常ユーザによってマウント/アンマウントできるようになります。

user $ mount /mnt/larry1
user $ mount /mnt/larry2

何がマウントされているか確認するには、 mount を引数無しで実行するか、 lsblk を再度実行して、 MOUNTPOINT 列に sdb1 および sdc1 が含まれている箇所を探してください:

user $ lsblk -o +fstype,label,uuid,partuuid
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  FSTYPE   LABEL           UUID                                 PARTUUID
sda      8:0    0 111.8G  0 disk                                                                          
├─sda1   8:1    0    96M  0 part             ext2                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01
├─sda2   8:2    0     1K  0 part                                                                           xxxxxxxx-02
├─sda3   8:3    0   100M  0 part             ntfs     System Reserved XXXXXXXXXXXXXXXX                     xxxxxxxx-03
├─sda4   8:4    0  29.6G  0 part             ntfs                     XXXXXXXXXXXXXXXX                     xxxxxxxx-04
├─sda5   8:5    0   2.8G  0 part [SWAP]      swap                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05
└─sda6   8:6    0  79.2G  0 part /           ext4                     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06
sdb      8:16   1   3.8G  0 disk                                                                          
└─sdb1   8:17   1   3.8G  0 part /mnt/larry1 vfat                     QWER-1234                            
sdc      8:32   1   1.9G  0 disk                                                                          
└─sdc1   8:33   1   1.9G  0 part /mnt/larry2 vfat     QWERTZ12345     4321-REWQ                            qwer1234-01
sr0     11:0    1  1024M  0 rom    

デバイスがマウントされたら、通常のハードディスクのようにアクセスすることができます。 cp mv rm などのような通常の操作は問題なく行えます。

使用中のマウントポイントをアンマウントするには、マウントのときと同様にラベルまたは UUID を使用できます。どちらでもかまいません。

user $ umount /mnt/larry2
user $ umount LABEL=QWERTZ12345
user $ umount UUID=4321-REWQ

fstab にエントリが無いマウントは、root によってしか実行できません。

root # mount UUID=QWER-1234 /mnt/larry1
user $ mount
/dev/sdb1 on /mnt/larry1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

詳細については mount(8) man ページを参照してください。

他の方法は、 /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy を編集し、action id "org.freedesktop.udisks2.filesystem-mount" 下の allow_any の auth_admin を yes に変更する方法です。リモートのユーザもローカルのユーザもディスクをマウントできるようになるので、この変更は潜在的なセキュリティリスクであると考えてください。

ファイル /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
    <action id="org.freedesktop.udisks2.filesystem-mount">
      <description>Mount a filesystem</description>
      <message>Authentication is required to mount the filesystem</message>
      <defaults>
        <allow_any>yes</allow_any>
        <allow_inactive>auth_admin</allow_inactive>
        <allow_active>yes</allow_active>
      </defaults>
    </action>

MTP

MTP ( M edia T ransfer P rotocol) プロトコルを利用したメディアの取り扱いについては、 MTP の記事を参照してください。

関連項目

外部資料