Grumpelmampf
Newbie
Hallo,
ich habe das Problem, das ich über den Befehl amrecover (setze Amanda zum Backup ein) keine Dateien vom Bandlaufwerk wiederherstellen kann, da /dev/nst0 root:root gehört.
Ich erhalte nur folgende Fehlermeldung wenn ich Daten vom Band mittels extract wiederherstellen will:
Bei dem Bandlaufwerk selbst handelt es sich um ein IBM LTO4 Ultrium mit Firmware Version 89B2.
/dev/nst0 hat folgende Berechtigungen:
Setze ich die Rechte von /dev/nst0 manuell auf root:disk klappt das Wiederherstellen mit amrecover ohne Probleme.
Aber eben nur bis zum nächsten Neustart, weil dann Udev /dev/nst0 wieder dynamisch mit root:root erzeugt..
So, also dachte ich mir, ich passe einfach den GROUP="root" Eintrag der entsprechenden Udev-Regel unter /etc/udev/rules.d/ auf GROUP="disk" an.
Die Regeln für die /dev/nst[0-9] stehen in der Datei 60-persistent-storage-tape.rules.
Diese existiert aber nicht unter /etc/udev/rules.d/!?
Unter /lib/udev/rules.d/ liegt die Datei.
Allerdings steht hier drin:
a) Das man die Datei nicht ändern soll
b) Keine Benutzer-/Gruppendefinition.
Ich gehe also davon aus, das /dev/nst0 root:root gehört, weil /dev/ root:root gehört und /dev/nst0 dieses dann einfach erbt.
Inhalt der /lib/udev/rules.d/60-persistent-storage-tape.rules
Oben in der Datei steht auch noch was von "persistent storage links". Dies sind aber nur Symlinks auf die Gerätedateien und gehören auch root:root.
Meine Fragen sind jetzt:
1.) Wieso taucht die Datei 60-persistent-storage-tape.rules zwar unter /lib/udev/rules.d/ auf nicht aber unter /etc/udev/rules.d/?
Nach allem was ich über udev weißt werden die Regeldateien für die Geräte, die gefunden wurden, nach /etc/udev/rules.d kopiert.
2.) Welche Regel muss ich anpassen? Denke mal die mit SUBSYSTEMS=="scsi", oder?
3.) Wäre die Regel dann so korrekt?
Ach ja:
amrecover wird als Benutzer root ausgeführt. Der Zugriff auf das Band läuft aber über die Gruppe disk.
Ich hatte Amanda schonmal in die Gruppe root aufgenommen. Dies klappt aber auch nicht.
Und die GID will ich nicht verändern, da ich sonst Amanda anpassen müsste.
Danke und Gruß,
Khark
ich habe das Problem, das ich über den Befehl amrecover (setze Amanda zum Backup ein) keine Dateien vom Bandlaufwerk wiederherstellen kann, da /dev/nst0 root:root gehört.
Ich erhalte nur folgende Fehlermeldung wenn ich Daten vom Band mittels extract wiederherstellen will:
Code:
amrecover> extract
Extracting files using tape drive /dev/nst0 on host localhost.
The following tapes are needed: Backup101
Restoring files into directory /restore
Continue [?/Y/n]? y
Extracting files using tape drive /dev/nst0 on host localhost.
Load tape Backup101 now
Continue [?/Y/n/s/t]? y
Could not rewind device '/dev/nst0': tape_rewind: tape open: /dev/nst0: Permission denied
Bei dem Bandlaufwerk selbst handelt es sich um ein IBM LTO4 Ultrium mit Firmware Version 89B2.
/dev/nst0 hat folgende Berechtigungen:
Code:
server:~ # ls -lach /dev/nst0
crw-rw---- 1 root root 9, 128 Dec 11 13:43 /dev/nst0
Setze ich die Rechte von /dev/nst0 manuell auf root:disk klappt das Wiederherstellen mit amrecover ohne Probleme.
Aber eben nur bis zum nächsten Neustart, weil dann Udev /dev/nst0 wieder dynamisch mit root:root erzeugt..
Code:
server:~ # chown root:disk /dev/nst0
server:~ # ls -lach /dev/nst0
crw-rw---- 1 root disk 9, 128 Dec 11 13:43 /dev/nst0
So, also dachte ich mir, ich passe einfach den GROUP="root" Eintrag der entsprechenden Udev-Regel unter /etc/udev/rules.d/ auf GROUP="disk" an.
Die Regeln für die /dev/nst[0-9] stehen in der Datei 60-persistent-storage-tape.rules.
Diese existiert aber nicht unter /etc/udev/rules.d/!?
Code:
server:~ # ls /etc/udev/rules.d/
55-hpmud.rules 56-idedma.rules 70-kpartx.rules 70-persistent-net.rules 77-network.rules 81-mptctl.rules
55-libsane.rules 56-sane-backends-autoconfig.rules 70-persistent-cd.rules 71-multipath.rules 79-yast2-drivers.rules 99-pcsc_lite.rules
Unter /lib/udev/rules.d/ liegt die Datei.
Code:
server:~ # ls /lib/udev/rules.d/
40-suse.rules 60-cdrom_id.rules 60-persistent-storage.rules 64-device-mapper.rules 75-cd-aliases-generator.rules 80-drivers.rules
40-zaptel.rules 60-persistent-input.rules 60-persistent-v4l.rules 64-lvm2.rules 75-persistent-net-generator.rules 90-hal.rules
50-udev-default.rules 60-persistent-storage-tape.rules 61-persistent-storage-edd.rules 64-md-raid.rules 79-fstab_import.rules 95-udev-late.rules
Allerdings steht hier drin:
a) Das man die Datei nicht ändern soll
b) Keine Benutzer-/Gruppendefinition.
Ich gehe also davon aus, das /dev/nst0 root:root gehört, weil /dev/ root:root gehört und /dev/nst0 dieses dann einfach erbt.
Inhalt der /lib/udev/rules.d/60-persistent-storage-tape.rules
Code:
# do not edit this file, it will be overwritten on update
# persistent storage links: /dev/tape/{by-id,by-path}
ACTION!="add|change", GOTO="persistent_storage_tape_end"
# type 8 devices are "Medium Changers"
KERNEL=="sg[0-9]*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --sg-version=3 --export --whitelisted -d $tempnode", SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}"
SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end"
KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", ENV{BSG_DEV}="$root/bsg/$id"
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", WAIT_FOR="$env{BSG_DEV}", IMPORT="scsi_id --whitelisted --export --device=$env{BSG_DEV}", ENV{ID_BUS}="scsi"
KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
# by-path (parent device path)
KERNEL=="st*[0-9]|nst*[0-9]", IMPORT{program}="path_id %p"
KERNEL=="st*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}-nst"
LABEL="persistent_storage_tape_end"
Oben in der Datei steht auch noch was von "persistent storage links". Dies sind aber nur Symlinks auf die Gerätedateien und gehören auch root:root.
Code:
server:~ # ls -lach /dev/tape/by-path/
lrwxrwxrwx 1 root root 9 Dec 1 18:49 pci-0000:0d:08.0-sas-phy1:1-0x50050763124596ae:1-lun0-1:0:0:0st -> ../../st0
lrwxrwxrwx 1 root root 10 Dec 1 18:49 pci-0000:0d:08.0-sas-phy1:1-0x50050763124596ae:1-lun0-1:0:0:0st-nst -> ../../nst0
server:~ # ls -lach /dev/tape/by-id/
lrwxrwxrwx 1 root root 9 Dec 1 18:49 scsi-350050763120596ae -> ../../st0
lrwxrwxrwx 1 root root 10 Dec 1 18:49 scsi-350050763120596ae-nst -> ../../nst0
Meine Fragen sind jetzt:
1.) Wieso taucht die Datei 60-persistent-storage-tape.rules zwar unter /lib/udev/rules.d/ auf nicht aber unter /etc/udev/rules.d/?
Nach allem was ich über udev weißt werden die Regeldateien für die Geräte, die gefunden wurden, nach /etc/udev/rules.d kopiert.
2.) Welche Regel muss ich anpassen? Denke mal die mit SUBSYSTEMS=="scsi", oder?
3.) Wäre die Regel dann so korrekt?
Code:
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", ENV{BSG_DEV}="$root/bsg/$id" GROUP="disk"
Ach ja:
amrecover wird als Benutzer root ausgeführt. Der Zugriff auf das Band läuft aber über die Gruppe disk.
Ich hatte Amanda schonmal in die Gruppe root aufgenommen. Dies klappt aber auch nicht.
Und die GID will ich nicht verändern, da ich sonst Amanda anpassen müsste.
Code:
server:/etc/udev/rules.d # id amanda
uid=37(amanda) gid=6(disk) groups=6(disk),0(root)
Danke und Gruß,
Khark