Avanti Indietro Indice

6. Dischi

Questa sezione dà informazioni specifiche sull'uso dei disk drive.

6.1 Hardware supportato e non supportato

Tutti i dispositivi SCSI ad accesso diretto con dimensione dei blocchi pari a 256, 512, o 1024 byte dovrebbero funzionare. Altre dimensioni dei blocchi non funzioneranno (notate che spesso si può ovviare a ciò cambiando l'ampiezza dei blocchi e/o dei settori usando il comando SCSI MODE SELECT).

Si intende con ``ampiezza di un settore'' il numero di byte di dati allocati per settore su un dispositivo, ad esempio i CD-ROM usano un'ampiezza di settore di 2048 byte.

Si intende con ``ampiezza dei blocchi'' la grandezza dei blocchi logici usati come interfaccia con il dispositivo. Anche se solitamente questa misura coincide con l'ampiezza di settore, alcuni dispositivi mappano più settori fisici più piccoli (ad esempio, 256 byte nel caso del drive 55 M Syquest) a blocchi logici più grandi o viceversa (ad esempio, blocchi di 512 byte su drive CD-ROM SUN compatibili).

Dispositivi per dischi removibili, inclusi Bernoulis, flopticals, dispositivi MO e Syquest.

In teoria dovrebbero funzionare drive con ampiezza fino a un terabyte. Non c'è alcun problema con i piccoli drive 9G.

6.2 Problemi comuni

Messaggio ``Cylinder > 1024''

Quando si fa una partizione, si riceve un messaggio di avviso a proposito di ``cylinder > 1024'', oppure non si è in grado di eseguire il boot da una partizione che include un cilindro logico superiore al 1024.

Questa è una limitazione BIOS.

Vedete ``Dischi'' Geometria e Partizionare i dischi per una spiegazione. Per spiegazioni vedete "Geometria" dei dischi e "Partizione" dei dischi.

Non siete in grado di fare una partizione su "/dev/hd*"

"/dev/hd*" non sono dispositivi SCSI, /dev/sd* lo sono.

Per i giusti nomi dei dispositivi e per le procedure di partizione vedete File di dispositivo e ``Dischi'' Geometria e Partizionare i dischi.

Non riuscite a espellere il supporto da un dispositivo a dischi removibili

Linux tenta di impedire l'espulsione dal drive quando viene montato un dispositivo per prevenire problemi sul filesystem causati da un cambiamento del supporto.

Smontate i dischi prima di espellerli.

Non riuscite ad eseguire il boot usando LILO da un disco SCSI

In alcuni casi il driver SCSI e il BIOS si trovano in disaccordo a proposito della corretta mappatura BIOS da utilizzare, e il tutto si risolve con il LILO bloccato dopo 'LI' al momento del boot e/o con altri problemi.

Per aggirare questo problema dovrete determinare la mappatura della geometria usata sotto DOS, ed inserire i dati per il vostro disco in /etc/lilo/disktab.

Altrimenti potreste usare l'opzione "linear" nel jfile di configurazione.

Fdisk risponde con

You must set heads sectors and cylinders.
You can do this from the extra functions menu.

e la geometria del disco non viene 'ricordata' quando il fdisk viene eseguito di nuovo.

Vedete Partizionare i dischi.

Solo un drive viene individuato su una bridge board con più drive connessi

Linux non cercherà LUN al di fuori di zero su dispositivi SCSI anteriori alla revisione ANSI SCSI 1. Se desiderate che siano individuati dispositivi su LUN diversi, dovrete modificare scan_scsis() in drivers/scsi/scsi.c.

Il sistema si blocca quando effettua lo swap

Pensiamo che questo inconveniente sia stato risolto, provate ad aggiornare all'1.1.38.

I dischi Conner CFP1060S vengono corrotti

Questo è dovuto a un errore di microcodice nei codici di read-ahead e caching.

>Dal supporto tecnico di Soenke Behrens di Conner:

Nel corso delle ultime settimane, abbiamo ricevuto parecchie telefonate
da clienti che asserivano di avere seri problemi con i drive SCSI 
CFP1060x 1GB usando il sistema operativo Linux. Sintomi erano filesystem
corrotti (inode danneggiati) riportati da e2fsck a ogni boot di sistema 
e errori simili. 

C'è ora disponibile un rimedio per i clienti con un CFP1060x (revisioni 
di microcodice 9WA1.62/1.66/1.68) e Linux. Per applicare l'aggiornamento, 
avrete bisogno di un disco DOS di boot e driver ASPI in grado di accedere 
al disco fisso. L'aggiornamento carica nella RAM non volatile del drive 
un nuovo codice di queuing e lookahead.

Se avete problemi con un disco che ha un revisione di microcodice 
9WA1.60, dovrete contattare il più vicino centro di assistenza Conner per 
far aggiornare per il vostro disco. Trovate la revisione del microcodice 
sull'etichetta del drive e, sul lato inferiore del drive, su un'etichetta 
posta su uno degli integrati.

Se pensate di essere in grado di fare da soli l'aggiornamento,
mettetevi in contatto col Supporto Tecnico Conner e fatevi 
preparare la vostra revisione di microcodice. Potete contattare il 
Supporto Tecnico Conner per l'Europa al +44-1294-315333, mentre per gli 
USA al 1-800-4CONNER.

Saluti
Soenke Behrens
European Technical Support

6.3 File di dispositivo

I dischi SCSI usano dispositivi a blocchi con numero primario 8, e non ci sono dispositivi "raw" alla BSD.

A ciascun disco SCSI sono destinati 16 numeri secondari, dove numero secondario 0 (modulo 16) rappresenta l'intero disco, i numeri secondari da 1 a 4 (modulo 16) le 4 principali partizioni, e i numeri secondari da 5 a 15 (modulo 16) le partizioni estese.

