3 votes

Périphérique occupé lors de la lecture d'un lecteur de bande avec tar

Lorsque j'essaie de lire un tar à partir d'une bande avec tar tvbf 2048 /dev/nst0 il revient :

tar: /dev/nst0: Cannot read: Device or resource busy
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now

Y lsof | grep st0 ne renvoie rien.

Toutes les commandes fonctionnent avec mt works. Si j'essaie avec strace :

...
open("/dev/nst0", O_RDONLY)             = 3
read(3, 0x7ff16eb8f000, 1048576)        = -1 EBUSY (Device or resource busy)
...

Le lecteur de bande a le dernier firmware. Le lecteur de bande est un IBM ULTRIUM-HH6 et le micrologiciel est F9A1.

4voto

NickSoft Points 248
  • Avez-vous également écrit avec la même taille de bloc ?
  • Avez-vous rembobiné avant de lire ?
  • Fait mt -f /dev/nst0 status travail ?
  • Est-ce que vous enchaînez dd avec tar ou simplement en utilisant tar comme vous l'avez écrit ? Il y a une bizarrerie lors de l'utilisation de la tuyauterie tar et de la variable d'environnement $TAPE. voir ci-dessous.

Parfois vous lancez une commande, elle échoue, il n'y a pas de bruit provenant du lecteur, mais la bande n'est plus en état de "rembobinage". Essayez de rembobiner implicitement avant chaque commande.

Faites un test avec une autre bande (exécutez les commandes immédiatement l'une après l'autre : cd /path/to files mt -f /dev/nst0 rewind ; tar -b 2048 -c -f /dev/nst0 * mt -f /dev/nst0 rewind ; tar -b 2048 -t -f /dev/nst0

Si vous ne voulez pas passer -f /dev/nst0 tout le temps ajoutez export TAPE=/dev/nst0 dans votre .bashrc. Gardez à l'esprit que si vous avez cette variable, tar préférera le lecteur de bande à stdin/stdout. Cela renverra donc "Device or resource busy" (périphérique ou ressource occupé)

export TAPE=/dev/nst0
mt rewind ; tar -b 128 -c *|dd of=$TAPE bs=64K 

... parce que dd et tar essaient tous deux d'ouvrir le lecteur de bande. La façon correcte d'utiliser tar est de passer -f - :

mt rewind ; tar -b 128 -c -f - *|dd of=$TAPE bs=64K 

De plus, je ne suis pas sûr que cette taille de bloc fonctionne bien. Dans ce document vous pouvez lire :

Une taille de bloc pas plus grand de 256 Ko (262144 octets) est fortement recommandée recommandé lorsque vous travaillez avec HP-UX et des périphériques à bande ou VTL.

Essayez donc de réduire la taille des blocs à 256KiB ou même 128KiB (c'est-à-dire tar -b 512 ou -b 256 respectivement).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X