自动安装/ media下的所有外部驱动器,并对每个人进行读/写访问

这是我的问题:

我的电脑有4个USB端口,正在运行Ubuntu 12.10。 我每天都会收到不同的USB,插入我的电脑, 读取/写入数据,然后将它们发送出去。

我想要的是自动将任何USB I插头插入我的电脑。 第一个检测到的USB将进入/media/HDD1 ,第二个将进入/media/HDD2 ,依此类推。 或者,如果连接到端口1的USB将转至/media/HDD1 ,则插入端口2的USB将转至/media/HDD2 ,依此类推。

路径/media并不重要,但我想将HDD1-4目录放在一个地方,以便我可以轻松访问它们。

USB通常是ext2,但有时我也会得到FAT32,NTFS USB。

我还希望安装USB而无需登录Ubuntu,因为我经常从另一台Windows计算机访问/media/HDD..

我怎样才能做到这一点? udev规则有什么变化,我应该做出什么? 任何建议都非常感谢。

那么,在这里我们可以使用fstab用于光学媒体(又名CD和DVD)的相同技巧:

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

第一列表示文件系统,我确定你的USB将有固定值,所以我们假设sda之后的所有内容都是USB,而且由于你只能同时拥有4个USB,所以列表来自sdbsdcsddsde

 $ 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都有一个且只有一个分区,因此对于我们的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 so 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时自动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设备时,它都会自动安装在安装点,而无需用户干预。 你应该根据你的需要进行修改。

这是我找到的解决方案:

首先我在我的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个挂载点。 我的电脑已经有sdasdb作为本地磁盘,所以我把sdc1 – > sdj1用于外部设备。 当您插入驱动器时,它们实际上是/dev设备节点。安装规则的例外是DVD安装,如上所示。

当我插入任何驱动器时,它们将在/media/mount目录下显示为disk1,disk2,…,并在10秒后自动卸载。 我不需要触摸我的电脑,可以从其他地方访问它(例如虚拟机)