Ad esempio, una configurazione potrebbe essere (con un solo adattatore host)

Dispositivo             Target, Lun     disco SCSI
84M Seagate             0       0       /dev/sda
SCSI->SMD bridge disk 0 3       0       /dev/sdb
SCSI->SMD bridge disk 1 3       1       /dev/sdc
Wangtek tape            4       0       none
213M Maxtor             6       0       /dev/sdd

Ecc.

La convenzione standard per i nomi è

/dev/sd{lettera} per l'intero dispositivo ((secondario modulo 16) == 0) /dev/sd{lettera}{partizione} per le partizioni su quel dispositivo (1 <= (secondario modulo 16) <= 15)

Ad esempio:

/dev/sda        block device major 8 minor 0
/dev/sda1       block device major 8 minor 1
/dev/sda2       block device major 8 minor 2
/dev/sdb        block device major 8 minor 16

ecc.

6.4 Partizionare il disco

Potete eseguire la partizione dei vostri dischi SCSI usando un programma di partizione di vostra scelta, sotto DOS, OS/2, Linux o qualsiasi altro sistema operativo che supporti la schema standard di partizione.

Il metodo corretto di eseguire il programma Linux fdisk è di specificare il dispositivo sulla riga dei comandi. Ad esempio per eseguire la partizione del primo disco SCSI:

fdisk /dev/sda

Il programma potrebbe essere predisposto per usare /dev/hda, che non è un disco SCSI, se non specificate esplicitamente il dispositivo.

In alcuni casi, fdisk risponderà con:

You must set heads sectors and cylinders.
You can do this from the extra functions menu.

Command (m for help):
(dovete impostare il numero di testine, settori e cilindri. Potete farlo dal menu ``extra functions'')

e/o dà un messaggio per il fatto che HDIO_REQ o HDIO_GETGEO ioctl hanno fallito. In questi casi, dovete specificare manualmente la geometria del disco, come viene spiegato in Geometria del disco, quando state eseguendo fdisk, e anche in /etc/disktab se volete eseguire da quel disco il boot del kernel con LILO.

Se avete specificato manualmente la geometria del disco, i tentativi successivi di eseguire fdisk daranno gli stessi messaggi di errore. Questo è normale, poiché i PC non immagazzinano le informazioni sulla geometria dei dischi nella tavola delle partizioni. Di per sè, però, questo NON CAUSERÀ ALCUN PROBLEMA, e voi non avrete alcun problema nell'accedere alle partizioni che avrete creato sul drive di Linux. Codici malamente realizzati di alcune ditte avranno dei problemi al riguardo, nel qual caso dovreste mettervi in contatto con la ditta e insistere perché il codice venga corretto.

In alcuni casi, riceverete un messaggio di avviso a proposito di una partizione che termina al di là del cilindro 1024. Se create una di queste partizioni non sarete in grado di eseguire il boot del kernel Linux da quella partizione usando LILO. Notate comunque che questa restrizione non preclude la creazione di una partizione di root parzialmente o interamente al di sopra del cilindro 1024, poiché è possibile creare una piccola partizione /boot sotto il cilindro 1024 oppure eseguire il boot dei kernel dalle partizioni esistenti.

6.5 Geometria del disco

Sotto Linux ciascun disco viene visto nel modo in cui lo vede l'adattatore host SCSI: N blocchi, numerati da 0 a N-1, tutti liberi da errori, mentre DOS e BIOS, essendo ``nati prima'' dei dischi intelligenti, applicano una mappatura arbitraria di testine / cilindri / settori a questo metodo di indirizzamento lineare.

Ciò può far sorgere un problema nel momento in cui viene fatta una partizione dei drive sotto Linux, poiché non c'è alcun modo comune di ottenere l'idea che DOS e BIOS hanno di questa mappatura della geometria. Nella maggior parte dei casi, un HDIO_GETGEO ioctl() può essere implementato in modo da restituire questa mappatura. Sfortunatamente, nei casi in cui il fabbricante (ad esempio Seagate) ha scelto una mappatura perversa, non-standard e non documentata, ciò non è possibile, e la geometria deve essere specificata manualmente.

Se è richiesta la specificazione manuale della geometria, avete più alternative a disposizione:

  1. Se non vi interessa usare DOS, o eseguire con LILO il boot del kernel dal drive, create una mappatura tale che testine * cilindri * settori * 512 < ampiezza del vostro drive in byte (un megabyte è definito come 2^20 byte).
    1 <= testine <= 256
    1 <= cilindri <= 1024
    1 <= settori <= 63
    
  2. Usate la mappatura BIOS. In alcuni casi, questo significherà riconfigurare il disco ponendolo all'ID SCSI 0, e disattivare il secondo drive IDE (se lo possedete).

Altrimenti potete usare un programma come NU, o potete usare il seguente programma:

begin 664 dparam.com
MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U
M1(I7`H#J,(#Z`7<Y@,*`M`C-$PCD=3-14HC()#\PY.@R`.@J`%J(\/[`,.3H
M)0#H'0!8AL2Q!M+L0.@7`+K"`;0)S2'#NIP!ZR"ZQ0'K&[K5`>L6N]T!,=*Y
M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O
L<B`@9'!A<F%M(#!X.#$-"B1);G9A;&ED(&1R:79E#0HD("`D```````D``!O
`
end

Quando lo eseguite stampa i settori, le testine, e i cilindri del drive il cui indirizzo BIOS è stato specificato sulla linea di comando (0x80 è il primo disco, 0x81 il secondo).

Ad esempio, dparam 0x80

60      17      1007

significa che C: ha 60 settori, 17 testine e 1007 cilindri.


Avanti Indietro Indice