自动安装/ 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,所以列表来自sdb
, sdc
, sdd
和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都有一个且只有一个分区,因此对于我们的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个挂载点。 我的电脑已经有sda
和sdb
作为本地磁盘,所以我把sdc1
– > sdj1
用于外部设备。 当您插入驱动器时,它们实际上是/dev
设备节点。安装规则的例外是DVD安装,如上所示。
当我插入任何驱动器时,它们将在/media/mount
目录下显示为disk1,disk2,…,并在10秒后自动卸载。 我不需要触摸我的电脑,可以从其他地方访问它(例如虚拟机)