我插入 Seagate FreeAgent 外置硬盘,然后将 USB 插入我的 Ubuntu 10.04 机器,如预期一样,它安装/media
好了。好的,这很棒。我可以访问文件等。然后,我编辑smb.conf
此驱动器的文件,以便我可以共享它,并添加一行用于共享我不拥有的驱动器。
我共享驱动器并卸载它然后重新安装
sudo mount -t ntfs /dev/sdb1 /media/FreeAgent
并且它安装得很好。我可以从网络上的 Windows XP 计算机访问该驱动器。然后,过了一会儿,它又自动挂载了,因为/media/Main-BackUp
然后挂载点/media/FreeAgent
不再挂载驱动器,文件也不存在了。文件位于新挂载的目录中。我应该注意到驱动器的名称是 Main-BackUp。我已经用smb.conf
几种方法编辑了我的文件以使其正常工作,包括更改名称以使其匹配以及它应该所在的挂载点目录。它目前是这样的:
[Main-BackUp]
comment = Backup drive
path = /media/Main-BackUp
guest ok = yes
browseable = yes
read only = no
create mask = 0777
directory mask = 0777
但是我把线路改为,path = /media/Main-BackUp
但path = /media/FreeAgent
没有成功。
然后,过了一段时间,它又会重复此操作,并创建另一个挂载点/media/Main-BackUp_
,然后前一个挂载点没有任何文件,但这个新挂载点有文件。每次都会弹出一个窗口,其中包含新挂载点和我的外部驱动器上的文件。如果我将这台机器放置一小时左右,它将重复此过程 5 到 6 次。
我使用类似的技术成功地在我的工作网络上安装了 Drobo,效果很好。不知道我做错了什么。任何帮助都非常感谢。
笔记- 所以我注释掉了 中的行smb.conf
,并尝试让驱动器自行自动安装。仍然发生这种情况。我搜索了一种方法来实现自动安装,但在 10.04 中我找不到它。我尝试了首选项 > 文件管理 > 媒体,并取消选中任何可能导致此问题的内容,但无济于事。在注释掉 中的行后,自动安装实验即将结束时,smb.conf
出现了错误。
笔记2- 驱动器安装正常,但几分钟后,网络共享变为空白,文件不存在。我转到服务器计算机并查看驱动器,最近一次,驱动器从 sdb1 移至 sdc1。我重新安装后,它似乎又可以正常工作了,但几分钟后,同样的行为又出现了……空共享。这是一种奇怪的行为,我不确定我是否找到了根本原因。
答案1
首先这里有两个问题。我通常喜欢将外部硬盘插入计算机,然后在启动时自动挂载它们。但是,有一个名为 udev 的函数在启动时运行,它将您连接的硬件定义到硬件抽象层。它或多或少会根据它看到的外部硬盘的顺序分配设备标识符,该顺序可能会在每次启动时发生变化。通常,它看到的第一个分配给/dev/sdb1
,第二个分配给/dev/sdc1
,第三个分配给/dev/sdd1
,等等。如果您只有一个外部硬盘,它将始终选择/dev/sdb1
标识符,然后您可以输入一个/etc/fstab
条目来自动挂载它并完成它。
确保 udev 始终为同一设备分配相同的设备标识符的关键是定义一条 udev 规则,根据设备的序列号执行此操作。执行此操作的方法是作为 root,在 中创建一个新规则文件/etc/udev/rules.d
。在该目录中创建一个名为 的文件10-local.rules
(10 确保它在早期得到执行)。以下是我的规则:
SUBSYSTEM=="block",SUBSYSTEMS=="usb",ATTRS{serial}=="2GEV4BXH",NAME="usb2"
SUBSYSTEM=="block",SUBSYSTEMS=="usb",ATTRS{serial}=="2GEV4EE6",NAME="usb3"
SUBSYSTEM=="block",SUBSYSTEMS=="usb",ATTRS{serial}=="2GEWMKA0",NAME="usb4"
SUBSYSTEM=="block",SUBSYSTEMS=="usb",ATTRS{serial}=="2GEX10PK",NAME="usb5"
为了获取序列号,我只需从实际硬盘驱动器本身读取它们即可。规则的每一行基本上都说,如果设备是一个块和一个 USB,并且序列号为 XXXX,则为其分配此名称。
然后我知道每次启动时,我连接的 4 个硬盘总是会被分配相同的设备标识符/dev/usb2
,,,,。/dev/usb3
/dev/usb4
/dev/usb5
完成后,可以轻松编辑/etc/fstab
文件并添加驱动器的挂载命令,以下是我的相关行:
/dev/usb2 /media/usb2 ntfs rw,auto 0 0
/dev/usb3 /media/usb3 ntfs rw,auto 0 0
/dev/usb4 /media/usb4 ntfs rw,auto 0 0
/dev/usb5 /media/usb5 ntfs rw,auto 0 0
当我的系统启动时,一切都在正确的位置,已安装并可供使用......
woodwose@woodwose-server:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 72G 28G 40G 41% /
none 493M 436K 493M 1% /dev
none 497M 1.1M 496M 1% /dev/shm
none 497M 340K 497M 1% /var/run
none 497M 0 497M 0% /var/lock
none 497M 0 497M 0% /lib/init/rw
/dev/usb4 1.4T 1023G 375G 74% /media/usb4
/dev/usb2 1.4T 1.1T 300G 79% /media/usb2
/dev/usb5 1.4T 1.3T 73G 95% /media/usb5
/dev/usb3 1.4T 1.3T 93G 94% /media/usb3
这些 USB 设备的列出顺序会发生变化,因为不能保证操作系统每次都以相同的顺序找到它们,但由于您可以根据不变的东西(即设备的序列号)控制分配给每个设备的设备标识符,因此您始终可以在启动时将同一设备自动安装到同一安装点。
而且由于您的 smb 共享基于挂载点,因此您也可以设法在相同的共享名上一致地共享相同的文件。
我希望这对你有帮助。
答案2
将驱动器添加到/etc/fstab
:
/dev/sdb1 /media/FreeAgent ntfs-3g defaults 0 0
这会:
- 使驱动器在启动时安装到 /media/FreeAgent(如果已插入)
- 阻止 GNOME 和其他实用程序尝试重新挂载驱动器
- 这也意味着如果它在启动时没有插入,您将需要像以前一样手动安装它,或者使用
sudo mount -a
。
- 这也意味着如果它在启动时没有插入,您将需要像以前一样手动安装它,或者使用
- 如果其他实用程序做尝试自动安装它。
我之前曾对几个驱动器进行过此操作,并且效果非常好。
就您最近的编辑(注释 2)而言,如果设备 ID 意外发生变化,则似乎是您的驱动器连接存在故障。