Монтирование USB-диска в постоянном месте

13

У меня есть жесткий диск USB, который я хочу смонтировать при загрузке и в определенном месте. Как сделать так, чтобы устройство монтировалось и оставалось доступным (скажем, для локального резервного копирования и т. Д.), Даже если никто не вошел в систему?

Кажется, что udev или что-то похожее захватывает диск. Если я добавлю запись в / etc / fstab, которая пытается специально смонтировать этот диск (с помощью UUID), то этот процесс монтирования и процесс монтирования udev, похоже, окажутся в битве друг с другом, и диск не будет смонтирован.

Дон фолкнер
источник
Можете ли вы добавить строку, которую вы добавили /etc/fstab? Есть ли какие-либо сообщения журнала, когда вы подключаете свой диск? Может быть, это помогает повысить уровень входа в систему /etc/udev/udev.conf.
Qbi
Как выглядит ваша линия? Это должно выглядеть примерно так: «UUID = 48a26dbe-e707-4e45-bd55-fc7936292ee1 / data ext4 errors = remount-ro 0 2»
LassePoulsen

Ответы:

7

Смонтируйте диск с помощью udev. Поместите правила из этой вики в /etc/udev/user.rulesи перезагрузки (или подключите USB HDD). В вики есть несколько предпочтений правил (поэтому я их здесь не перечислил), выберите тот, который лучше всего соответствует вашим потребностям (например, вам нужен конкретный обычный пользователь, чтобы иметь возможность его размонтировать).

Просмотр /lib/udev/rules.d/80-udisks.rulesпоможет вам понять, что udev делает с вашим жестким диском.

Помимо упомянутых выше правил udev, я думаю, что вы можете воспользоваться другим подходом: проинструктировать udisks (через 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-накопитель и автоматически установить его. Замените 'UUID = uuid' на '/ dev / sdb *' в / etc / fstab. Всегда хорошая идея сделать резервную копию fstab перед ее редактированием.

dv3500ea
источник
4
Ссылка на устройства хранения данных напрямую на узлы устройств - плохая идея! Настройки BIOS и удаленные устройства могут испортить порядок устройств.
LassePoulsen
Возможно, вы правы, но у меня сложилось впечатление, что UUID восстанавливается каждый раз, когда USB-устройство извлекается и подключается обратно. Это будет означать, что fstab необходимо будет редактировать каждый раз, когда устройство удаляется и снова подключается.
dv3500ea
На самом деле, я был неправ, UUID остается прежним.
dv3500ea
3
UUID - это уникальный идентификатор filsystems, который не имеет отношения к местоположению шины или устройству. Это даже выживет, если вы скопируете всю файловую систему с одного устройства на другое.
LassePoulsen
1
Постоянство файловой системы - это то, что я искал с помощью mount-by-uuid. Это мое «локальное резервное копирование», и я хочу, чтобы / backup (или везде, где я его монтировал) всегда имел эту файловую систему, даже если я добавляю или переставляю устройства. В этом преимущество монтажа byuuid или by-label.
Дон Фолкнер