SeaGate FreeAgent 外置硬盘不断重复自动安装

SeaGate FreeAgent 外置硬盘不断重复自动安装

我插入 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-BackUppath = /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 意外发生变化,则似乎是您的驱动器连接存在故障。

相关内容