LeoBenelli
Personal WebPage


MASTERIZZAZIONE

 

Per abilitare un masterizzatore sotto Linux occorre considerarlo come una periferica SCSI.

 

Per fare questo occorre compilare il Kernel con gli elementi per il riconoscimento della periferica.

 

A seconda del tipo di periferica occorre abilitare determinate cose del Kernel.

 

Sezione del Kernel

Elemento del Kernel

Modulo

SCSI

IDE

Parallelo

BLOCK

Enhanced IDE/MFM/RLL...

 

 

Y

 

BLOCK

IDE/ATAPI CDROM

ide-cd

 

M

 

BLOCK

SCSI hostadaptor emulation

ide-scsi

 

M

 

BLOCK

Loopback device

loop

M

M

M

PARIDE

Parallel port IDE device

paride

 

 

Y/M

PARIDE

Parallel port ATAPI CD-ROMs

 

 

 

M

PARIDE

Parallel port generic ATAPI

 

 

 

M

PARIDE

(select a low-level driver)

 

 

 

Y

SCSI

SCSI support

scsi_mod

Y/M

Y/M

 

SCSI

SCSI CD-ROM support

sr_mod

Y/M

Y/M

 

SCSI

Enable vendor-specific

 

Y

Y

 

SCSI

SCSI generic support

sg

Y/M

Y/M

 

SCSI

(select a low-level driver)

 

Y

 

 

FS

ISO 9660 CDROM filesystem

iso9660

Y/M

Y/M

Y/M

FS

Microsoft Joliet cdrom...

joliet

Y

Y

Y

 

ATTENZIONE ! Per masterizzatori riconosciuti al boot come Atapi occorre percorrere la strada dei moduli esterni al

Kernel

 

In caso di periferica IDE occorre fare le seguenti considerazioni :

 

Occorre in caso di scelta con funzionamento tramite moduli:

inserire in conf.modules le seguenti righe :

options ide-cd ignore=hdd # indica al modulo ide-cd di ignorare hdb
alias scd0 sr_mod # carica sr_mod all'accesso di scd0
pre-install sg modprobe ide-scsi # prima di sg, carica ide-scsi
pre-install sr_mod modprobe ide-scsi # prima di sr_mod, carica ide-scsi
pre-install ide-scsi modprobe ide-cd # prima di ide-scsi, carica ide-cd

inserire in lilo.conf l'opzione append e specificare il device da non esaminare in fase di boot, altrimenti non sara' possibile emularlo come periferica SCSI :


image=/boot/zImage-2.2.14
label=Linux
read-only
append="hdb=ide-scsi"

 

La periferica non verra' piu' vista come HD? ma come SCD? Quindi conviene ricostruire il link CDROM nella directory DEV.

 

cd /dev
rm cdrom
ln -s scd0 cdrom

 

Se tutte le impostazioni del Kernel andranno bene, al comando cdrecord -scanbus apparira' una videata simile a questa:

 

[root@localhost /root]# cdrecord –scanbus
Cdrecord release 1.8a29 Copyright (C) 1995-1999 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'HP ' 'CD-Writer+ 8100 ' '1.0g' Removable CD-ROM
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *

 

Il tipo di FileSystem porta a determinate caratteristiche :

 

Capacita'

mkisofs

mkhybrid

ISO 9660

Si

Si

RockRidge

Si

Si

El Torito

Si

Si

HFS

No

Si

Joliet

Si

Si

Multisessione

Si

Si

CD-Extra

Si

Si

 

La differenza più ovvia fra il filesystem ISO9660 e Extended-2 è che non si possono modificare i file una volta che sono stati scritti. Le limitazioni del filesystem ISO-9660 sono:

 

· solo 8 livelli di sottodirectory (contate dalla directory di più alto livello del CD) (meglio usare le estensioni RockRidge per aumentare questo numero)
· lunghezza massima dei nomi di file: 32 caratteri
· 650 MB di capacità

 

RockRidge è un'estensione che consente nomi di file più lunghi e una gerarchia di directory più profonda per i filesystem ISO-9660. Leggendo un CD-ROM con estensioni RockRidge con Linux appaiono tutte le proprietà conosciute del file come possessore, gruppo, permessi, collegamenti simbolici (simile ad un filesystem Unix). Queste estensioni non sono disponibili se si legge il CD-ROM sotto DOS o sistemi Windows.

 

El Torito El Torito serve per la creazione di CD-ROM bootabili. Anche il BIOS del tuo PC deve supportare questa caratteristica. Diciamo che, più o meno, i primi 1.44 (o 2.88 se supportato) Mbyte del CD-ROM contengono l'immagine di un floppy che hai preparato. Il BIOS considera questa immagine come un floppy di boot e da essa lo effettua (di conseguenza, durante l'avvio di questo floppy virtuale, il drive originario A: (/dev/fd0) potrebbe non essere accessibile).

 

HFS permette a un macintosh di leggere il CD-ROM come se fosse un volume HFS (il filesystem nativo di MacOS).

 

Joliet introduce nomi di file lunghi (fra le altre cose) per le nuove versioni di Windows (95, 98, NT). Che io sappia sotto DOS o Windows 3.11 ci si può scordare i nomi di file lunghi.

 

La procedura per creare un cd masterizzato e' di creare un immagine (con mkisofs per esempio) su H.D. per poi trasferirlo tramite cdrecord.

 

Per creare un'immagine su disco occorre creare una directory con tutte la struttura e files da inserire nel cd. Poi con il comando:

 

mkisofs -r -o IMAGE /tmp/DIR

 

-r indica di usare il filesystem RockRidge che permette di mantenere le informazioni sui permessi, possessore, gruppo ecc., se viene omesso tutti i files avranno tali informazioni impostate allo stesso di /tmp/DIR

IMAGE e' il nome del file da creare.

 

/tmp/DIR e' la directory sorgente

 

Per verificare il contenuto di un file immagine e' possibile gestirlo come un normale mount di un device con il comando :

 

mount -t iso9660 -o ro,loop=/dev/loop0 IMAGE /mnt/test

 

IMAGE e' il nome del file immagine

 

/mnt/test e' la directory dove verra' montato il file ( per somantarlo e' sufficiente un normale umount /mnt/test )

 

Per scrivere un CD occorre usare il programma cdrecord, ma prima occorre sapere il percorso SCSI (struttura ?.?.?), con il comando :

 

cdrecord -scanbus

 

Per scrivere un CD :

 

cdrecord -v speed=4 dev=0,0,0 -data IMAGE

 

IMAGE e' il nome del file da creare.

 

Speed indica la velocita' di masterizzazione

 

dev indica il percorso SCSI da usare

 

Se si deisdera simulare la masterizzazione aggiungere il parametro-dummy.

 

Se si deisdera creare un cd multisessione occorre aggiungere il parametro -multi, la prima volta e la volta successiva occorre indicare la posizione di partenza ( dove termina il precedente tentativo di scrittura ), il seguente script permette di eseguire cio' :

shell> NEXT_TRACK='cdrecord -msinfo dev=0,0,0'
shell>: echo $NEXT_TRACK
shell> mkisofs -R -o IMAGE -C $NEXT_TRACK -M /dev/scd0 /tmp/DIR \