NT OS Loader + Linux mini-HOWTO

Bernd Reichert <reichert@dial.eunet.ch>, Svensk översättning Jim Heikkinen <jimh@swipnet.se> v1.11, 2 September 1997 (översatt 8 Augusti 1998)

1 Inledning

Detta dokument beskriver hur Windows NTs boot loader används för att starta Linux. Beskrivningen har testats med Windows NT 4.0 WS och Linux 2.0.

2 Hur fungerar NTs OS loader?

NT OS loader föredrar att det andra operativsystemets bootsektor finns tillgängligt som en fil. OS loader läser filen och startar det valda operativsystemet, dvs antingen Windows NT i olika lägen eller andra operativsystem.

3 Tips om installation av Windows NT och Linux på samma dator

3.1 Windows NT-installation

Försök att installera Windows NT först. Om du vill använda NTFS på din Windows NT-partition, tänk på att dagens produktionsversioner av Linux inte kan läsa NTFS-partitioner. En alfadrivrutin som kan

läsa NTFS-partitioner finns tillgänglig på http://www.informatik.hu-berlin.de/~loewis/ntfs. För att

utbyta data mellan Windows NT och Linux kan du skapa en separat FAT-partition eller använda DOSformaterade disketter.

3.2 Partitionering

Det finns en annan Mini-howto som rekommenderar att man inte använder NTs ”Disk Administrator” för att skapa Linux swap- och rootpartitioner. Det duger dock för att kontrollera det fria utrymmet. Även i denna Mini-howto rekommenderas att man istället använder Linux fdisk.

3.3 Linuxinstallation

Starta Linux från disketter och skapa swap- och rootpartitionerna. Fdisk ser NTFS-partitionen som en HPFS-partition, detta är helt i sin ordning.

Starta om igen från disketterna och installera Linux som du vill.

Om du under installationen föreslås att montera HPFS-partitionen: Ignorera det.

3.4 Lilo

När installationen når Lilo-sektionen, ange din Linux-rootpartition som startenhet. Detta pga att Master Boot Record (MBR) på din hårddisk kontrolleras av Windows NT. Detta innebär att root-värdet och boot-värdet i /etc/lilo.conf har samma värde. Om du har en IDE-hårddisk och din Linuxpartition är hårddiskens andra partition så ser /etc/lilo.conf ut så här:

     boot=/dev/hda2

Om du har två hårddiskar och Linux på den första partitionen på den andra hårddisken ser /etc/lilo.conf ut så här:

     boot=/dev/hdb1

Kör Lilo med en kernel som passar ditt system. Testa kerneln genom att starta från diskett om du är osäker.

Om du inte kan starta Windows NT nu har du ett problem. Förhoppningsvis har du inte glömt att skapa en reparationsdiskett.

4 Bootpart

Det finns ett NT-program kallat Bootpart skrivet av G. Vollant med vilket du kan åstadkomma samma resultat som i följande två punkter. Bootpart finns på

http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

Om du vill veta hur saker och ting hänger ihop, följ punkt 5 och 6.

5 Linuxdelen

Innan NT-delen är klar måste du starta från disketter.

Nu skall du kopiera bootsektorn från rootpartitionen i Linux. Om du har /dev/hda2 som Linuxpartition kan du köra dd som nedan:

     # dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Om bootsect.lnx är större än 512 bytes är det något fel.

Kopiera bootsect.lnx till en DOS-formaterad diskett om det är så du brukar flytta filer till din NTFSpartition.

Du kan kopiera den så här:

     # mcopy /bootsect.lnx a:

eller så här:

     # mount -t msdos /dev/fd0 /mnt
     # copy /bootsect.lnx /mnt
     # umount /mnt

6 Windows NT-delen

Kopiera filen från disketten till C:\\bootsect.lnx. Hur man gör det finns det ingen anledning att beskriva.

c:\\boot.ini är för Windows NT vad lilo.conf är för Linux. Ta bort systemattributet och skrivskyddet från filen innan du ändrar den med:

     C:\attrib -s -r c:\boot.ini

Redigera nu boot.ini med en texteditor, t ex notepad, enligt följande:

     [boot loader]
     timeout=30
     default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
     [operating systems]
     multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
     multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
     C:\BOOTSECT.LNX="Linux"

I ovanstående exempel är den sista raden den enda skillnaden mot den ursprungliga filen. Efter att du sparat filen kan du återställa system- och skrivskyddsattributen för boot.ini med:

     C:\attrib +s +r c:\boot.ini

Nu kommer du, efter omstart av Windows NT, att se följande:

       OS Loader V4.00
       Please select the operating system to start:
       Windows NT Workstation Version 4.0
       Windows NT Workstation Version 4.0 [VGA mode]
       Linux
     Välj Linux och...
       LILO loading zImage ....

7 Kan behöva upprepas

Varje gång bootsektorn på din Linuxpartition ändras måste du kopiera bootsect.lnx till C:\BOOTSECT.LNX på nytt. Detta inträffar t ex när du installerar en ny kernel med Lilo. Detta innebär att den här tekniken för start av operativsystem inte är så lämplig för ofta återkommande kerneltester.

8 Problemlösning

Om det inte fungerar som väntat, prova att starta med diskett. Med /dev/hdb1 som Linuxpartition ser

/etc/lilo.conf ut som följer:
     root=/dev/hdb1
     boot=/dev/fd0

Kör Lilo med en diskett i.. Försök nu att starta från disketten Om Linux på /dev/hdb1 inte startar nu, kommer inte heller Windows NTs OS loader att kunna starta det. Ser du massa 01 01 01 01 går det inte att komma åt din rootdisk. Kontrollera i bios att alla dina hårddiskar finns med där.

Om du lyckas starta Linux från diskett, kan du kopiera bootsektorn på nytt med:

     # dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

Behåll disketten som nöddiskett om din Windows NT-installation skulle sluta fungera.

9 Referenser

• The Linux+WindowsNT mini-HOWTO

• The FAQ for FreeBSD 2.X

10 Tillkännagivanden

• Tack till Xiaoming Yi <z3c20@ttacs.ttu.edu> för tipset om att procedurerna fungerar även med andra hårddiskar än den första.

• Tack till Frank Dennler <Frank.Dennler@zkb.ch> för diskettricket.

11 Feedback

Alla kommentarer är välkomna.