Bijdrage van Marc Tanguy (mtanguy@ens.uvsq.fr), 2001-09-27
Er zijn in wezen twee manieren om hier achter te komen:
Als je een adaptec scsi-kaart hebt (2940u2, 29160, 39160), gebruik je simpelweg de modus 'diagnose' (BIOS v3.10.0 aan te bevelen). Het moet worden geactiveerd in het BIOS-menu van de scsi-kaart. Vervolgens wacht je tot je iets te zien krijgt als:
... | ID | LUN | Vendor | Product | Rev | Size | 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 |
Als je geen adaptec kaart hebt, dan moet je weten wat de 'booting' disk is (gewoonlijk ID 0, maar niet noodzakelijk, het kan worden gedefinieerd in de BIOS van de scsi-kaart) waar LILO is te vinden en wordt gestart: dit is de eerste disk, dus met nummer 0x80. Daarna is het erg simpel, de BIOS volgt de ID's.
Bijvoorbeeld:
ID 0 -> boot -> 0x80 ID 1 -> empty ID 2 -> disk -> 0x81 ID 3 -> disk -> 0x82
of
ID 0 -> disk -> 0x81 ID 1 -> empty ID 2 -> disk -> 0x82 ID 3 -> boot -> 0x80 ID 4 -> disk -> 0x83
Bij dit deel maakt het helemaal niet uit wat op de scsi-disks is geïnstalleerd. Maar als je gebruik maakt van een ID dat hoger is dan die van de SCSI-adapter dan kan het een probleem vormen. Dus je moet altijd proberen het ID van de SCSI-adapter in te stellen na het ID van de SCSI-devices.
OK, maar NT moet de eerste te booten disk zijn, dus wil ik het in 0x80, maar ik heb LILO en een volledige ext2 disk reeds op 0x80 en mijn NT disk is in 0x83. Hoe kan ik linux en NT wisselen? Dit is heel eenvoudig: je moet de BIOS gewoon vertellen dat de NT disk nu 0x80 is en de Linux disk 0x83.
other=/dev/sdd1 label=nt map-drive = 0x83 to = 0x80 map-drive = 0x80 to = 0x83
Deze wijziging produceert een waarschuwing:
Warning: BIOS drive 0x8? may not be accessible
maar als je weet wat je aan het doen bent, dan zal het zonder problemen werken.
Ik gebruikte het bij deze configuratie met Red Hat Linux 7.1 en Windows 2000 Pro :
Name Flags Part Type FS Type [Label] Size (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
Mijn volledige /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
Ik heb zojuis een nieuwe scsi-disk aangesloten, en nu weigert LILO te booten, wat is er aan de hand?
Wanneer je een disk aansluit, moet je voorzichtig zijn met de ID's. Als je een disk toevoegt tussen reeds aangesloten disks, worden de BIOS nummers verwisseld:
Ervoor ----> Erna 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 !!
Veranderen je BIOS id's, dan moet je ze opnieuw toekennen.