Contributo di Marc Tanguy (mtanguy@ens.uvsq.fr), 27 settembre 2001
Per la verità ci sono due modi per saperlo:
Chi possiede una scheda scsi adaptec (2940u2, 29160, 39160) può semplicemente usare la modalità 'diagnose' (si raccomanda di usare un BIOS v3.10.0), che deve essere attivata dal menu del BIOS della scheda scsi. Basterà quindi aspettare di vedere qualcosa di questo genere:
... | ID | LUN | Produttore | Prodotto | Rev | Dim. | Sync | Bus | HD# |
... | 0 | 0 | QUANTUM | ATLAS10K2 | DDD6 | 17GB | 160 | 16 | 80h |
... | 1 | 0 | QUANTUM | ATLAS10K2 | DDD6 | 17GB | 160 | 16 | 81h |
... | 2 | 0 | IBM | DDRS | DC1B | 4GB | 80 | 16 | 82h |
... | 3 | 0 | IBM | DNES | SAH0 | 9GB | 80 | 16 | 83h |
Chi non possiede una scheda adaptec dovrà scoprire qual è il disco 'avviabile' (di solito quello con ID 0, ma non sempre: può essere definito nel BIOS della scheda scsi) nel quale si potrà trovare ed avviare LILO: è il primo disco, quindi avrà il numero 0x80. Dopo di che è molto facile, il BIOS segue gli ID.
Per esempio:
ID 0 -> avvio -> 0x80 ID 1 -> vuoto ID 2 -> disco -> 0x81 ID 3 -> disco -> 0x82
o
ID 0 -> disco -> 0x81 ID 1 -> vuoto ID 2 -> disco -> 0x82 ID 3 -> avvio -> 0x80 ID 4 -> disco -> 0x83
Questa parte non si preoccupa affatto di cosa c'è installato sui dischi scsi. Si noti però che si avranno problemi se si usa un ID più alto di quello dell'adattatore SCSI. Dunque si dovrà sempre cercare di impostare l'ID dell'adattatore SCSI dopo l'ID dei dispositivi SCSI.
Supponiamo che NT debba essere il primo disco avviabile, cioè con il numero 0x80, ma nella posizione 0x80 abbiamo già un disco con LILO e un file system ext2 pieno, mentre il disco con NT ha il numero 0x83. Come si possono 'scambiare' linux e NT? È molto facile: basta dire al BIOS che il disco con NT ora è il numero 0x80, mentre quello con Linux è il 0x83.
other=/dev/sdd1 label=nt map-drive = 0x83 to = 0x80 map-drive = 0x80 to = 0x83
Questo cambiamento produrrà un avviso:
Warning: BIOS drive 0x8? may not be accessible
ma sapendo ciò che si sta facendo dovrebbe funzionare senza problemi.
Io l'ho usato con una configurazione composta da una Red Hat Linux 7.1 e Windows 2000 Pro:
Nome Flag Tipo part. Tipo FS [Etichetta] Dimensione (MB) Disk Drive: /dev/sda - 0x80 sda1 Boot Primary Linux ext2 [/boot] 24.68 sda2 Primary Linux Swap 139.83 sda3 Primary Linux ext2 [/usr] 3150.29 sda4 Primary Linux ext2 [/home] 15044.04 Disk Drive: /dev/sdb - 0x81 sdb1 Primary Linux Swap 139.83 sdb2 Primary Linux ext2 [/] 3150.29 sdb3 Primary Linux ext2 [/opt] 1052.84 sdb4 Primary Linux ext2 [/public] 14015.88 Disk Drive: /dev/sdc - 0x82 sdc1 Primary Linux ext2 [/var] 1052.84 sdc2 Primary Linux ext2 [/tmp] 106.93 sdc3 Primary Linux ext2 [/cache] 1052.84 sdc4 Primary Linux ext2 [/chroot] 2352.44 Disk Drive: /dev/sdd - 0x83 sdd1 Boot Primary NTFS [WINDOWS_2000] 9162.97
Il mio file /etc/lilo.conf:
boot=/dev/sda map=/boot/map install=/boot/boot.b prompt default=Linux read-only compact image=/boot/vmlinuz label=Linux root=/dev/sdb2 other=/dev/sdd1 label=Windows map-drive = 0x83 to = 0x80 map-drive = 0x80 to = 0x83
Ho inserito un nuovo disco scsi, e ora Lilo si rifiuta di partire. Cosa sta succedendo?
Quando si inserisce un disco bisogna fare attenzione agli ID. Quando si aggiunge un disco tra due dischi già inseriti i numeri del BIOS cambiano:
Prima ----> Dopo scsi id - - BIOS id scsi id - - BIOS id ID 0 - disk - 0x80 ID 0 - disk - 0x80 ID 1 - empty ID 1 - new disk - 0x81 ID 2 - disk - 0x81 ID 2 - disk - 0x82 !!
Quando gli ID del BIOS cambiano, bisogna valutarli nuovamente.