Avanti Indietro Indice

8. Nastri

Questa sezione dà informazioni specifiche sui drive per nastri scsi.

8.1 Hardware supportato e non supportato

Drive che usano una ampiezza di blocco, sia fissa che variabile, minore dell'ampiezza del buffer del driver (definita a 32 K nei sorgenti delle distribuzioni) sono supportati.

I parametri (ampiezza dei blocchi, buffer, densità) sono impostati con ioctl (solitamente con il programma mt), e rimangono attivi dopo che il dispositivo è chiuso e riaperto.

Virtualmente tutti i drive dovrebbero funzionare, inclusi:

8.2 Problemi comuni

Il drive del nastro non è riconosciuto al momento del boot

Provate a eseguire il boot con un nastro nel drive.

Nastri con più file non sono letti nel modo giusto

Quando si legge un nastro con più file, il primo tar ha successo, il secondo fallisce silenziosamente, e riprovare il secondo tar ha successo.

Programmi user level, come il tar, non capiscono i mark dei file. Il primo tar legge fino alla fine del file. Il secondo cerca di leggere all'altezza del mark del file, non trova nulla, ma il nastro si muove al di là del mark. Il terzo tar ha successo perché il nastro è all'inizio del file successivo.

Usate mt su dispositivi che non riavvolgono per spostarvi al file successivo.

La decompressione fallisce

I programmi di decompressione non sono in grado di maneggiare gli zero che riempiono l'ultimo blocco del file.

Per prevenire avvertimenti ed errori, mettete i vostri file compressi tutti insieme in un file .tar; ad esempio, piuttosto che fare:

tar cfvz /dev/nrst0 file.1 file.2 ...

eseguite:

tar cfvz tmp.tar.z file.1 file.2 ...

tar cf /dev/nrst0 tmp.tar.z

Problemi nel trasferire nastri da/a altri sistemi

Non siete in grado di leggere un nastro scritto con un sistema operativo diverso, oppure un altro sistema operativo non è in grado di leggere un nastro scritto in Linux.

Sistemi diversi spesso usano diverse ampiezze di blocco. Su un dispositivo a nastro che usa un'ampiezza di blocco fissa, vi imbatterete in errori nel momento in cui vi accingerete a leggere blocchi scritti utilizzando un'ampiezza di blocco diversa.

Per leggere questi nastri dovete impostare l'ampiezza del blocco del lettore in modo che corrisponda con l'ampiezza del blocco usata quando il nastro è stato scritto.

NOTA: questa è l'ampiezza di blocco hardware, non il fattore di blocco usato con tar, dump ecc.

Potete farlo con il comando mt -

mt setblk <dimensione>

o

mt setblk 0

per ottenere il supporto per blocchi di ampiezza variabile.

Notate che queste opzioni di mt non sono supportate sotto la versione GNU di mt che è inclusa in qualche distribuzione di Linux. Dovete usare invece il comando Linux SCSI mt derivato da BSD. I sorgenti dovrebbero essere disponibili in:

  
tsx-11.mit.edu:/pub/linux/ALPHA/scsi

Notate inoltre che per default, ST_BUFFER_BLOCKS (definito in /usr/src/linux/drivers/scsi/st_options.h, nei kernel più recenti, st.c in quelli più vecchi) è impostato in modo da permettere al massimo un'ampiezza di buffer di 32 K, dovrete modificare il sorgente per usare blocchi più grossi.

Messaggio di errore "No such device"

Tutti i tentativi di accedere al nastro finiscono in un

"No such device"

o messaggi di errori simili. Controllate la tipologia del vostro dispositivo a nastro, DEVE essere un dispositivo a carattere con numeri primario e secondario che combaciano con quelli specificati in File di dispositivo.

La lettura di nastri a certe densità funziona, mentre la scrittura no.

Molti lettori di nastri supportano la lettura a densità più basse per mantenere la compatibilità con hardware più vecchio, ma non sono in grado di scrivere alle stesse densità.

Questo è in particolare il caso dei lettori QIC che leggono vecchi nastri 60 M, ma scrivono solo i nuovi formati 120, 150, 250, e 525 M.

Il riposizionamento del nastro blocca l'accesso a tutti i dispositivi SCSI

Questo problema è più comune con driver SCSI che supportano solo un comando alla volta (vedete Dispositivi multipli per una spiegazione, e Guida all'acquisto: confronto delle caratteristiche per vedere quali driver hanno questa limitazione), comunque ci potrebbero essere dei lettori di nastri che si rifiutano di disconnettersi.

In entrambi i casi potete aggirare il problema modificando il file drivers/scsi/st.c; aggiungete:

#define ST_NOWAIT

all'inizio e ricompilate il kernel.

Notate che questo fa sì che eventuali condizioni di errore vengano riportate solo quando il successivo comando SCSI viene eseguito. Perciò potreste voler fare qualcosa tipo:

mt status

dopo un comando mt di posizionamento di un file, così che non sovrascrivete file di nastro se il comando di posizionamento è fallito.

Potreste anche prendere in considerazione il passaggio a una scheda SCSI meglio supportata o a un nuovo lettore di nastri se avete bisogno di usare questo stratagemma e dovete scrivere molti file su nastro.

8.3 File di device

I nastri SCSI usano un dispositivo a caratteri con numero primario 9.

A causa di vincoli imposti dall'uso da parte di Linux di un dev_t di 16 bit con soli 8 bit allocati al numero secondario, i numeri secondario del nastro SCSI sono assegnati in maniera dinamica cominciando dal più basso HOST/ID/LUN SCSI.

I dispositivi in grado di riavvolgere sono numerati da 0, dove il primo nastro SCSI, /dev/rst0, è c 9 0, il secondo, /dev/rst1, c 9 1, eccetera. I dispositivi che non riavvolgono hanno il bit alto settato nel numero secondario, ad esempio /dev/nrst0 è c 9 128.

La convenzionale attribuzione dei nomi è:

/dev/nst{numero}       per dispositivi che non riavvolgono
/dev/st{numero}                per dispositivi che riavvolgono


Avanti Indietro Indice