web-dev-qa-db-ja.com

すべての外部ドライブを/ mediaの下に自動的にマウントし、全員に読み取り/書き込みアクセス権を付与します

私の問題は次のとおりです。

私のコンピューターには4つのUSBポートがあり、Ubuntu 12.10を実行しています。私は毎日異なるUSBを受け取り、コンピューターに接続し、読み取り/書き込みデータをそれらに送信し、それらを送信します。

私が欲しいのは、コンピュータに差し込んだUSBを自動的にマウントすることです。最初に検出されたUSBは/media/HDD1に進み、2番目は/media/HDD2に進みます。または、port1に接続されたUSBが/media/HDD1に接続され、port2に接続されたUSBが/media/HDD2に接続されれば、それは素晴らしいことです。

パス/mediaは重要ではありませんが、簡単にアクセスできるように、HDD1-4ディレクトリを1か所にまとめたいと思います。

USBは通常ext2ですが、時々FAT32、NTFS USBも入手します。

また、別のWindowsコンピューターから/media/HDD..に頻繁にアクセスするため、UbuntuにログインせずにUSBをマウントしたいと考えています。

どうやってやるの? udevルール、fstabのどのような変更を行う必要がありますか?どんな提案も大歓迎です。

9
Kiwi

さて、ここでfstabが光学メディア(別名CDおよびDVD)に使用するのと同じトリックを使用できます。

/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

最初の列はファイルシステムを示しています。USBの値は固定されているので、sdaの後のすべてがUSBであると仮定します。同時に4つのUSBしか使用できないため、リストはsdbsdcsddおよびsdeから。

$ ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdb3  /dev/sdb6  /dev/sdc  /dev/sdf
/dev/sda1  /dev/sdb1  /dev/sdb4  /dev/sdb7  /dev/sdd
/dev/sda2  /dev/sdb2  /dev/sdb5  /dev/sdb8  /dev/sde

(私の場合、メモリリーダーを使用しているため、USBドライバはsdgから開始しますが、続行します。)

ここで、各USBにはoneパーティションが1つしかないため、fstabに必要な行は次のとおりです。

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

次に、マウントポイントを修正する必要があると言ったので、ディレクトリを作成したら、それらを追加します。

/dev/sdb1 /media/HDD1
/dev/sdc1 /media/HDD2
/dev/sdd1 /media/HDD3
/dev/sde1 /media/HDD4

ほとんどすべてのタイプのファイルシステムを使用できるため、autoを使用して、fstabが使用するファイルタイプを推測します。

/dev/sdb1 /media/HDD1 auto
/dev/sdc1 /media/HDD2 auto
/dev/sdd1 /media/HDD3 auto
/dev/sde1 /media/HDD4 auto

さて、オプションの詳細を見てみましょう。これは、読み取り/書き込み権限が追加されたCDでもまったく同じです。

/dev/sdb1 /media/HDD1 auto rw,users,noauto,allow_other,umask=0
/dev/sdc1 /media/HDD2 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD3 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD4 auto rw,users,noauto,allow_other,umask=0

rwは読み取りおよび書き込み権限が必要であることを示し、usersはすべてのユーザーがデバイスをマウントできるようにします。noautoは、mount -aが呼び出されたときにドライバーが自動的にマウントされることを防ぎますブート時にエラーや警告を防ぎ、allow_otherは他を許可しますが、ドライバーをマウントしたユーザーは同じ許可を持ち、umask=0はデフォルトのumaskが適用されないようにします。

残りの2つのフィールドは、ほぼdumpオーダーとfsckオーダーです。これらは両方とも0になる可能性があり、最終結果が残ります。

/dev/sdb1 /media/HDD1 auto rw,user,noauto,allow_other 0 0
/dev/sdc1 /media/HDD2 auto rw,user,noauto,allow_other 0 0
/dev/sdd1 /media/HDD3 auto rw,user,noauto,allow_other 0 0
/dev/sde1 /media/HDD4 auto rw,user,noauto,allow_other 0 0

これにより、USBデバイスを接続するたびに、ユーザーの介入なしに自動的にマウントポイントにマウントされます。必要に応じて変更する必要があります。

7
Braiam

ここに私が見つけた解決策があります:

まず、Linux PCにautofsをインストールします。

Sudo apt-get install autofs

/etc/auto.masterの下にauto.masterファイルを作成します

そのファイルの最後に次の行を追加します。

/media/mount /etc/auto.mount --timeout=10 --ghost

/media/mountは、すべての外部ドライブをマウントするディレクトリです。 /etc/auto.mountは、マウント規則に入れるファイルです。 --timeout=10は、非アクティブな状態が10秒間続くと、ドライブを自動的にマウント解除することを意味します。 --ghostは、マウントが解除されてもコンテンツの画像が残ることを意味します。必要に応じてこの行を変更します。

/etc/auto.mountファイルを編集して、次の行を追加します。

disk1  -fstype=auto,sync  :/dev/sdc1
disk2  -fstype=auto,sync  :/dev/sdd1
disk3  -fstype=auto,sync  :/dev/sde1
disk4  -fstype=auto,sync  :/dev/sdf1
disk5  -fstype=auto,sync  :/dev/sdg1
disk6  -fstype=auto,sync  :/dev/sdh1
disk7  -fstype=auto,sync  :/dev/sdi1
disk8  -fstype=auto,sync  :/dev/sdj1
DVD    -fstype=iso9660,ro :/dev/sr0

USBやeSATAなどの通常のドライブでは、-fstype=auto,syncを設定します。 8つのUSB + eSATAポートがあるため、ここで8つのマウントポイントを宣言します。私のPCは既にローカルディスクとしてsdasdbを持っているので、外部デバイス用にsdc1-> sdj1を配置します。これらは、実際にドライブを接続したときに/devのデバイスノードです。マウントルールの例外は、上記のDVDマウントです。

ドライブを挿入すると、/media/mountディレクトリの下にdisk1、disk2、...と表示され、10秒後に自動的にアンマウントされます。 PCに触れる必要はなく、他の場所(仮想マシンなど)からアクセスできます。

3
Kiwi