Jump to content

erreur lors de la restauration d'une bande DAT


Recommended Posts

Salut tout le monde :-D

Je veux copier le contenu d'une bande DAT ( 4 mm ) qui est en fait le back up d'une machine ( SUN Fire V 240 OS Solaris 8 ) . Pour cela je me mets dans le repertoire /home où je veux recopier intégralement la bande DAT , je rembobine la bande ( mt -f /dev/rmt/0 rewind ) et lance la commande suivante :

ufsrestore -rf /dev/rmt/0c

Donc , cette commande se lance et la restauration du DAT se passe bien jusqu’au moment où je reçois le message d’erreur suivant :

Read error while restoring ./usr/chemin/doc1.jar

Puis il me demande si je veux continuer la restauration Continue ? [yn]

je reponds par l’affirmatif .

Il m’informe qu’il a ignoré les deux blocs suivants ( sachant qu’un block correspond à 512 Octets ):

resync restore , skipped 2 blocks

et quand il essaie de reprendre la restauration deux blocs plus loin , il m’envoie des messages ( une trentaine ) d’erreur de ce type :

./usr/chemin/doc2.jar: not found on volume

Remarque : j'ai vérifié la capacité de /home , elle etait utilisée à 19% de sa capacité totale. Donc c'est pas un problème de mémoire . ;)

Merci à toute personne qui contribuera au débuggage de cette erreur. :zarb:

Link to comment
Share on other sites

Ben à mon avis, c'est sur la bande qu'il ne trouve pas ce fichier ...

Je ne connais pas les bandes DAT, mais je chercherai d'une erreur de lecture.

La bande n'a pas été altérée ? Elle est ancienne ?

Salut Fabien29200 :francais:

Non la bande n'est pas altérée mais c'était la tête du lecteur de bande qui était poussiereux , d'ailleurs le clignotant 'clean' n'arretait pas de clignoter ( quelle redondance :yes: )

Donc avec une dds cleaning cartridge , j'ai nettoyé la tete du lecteur de bande et puis j'ai réussi à recopier le back up ( contenu dans le DAT ) sur le disque de mon serveur .

Ce qu'il faut savoir c'est que ce qui a été back upé ( avec la commande ufsdump ) faisait initialement 36 giga . Alors , je ne pourrais pas dire combien le back up pesait dans le DAT , mais ce qui est sur c'est que ce que j'ai recopié de la DAT sur mon serveur ne pese que 1giga. Alors , il y a deux solutions : soit lors du back up avec la commande ufsdump , il ya eu un rajout d'une option de compression , soit je n 'est pas reussi a copier tout le contenu du DAT .

D'apres vous quelle est la bonne reponse .

PS: c'est sur qu'il y a eu une compression , parce que le DAT à une taille de 20 giga alors que ce qui a été back upé faisait 36 giga au départ . Ce que j'aimerai savoir surtout , c'est :

1) Quelle est l'option qui permet cette compression avec ufsdump ?

2) Comment connaitre la taille du contenu de mon DAT ?

3) Normalement , les données sont contenues dans le DAT sous forme de fichiers .dump ; à raison d'un .dump par partition . Alors, sachant que je recopie le contenu du DAT sur mon serveur grace à la commande ufsrestore; ufsrestore "dédump" t il les .dump avant de les recopier dans le serveur ?

J'espere avoir été assez clair !

PS2: si c'est pas assez clair , me dire les points flous pour que je les reformule .

Merci pour toute contribution . :iloveyou:

Link to comment
Share on other sites

Ben à mon avis, c'est sur la bande qu'il ne trouve pas ce fichier ...

Je ne connais pas les bandes DAT, mais je chercherai d'une erreur de lecture.

La bande n'a pas été altérée ? Elle est ancienne ?

Salut Fabien29200 :|

Une question un ptit peu plus technique cette fois ci :francais: :

Comment faire pour recuperer le contenu ( sous forme d'arborescence : '/' , '/ home' , '/in' ... ) d'un DAT , qui a été back upé par des tar successifs sous linux Redhat , à partir d'une machine qui tourne sous Unix Solaris 8 ?

Merci d'avance :francais:

Link to comment
Share on other sites

Salut,

Avant de lancer le tar xf, lances tar tf, ca devrait afficher le contenu de la bande, pour vérifier que tu as tout, et que ca te convient.

Comme ca te liste les fichiers, tu devrais voir les arborescences il me semble.

;)

Link to comment
Share on other sites

Ben à mon avis, c'est sur la bande qu'il ne trouve pas ce fichier ...

Je ne connais pas les bandes DAT, mais je chercherai d'une erreur de lecture.

La bande n'a pas été altérée ? Elle est ancienne ?

Salut Fabien29200 :eeek2:

Une question un ptit peu plus technique cette fois ci :mdr: :

Comment faire pour recuperer le contenu ( sous forme d'arborescence : '/' , '/ home' , '/in' ... ) d'un DAT , qui a été back upé par des tar successifs sous linux Redhat , à partir d'une machine qui tourne sous Unix Solaris 8 ?

Merci d'avance :-D

tar successifs (si j'ai bien compris la question) :

si il y a plusieurs enregistrements à la suite sur une bande DAT, la commande "tar" sans option ou avec /dev/rmt/0 (ou 0c) ne permet de voir que le premier enregistrement.

plusieurs solutions pour voir la suite, en utilisant le device norewind (idem avec un n en plus à la fin, par exemple /dev/rmt/0n) .

soit faire plusieurs tar (ou ufsrestore) consécutifs permettent d'accéder à plusieurs enregistrements consécutifs.

soit utiliser "mt -f /dev/rmt/0n fsf 1", pour se placer sur un enregistrement particulier (le 2ème enreg de la bande dans cet exemple - détail : man mt)

Link to comment
Share on other sites

Ben à mon avis, c'est sur la bande qu'il ne trouve pas ce fichier ...

Je ne connais pas les bandes DAT, mais je chercherai d'une erreur de lecture.

La bande n'a pas été altérée ? Elle est ancienne ?

Salut Fabien29200 :craint:

Une question un ptit peu plus technique cette fois ci :D :

Comment faire pour recuperer le contenu ( sous forme d'arborescence : '/' , '/ home' , '/in' ... ) d'un DAT , qui a été back upé par des tar successifs sous linux Redhat , à partir d'une machine qui tourne sous Unix Solaris 8 ?

Merci d'avance :inpactitude:

tar successifs (si j'ai bien compris la question) :

si il y a plusieurs enregistrements à la suite sur une bande DAT, la commande "tar" sans option ou avec /dev/rmt/0 (ou 0c) ne permet de voir que le premier enregistrement.

plusieurs solutions pour voir la suite, en utilisant le device norewind (idem avec un n en plus à la fin, par exemple /dev/rmt/0n) .

soit faire plusieurs tar (ou ufsrestore) consécutifs permettent d'accéder à plusieurs enregistrements consécutifs.

soit utiliser "mt -f /dev/rmt/0n fsf 1", pour se placer sur un enregistrement particulier (le 2ème enreg de la bande dans cet exemple - détail : man mt)

Salut Fabien29200 :byebye:

Au fait ce que je voudrais faire dans un premier temps , c'est juste copier le contenu intégral des DAT sur mon serveur sans me soucier de la commande qui a servi pour back-upé les DAT . Pour cela , je pense que la commande idéale , c'est dd :

dd if=/dev/rmt/0 of=/machin/bidule/copie.dd

Mais ca ne marche pas comme je l'espere vu que ça me sort un message d'erreur :

read: not enough space

0+0 records in

0+0 records out

Ce qui est faux , vu que j'ai plus de 23giga de libre dans /machin/bidule ; donc le problème provient d'ailleurs mais je ne vois pas de quoi . :yes:

Merci d'avance :inpactitude:

Link to comment
Share on other sites

Salut,

Avant de lancer le tar xf, lances tar tf, ca devrait afficher le contenu de la bande, pour vérifier que tu as tout, et que ca te convient.

Comme ca te liste les fichiers, tu devrais voir les arborescences il me semble.

:eeek2:

Salut Dohier :mdr:

J'ai un ptit soucis avec les dat -> check mon post #9 stp :chinois:

de plus quand j'utilise la commande tar avec la ligne suivante :

tar cvf copie.tar /dev/rmt/0

J'ai le mesage d'erreur suivant :

a /dev/rmt/0 symbolic link to ../../devices/pci@1f,4000/scsi@2/st@5,0:

et quand je lance la ligne de commande suivante :

tar cvf /dev/rmt/0 .

J'ai l'erreur suivante:

tar: /dev/rmt/0 /permission denied

:zarb::|

Please help :fou:

Link to comment
Share on other sites

Dans ta deuxième ligne tu tentes de faire un tar du dossier courant dans le device de la bande. Forcément ça ne fonctionne pas bien.

Tu mélange un peut tout.

Soit tu montes ton device et tu utilise tar, cpio, cp etc. (typiquement dans /mnt /cdrom etc.)

Soit tu utilise le block device (typiquement /dev ou /device) ou une iso et là c'est dd.

Link to comment
Share on other sites

Dans ta deuxième ligne tu tentes de faire un tar du dossier courant dans le device de la bande. Forcément ça ne fonctionne pas bien.

Tu mélange un peut tout.

Soit tu montes ton device et tu utilise tar, cpio, cp etc. (typiquement dans /mnt /cdrom etc.)

Soit tu utilise le block device (typiquement /dev ou /device) ou une iso et là c'est dd.

le soucis c'est que lorsque j'essaie de mounter le /dev/rmt/0 ( lecteur de bande ) :

mount /dev/rmt/0 /mnt/point_de_montage

j'obtiens le message d'erreur suivant :

mount: /dev/rmt/0 not a block device

:transpi:

Link to comment
Share on other sites

Tu es sûr que c'est le bon node ?

file /dev/rmt/0

J'ai déjà utilisé /dev/rmt/0 avec la commande ufsrestore pour les bandes back upées avec ufsdump et ca marche très bien ( donc pour moi c'est bien l'adresse du lecteur de bande DAT )

Pour ce qui est de la commande file /dev/rmt/0 , elle me donne le resultat suivant :

/dev/rmt/0: character special (33/392)

Link to comment
Share on other sites

Tu es sûr que c'est le bon node ?

file /dev/rmt/0

Salut Theocrite ,

Moi , ce que je voudrais , c'est pouvoir copier le contenu de ma bande DAT sans avoir à me soucier de la commande qui a servi au back up . Je pense que la commande idéale pour cela est dd . Mon lecteur de bande correspond au device suivant : /dev/rmt/0

donc je lance la ligne de commande pour récuperer le contenu de la DAT ( environ 2giga ) :

dd if=/dev/rmt/0 of=/machin/bidule/copie.dd

Mais ca ne marche pas comme je l'espere vu que ça me sort un message d'erreur :

read: not enough space

0+0 records in

0+0 records out

Ce qui est faux , vu que j'ai plus de 23giga de libre dans /machin/bidule ; donc le problème provient d'ailleurs mais je ne vois pas de quoi .

Merci d'avance

PS: lorsque j'essaie la ligne de commande pour copier un fichier trop petit ( <512 octets ) de la DAT vers le serveur , j'ai un message d'erreur , lorsque j'essaie la ligne de commande pour copier un fichier de taille moyenne ( 10 Mo ) de la DAT vers le serveur , la copie se fait bien , et lorsque j'essaie la ligne de commande pour copier un fichier tres grand ( environ 2 Giga ) de la DAT vers le serveur , j'ai un message d'erreur ci-dessus ( read: not enough ... )

Please help

Link to comment
Share on other sites

et avec ça ?

dd if=/dev/rmt/0 bs=256k count=1 of=/machin/bidule/copie.dd

Merci Fabien29200 pour ta réponse .

J'ai lancé la ligne de commande que tu m'a dite et voila ce que ca me donne :

mt -f /dev/rmt/0 rewind #pour rembobiner la bande DAT

dd if=/dev/rmt/0 bs=256k count=1 of=test0.dd

0+1 records in

0+1 records out

Peux tu m'expliquer à quoi sert bs=256k et count=1 , peut etre que je comprendrais mieux comment les utiliser .

merci beaucoup

Link to comment
Share on other sites

Je n'ai aucune idée de ce que ça fait .... J'ai tout simplement trouvé cette ligne en allant sous Google.

un man dd te donnera sûrement des réponses.

Mais d'instinct je dirai que c'est du au fait que la bande ne doit se lire que séquentiellement.

Peut être que par défaut dd ne lit pas forcément les données dans l'ordre où elles sont écrites.

Link to comment
Share on other sites

bs=nombre

Lire et écrire le nombre indiqué d'octets en une fois. A priorité sur ibs et obs.

count=nombre

Copier seulement le nombre indiqué de blocs (dont la taille est fournie par ibs).

En fait, ça impose de lire bloc par bloc. Ce qui doit mieux fonctionner avec le driver de lecture.

Link to comment
Share on other sites

J'ai déjà essayé de récupérer des données depuis un lecteur DAT 12/24 Go en utilisant dd ou cp simplement vers le /dev/st0 mais ça ne fonctionnait pas... Avec tar ça fonctionnait bien.

D'après ce que j'avais vu, c'était le fait que l'enregistrement des données est fait de manière séquentielle sur une bande et dd n'est pas conçu pour lire de cette façon. Tar est par contre adapté pour la lecture des données sur un bande ! De plus, par défaut la taille des blocs que tar utilise pour faire la sauvegarde est différente d'une taille de bloc sur un disque dur, peut-être en spécifiant le bon bs= que tu pourais fonctionner avec dd, mais si la sauvegarde a été fait avec tar, il est préférable de restaurer avec tar.

Voici le bash script que j'utilise pour restaurer mes données de façon complète vers un dossier temporaire:

RESTP="/temporaire"
mkdir $RESTP
tar -x -z -v -p -f /dev/st0 -C $RESTP

---------------------------------

Et voici le bash script utilisé lors de la sauvegarde des données qui étaient dans le dossier /serveur:

tar -c -z -f /dev/st0 -C / serveur

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...