2

Я только что обновился до Fedora 15. Я использовал Bacula для резервного копирования уже несколько лет, и он отлично работает. Но сейчас я столкнулся с проблемой, возможно потому, что Bacula теперь работает как пользовательский bacula, а не как root.

Мой резервный носитель - два USB-накопителя (я держу один внешний и меняю их раз в месяц или около того). Однако Fedora автоматически монтирует USB-накопитель с точкой монтирования, принадлежащей моему UID в режиме 700, предположительно потому, что я вошел в систему, и это будет правильным решением для большинства USB-накопителей. Однако в этом случае это не потому, что Bacula не может получить к нему доступ.

Если я правильно понимаю последовательность событий, udev создает узлы устройств /dev /sdb и /dev /sdb1, которые затем автоматически монтируются с помощью udisk (который является компонентом Gnome). Этот диск определяет параметры монтирования.

Я хочу, чтобы любой диск с меткой «BACKUP *» монтировался с точкой монтирования, принадлежащей bacula:bacula, mode 700. Я думаю, что мне нужен собственный файл правил udev в /etc/udev/rules.d. Я прочитал страницу udev(7) и " Написание правил udev ". Вот что я придумал в файле под названием «10-backup-disk.rules». Он анализируется с помощью udev, но не работает: диск все равно оказывается принадлежащим мне. Может кто-нибудь сказать мне, что я делаю не так?

Благодарю.

KERNEL!="sd[a-z][0-9]", GOTO="backup-disk_auto_mount_end"
ENV{ID_FS_LABEL}!="BACKUP*", GOTO="backup-disk_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get disk label
ENV{dir_name}="%E{ID_FS_LABEL}"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime,rw"
# Filesystem-specific mount options
ACTION=="add", ENV{mount_options}="$env{mount_options}"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="backup-disk_auto_mount_end"

1 ответ1

6

Я ничего не знаю об udev, но так как вы используете Fedora 15, вы можете сделать то же самое с помощью systemd гораздо проще.

Предполагая, что у вас есть USB-диск с меткой BACKUP_ONE, создайте следующий файл:

/etc/systemd/system/mnt-backup1.mount:

[Mount]
What=/dev/disk/by-label/BACKUP_ONE
Where=/mnt/backup1
Options=uid=bacula,gid=bacula,mode=0700

Обратите внимание, что имя файла должно заканчиваться на .mount и иметь имя, совпадающее с точкой монтирования (в строке Where= файла модуля), с косой чертой (/), измененной на тире (-). Для получения дополнительной информации см. man systemd.unit.

Кроме того, вы можете запретить ему монтировать диск до тех пор, пока Bacula не запустит резервное копирование (или вы не попытаетесь получить доступ к диску), создав /etc/systemd/system/mnt-backup1.automount:

[Automount]
Where=/mnt/backup1
[Install]
WantedBy=remote-fs.target

Повторите это для другого диска, а затем запустите systemctl enable mnt-backup1.automount и systemctl daemon-reload чтобы сообщить systemd об изменениях. (Я бы удостоверился, что они отключены от сети в это время, чтобы не запутаться.)

Теперь udisks будет зависеть от вашей конфигурации systemd и монтировать ее с опциями, которые вы определили.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .