将USB磁盘安装在永久位置


13

我有一个USB硬盘,要在引导时和特定位置安装。即使没有人登录,我如何才能使该驱动器挂载并保持可用状态(例如本地备份等)?

似乎udev或类似的东西抢占了磁盘。如果我在/ etc / fstab中放置一个试图专门通过UUID挂载该磁盘的条目,则该挂载进程和udev挂载进程似乎最终陷入了一场争斗,并且磁盘没有被挂载。


您可以添加添加的行/etc/fstab吗?插入驱动器时是否有任何日志消息?也许有助于提高中的日志级别/etc/udev/udev.conf
qbi

您的fstab线看起来如何?它应该看起来像这样的东西:“ UUID = 48a26dbe-e707-4e45-bd55-fc7936292ee1 / data ext4 errors = remount-ro 0 2”
LassePoulsen

Answers:


7

使用udev挂载磁盘。将来自此Wiki的规则放入/etc/udev/user.rules并重新引导(或重新连接USB HDD)。Wiki中有很多规则(这就是为什么我没有在此处列出规则)的原因,请选择最适合您需求的规则(例如,您需要特定的普通用户才能卸载它)。

细读/lib/udev/rules.d/80-udisks.rules将帮助您了解什么是udev的做给你的硬盘。

除了我上面提到的udev规则外,我认为您还可以采取另一种方法:指示udisk(通过udev)不理会磁盘,然后通过fstab挂载它。

该代码在我的系统上有效

ACTION!="add|change", GOTO="my_udisks_end"
SUBSYSTEM!="block", GOTO="my_udisks_end"

ENV{ID_TYPE}!="disk", GOTO="my_udisks_end"
ENV{ID_BUS}!="ata", GOTO="my_udisks_end"
ENV{DEVTYPE}!="partition", GOTO="my_udisks_end"

KERNEL=="sd*|hd*", ENV{UDISKS_PRESENTATION_NOPOLICY}="1"

LABEL="my_udisks_end"

但是通用的,包括所有分区。为了能够针对您的特定硬盘/分区用途udevadm info --query=all -n /dev/sdX,然后匹配udev规则中的某些特定属性。

编写udev规则是一个很好的资源来帮助您。不幸的是,它包含一些过时的信息(udevinfo已被替换udevadm indo)。不过,我向您保证,这是一本值得一读的书-udev是当今架构的核心,您可以通过使用它来完成很多工作。它也很灵活。

在udev规则中容易出错:)。用于udevadm test $(udevadm info -q path -n /dev/sdX)“窥视” udev在做什么。


太棒了 这看起来很像我要找的东西。似乎我需要阅读一些书籍...
唐·福克纳

1

您可以尝试通过/ dev / ...而不是UUID引用它。最有可能是/ dev / sdb *,您可以通过转到系统->管理->系统监视器,然后单击“文件系统”选项卡来进行检查。您需要先插入USB驱动器,然后使其自动安装。在/ etc / fstab中将'UUID = uuid'替换为'/ dev / sdb *'。在编辑fstab之前备份它总是一个好主意。


4
将大容量存储设备直接引用到设备节点是一个坏主意!BIOS设置和卸下的设备可能会破坏设备顺序。
LassePoulsen

您可能是对的,但我给人的印象是,每次移除并重新插入USB设备时,都会重新生成UUID。这意味着,每次移除并再次插入设备时,都需要编辑fstab。
dv3500ea 2010年

实际上,我错了,UUID保持不变。
dv3500ea 2010年

3
UUID是filsystems的唯一ID,与总线位置或设备无关。如果将整个文件系统从一台设备复制到另一台设备,它甚至还可以生存。
LassePoulsen

1
文件系统的持久性是我在逐个uuid中寻找的东西。这是我的“本地备份”设备,即使添加或重新排列设备,我也希望/ backup(或在安装它的任何位置)始终具有此文件系统。这就是按需安装或按标签安装的优点。
唐·福克纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.