JF-INDEX (document list of JF Project)

LILO "the Linux Loader" $B$NF0:n$K$D$$$F(B

$B:4LnIp=S(B / Taketoshi Sano, ([email protected])

$Date: 1999/10/12 08:20:24 $, ($Revision: 1.5 $)


$B$3$NJ8=q$O!"(BLILO "the Linux Loader" $B$NF0:n$K$D$$$F@bL@$9$k$b$N$G$9!#(B $B$J$*!"BP>]$H$7$F$$$k(B LILO $B$O(B ver.21 $B$*$h$S(B ver.22 $B$G$9!#(B

1. $B5/F0;~$NF0:n(B

2. /sbin/lilo $B%3%^%s%I$r

3. $BJdB-(B


1. $B5/F0;~$NF0:n(B

$B5/F0;~$K$B$3$l$i$N%3!<%I$ODL>o!"(B /boot/boot.b $B$H$$$&%U%!%$%k$NCf$KJ]B8$5$l$F$*$j!"(B $B$3$N$&$A(B 1st boot loader $B$KAjEv$9$k@hF,(B 446bytes $B$,(B "lilo" $B%3%^%s%I$Nl=j$N%V!<%H%;%/%?!<$K%$%s%9%H!<%k$5$l$^$9!#$3$N$H$-F1;~$K(B 2nd boot loader $B$d%^%C%W(B ($B%+!<%M%k0LCV>pJs(B) $B%U%!%$%k$J$I$N%G%#%9%/>e$N(B $B0LCV$r<($9(B CHS $B%"%I%l%9$,(B 1st boot loader $B$N%3!<%ICf$N%G!<%?NN0h$K5-O?$5$l$^$9!#(B

1st boot loader $B$O(B 2nd boot loader $B$r%a%b%j!<$K%m!<%I$9$k$N$,LrL\$G$9!#(B 2nd boot loader $B$O%^%C%W%U%!%$%k$r%m!<%I$7$F$=$N>pJs$r2r@O$7!"(B $B$=$N7k2L$K=>$C$F%+!<%M%k%3!<%I$r%m!<%I$7$^$9!#(B $B$^$?I,MW$J>l9g$K$O(B initrd $B$G;HMQ$9$k%k!<%H%$%a!<%8$N%m!<%I$b(B 2nd boot loader $B$,

1.1 1st boot loader

LILO $B$K$h$k%V!<%H$G$O!":G=i$K%V!<%H%;%/%?!<$N@hF,(B 446 bytes $B$K5-O?$5$l$?(B 1st boot loader $B$,(B BIOS $B$^$?$O(B MBR $B$KCV$+$l$?B>$N%V!<%H%m!<%@!<$K$h$C$F(B $B%m!<%I$5$l$^$9!#%m!<%[email protected]$7!"(B1st boot loader $B$,$B"lilo" $B%3%^%s%Ie$N0LCV(B (CHS $B%;%/%?!<%"%I%l%9(B) $B$r(B BIOS $B$KDs<($7$F!"%;%/%?!lilo $B$N%=!<%9%3!<%I$G(B 1st boot loader $B$KAjEv$9$k$N$O(B first.S $B$G$9!#(B ($B$J$s$F$o$+$j$d$9$$L>A0$G$7$g$&!*(B) $B>e5-$N(B "L", "I", $B$NI=<($r$l(B

go:     cli                     ! no interrupts
        mov     ds,ax           ! AX is already set
        mov     es,ax           ! (ES may be wrong when restarting)
        mov     sp,#STACK       ! set the stack
        mov     ax,#STACKSEG
        mov     ss,ax
        sti                     ! now it is safe

        mov     al,#0x0d        ! gimme a CR ...
        call    display
        mov     al,#0x0a        ! ... an LF ...
        call    display
        mov     al,#0x4c        ! ... an 'L' ...
        call    display

$B$H(B

done:   mov     al,#0x49        ! display an 'I'
        call    display
        jmpi    0,SECONDSEG     ! start the second stage loader

$B$NItJ,$G$9!#%3%a%s%H$rFI$a$P!"2?$r$7$F$$$k$+A[A|$,$D$-$^$9$M!#(B

1.2 2nd boot loader

2nd boot loader $B$,A0$d!"(B $B%Q%9%o!<%I$J$I$N>pJs$,5-O?$5$l$F$$$^$9!#(B

$B$3$N@hF,ItJ,$N9=B$$O(B LILO $B$N%=!<%9%3!<%I$K$"$k(B common.h $BCf$G(B $B0J2<$N$h$&$K5,Dj$5$l$F$$$^$9!#(B

typedef struct {
    char name[MAX_IMAGE_NAME+1];
    char password[MAX_PW+1];
    unsigned short rd_size[2]; /* RAM disk size in bytes, 0 if none */
    SECTOR_ADDR initrd,start;
    unsigned short start_page; /* page at which the kernel is loaded high, 0
                                  if loading low */
    unsigned short flags,vga_mode;
} IMAGE_DESCR;

($B$3$NItJ,$K4X$7$F$O(B ver.21, 22 $B$H$bF1$85-=R$G$9!#(B $B$?$@$7!"8e=R$7$^$9$,(B SECTOR_ADDR $B$N9=@.$,(B 21 $B$H(B 22 $B$G$O0c$$$^$9!#(B)

$B$3$N%^%C%W%U%!%$%k@hF,ItJ,$N%m!<%I$,40N;$9$k$H(B "O" $B$H$$$&J8;z$r(B $B%3%s%=!<%k$KI=<($7!";XDj$5$l$?BT$A;~4V$N$"$$$@!"%-!$B$3$N8e!"%W%m%s%W%HI=<($d%-!e5-$N(B SECTOR_ADDR initrd,start $B$K$h$C$F;XDj$5$l$?(B CHS $B%;%/%?!<%"%I%l%9$+$i(B $B%m!<%I$7!"$3$N%^%C%W%U%!%$%k$K5-O?$5$l$F$$$k%+!<%M%k$d(B initrd $B%U%!%$%k$N(B $B%;%/%?!<%"%I%l%9$r2rFI$7$F!"$=$l$>$l$r%m!<%I$7$F$$$-$^$9!#(B

$B$3$l$i$N%G%#%9%/$^$?$O%U%m%C%T!<$+$i%+!<%M%k$d(B initrd $B%U%!%$%k$r%a%b%j!<$K(B $B%m!<%I$9$k:n6H$O!"$9$Y$F%;%/%?!<%"%I%l%9$r;XDj$7$F(B BIOS $B$K$BI,MW$J%;%/%?!<$N%m!<%I$,[email protected]$7$?8e!"%+!<%M%k%3!<%I$K@)8f$r0\9T$7$F(B LILO $B$OF0:n$r40N;$7$^$9!#(B

1.3 Option linear

$B$H$-$I$-4*0c$$$5$l$kJ}$,$$$^$9$,!"(Blilo.conf $B$N%Q%i%a!<%?$K(B "Option linear" $B$rDI2C$7$F$b!"(BLILO $B$N%V!<%H%m!<%@!<$,(B $B%G%#%9%/$+$i%U%!%$%k$r%m!<%I$9$k;~$K(B INT13 AH=4? $B$J(B Extended BIOS $B%3!<%k$rMxMQ$9$k$o$1$G$O$"$j$^$;$s!#(B

($BCm(B: $B0JA0$O$3$3$G(B "option linear" $B$r;XDj$7$F$b(B LILO $B$N(B $B%^%C%W%U%!%$%k$K%j%K%"%"%I%l%9$O3JG<$5$l$J$$!"$H=q$$$F$$$?$N$G$9$,(B ver 21 $B$H(B 22 $B$N%3!<%I$r2~$a$FD/$a$F$_$?$H$3$m!"(B ver 21 $B$G$O(B 3bytes (=24bits) $B$NNN0h$K%j%K%"%;%/%?!<%"%I%l%9$r3JG<$7$F$$$?$3$H$,(B $B$o$+$j$^$7$?!#$^$?(B ver 22 $B$G$O(B "option edd" $B$,?7@_$5$l(B $B$3$l$rMxMQ$9$k$H(B 4bytes (=32bits) $B$NNN0h$K(B 32bit $B$N%j%K%"%;%/%?!<(B $B%"%I%l%9$r3JG<$7!"$+$D5/F0;~$K$O(B Extneded BIOS Call $B$rMxMQ$9$k!"$H(B $B$$$&F0:n$K$J$k$h$&$G$9!#(B)

$B$3$N%*%W%7%g%s$O!"%^%6!<%\!<%I$N(B BIOS $B$,G'<1$9$k%G%#%9%/$N%8%*%a%H%j$H(B Linux $B%+!<%M%k$NG'<1$9$k%8%*%a%H%j$,8_$$$K0[$J$k>l9g!"(BLILO $B$N;H$&(B $B%^%C%W%U%!%$%k$K$O%j%K%"%;%/%?!<%"%I%l%9$rJ]B8$7$F$*$$$F!"5/F0;~$K(B $B!V(BBIOS $B$,G'<1$9$k%G%#%9%/$N%8%*%a%H%j!W$r4p=`$H$7$?(B CHS $B%;%/%?!<%"%I%l%9(B $B$K49;;$7!"$3$N%"%I%l%9$r(B BIOS $B$KEO$7$F%G%#%9%/$+$iI,MW$J%;%/%?!<$r(B $B%m!<%I$9$k$H$$$&F0:n$r;XDj$9$k$b$N$G$9!#(B

$B$3$N%*%W%7%g%s$r;XDj$7$F$b!"(BLILO $B$,!V(B1023 $B%7%j%s%@!W$rD6$($kNN0h$K(B $B%"%/%;%9$9$k$3$H$OIT2DG=$G$9$N$G!"8fCm0U2<$5$$!#(B

1.4 (New in ver 22) Option edd

$B$3$N%*%W%7%g%s$O(B LILO 22 $B$G?7@_$5$l$?$b$N$N$h$&$G$9!#(BCHANGES $B$K(B $B$h$l$P(B Enhanced Disk Drive Support $B$,M-8z$J(B Extended BIOS $B$N(B $B$?$a$N$b$N!"$H$N$3$H!#(B

$B%^%6!<%\!<%I$b%G%#%9%/%I%i%$%V$b:G6a$N$b$N$G!"$I$&$7$F$b(B 1023 $B%7%j%s%@$NJI$rD6$($F5/F0$5$;$?$$>l9g$K$O!";n$7$F$_$k$HNI$$$+$b!#(B

1.5 $B$=$NB>(B

$B$A$J$_$K!">\:Y$O$^$?$$$D$+DI2C$7$F=q$/$D$b$j$G$9$,(B Linux $B%+!<%M%k$N(B $B@hF,(B 512bytes $B$O%+!<%M%k$,<+A0$G;}$C$F$$$k%V!<%H%m!<%@!<$G$"$j!"(B "make zdisk" $B$G:n@.$7$?%V!<%H%U%m%C%T!<$+$i$N5/F0$G$O$3$l$,;H$o$l$^$9!#(B

$B$3$N<+A0$N%V!<%H%m!<%@!<$O(B i386 $B7O$N>l9g(B $B%+!<%M%k%=!<%9%D%j!<$N(B arch/i386/boot/bootsect.S $B$K$"$j$^$9!#(B

LILO $B$d(B LOADLIN $B$+$i$N5/F0$G$O!"%+!<%M%k$N%m!<%I$,40N;$9$k$H$3$NItJ,(B (bootsect) $B$rHt$P$7$F$B$3$l$i$N


2. /sbin/lilo $B%3%^%s%I$r

"lilo" $B%3%^%s%I$OJLL>(B map creator ($B%^%C%W:n@.%D!<%k(B) $B$H(B $B8F$P$l$F$*$j!"$=$N$C$F(B bootloader $B$,5/F0;~$K(B $B;HMQ$9$k%^%C%W%U%!%$%k$r:n@.$7!"$=$NCf$KI,MW$J(B Map Descriptor Table $B$r(B $BE,@Z$K5-O?$9$k$3$H$G$9!#(B

$BDL>o(B "lilo" $B%3%^%s%I$O(B lilo.conf $B$r2rFI$7$F!"(B $B;HMQ$9$k%+!<%M%k$4$H$K;XDj$5$l$?(B Image $B%U%!%$%k(B ($B$*$h$S!"$b$7$"$l$P(B initrd $B%U%!%$%k(B) $B$KBP$9$k(B CHS $B%;%/%?!<%"%I%l%9$r"lilo" $B%3%^%s%I$G%U%!%$%k$+$i%;%/%?!<%"%I%l%9$r(B $BD4$Y$kItJ,$O(B geometry.c $B$N(B geo_find() $B$K$"$j$^$9!#(B

"lilo" $B%3%^%s%I$K(B -v $B%*%W%7%g%s$rJ#?t=E$M$F5/F0$9$k$H!"(B $B%^%C%W:n@.$K;HMQ$5$l$?%;%/%?!<%"%I%l%9$r4Q;!$9$k$3$H$,$G$-$^$9!#(B

$B$b$7(B Image= $B$G;XDj$7$?%U%!%$%k$,%^%&%s%H$5$l$F$$$J$$%U%!%$%k%7%9%F%`(B $B>e$K$"$k$H!"(B"lilo" $B%3%^%s%I$O$=$N%U%!%$%k$KBP$9$k(B $B%;%/%?!<%"%I%l%9$rD4$Y$k$3$H$,$G$-$:$K%(%i!<$r=P$7$^$9!#(B

$B$J$*!"5/F0;~$K;HMQ$9$k(B 2nd boot loader $B$N%;%/%?!<%"%I%l%9$r(B 1st boot loader $B$N%3!<%ICf$K=q$-9~$`$N$b(B "lilo" $B%3%^%s%I$N;E;v$G$9!#(B


3. $BJdB-(B

3.1 $B$3$NJ8=q$K$D$$$F(B

Linux $BMQ$N%V!<%H%m!<%@!<$H$7$F!"$3$N(B "lilo" $B$r(B $B;H$&>l9g$,B?$$$N$G$9$,!"%^%K%e%"%k$G%(%i!<%a%C%;!<%8$N0UL#$r3NG'$9$k(B $B:]$J$I!"F0:n$rM}2r$7$F$*$/$H$-$C$HLr$KN)$D$@$m$&$H;W$C$F$3$NJ8=q$r(B $B:n@.$7$^$7$?!#(B

$BFbMF$K$D$$$F$O$G$-$k8B$j@53N$r4|$7$?$D$b$j$G$9$,!"$^$@$^$@4V0c$$$d(B $B8m2r$7$F$$$k8D=j$J$I$"$k$+$b$7$l$^$;$s!#$3$NJ8=q$KBP$9$k8f0U8+!"(B $B8f46A[!"4V0c$$$N;XE&$J$I$"$j$^$7$?$i!"Cx$B$J$*!"$3$NJ8=q$NG[I[Ey$K$D$$$F$O(B GPL2 $B$K=>$&$b$N$H$7$^$9!#(B

3.2 MBR $BMQ%V!<%H%;%l%/%?$K$D$$$F(B

$B8D?ME*$J9%$_$G$9$,!"(B"lilo" $B$N%$%s%9%H!<%k@h$O(B MBR (Master Boot Record, $B%O!<%I%G%#%9%/@hF,$N%V!<%H%;%/%?(B) $B$h$j$b(B Linux $B%7%9%F%`$N%k!<%H%Q!<%F%#%7%g%s$N$[$&$,E,$7$F$$$k$H;W$$$^$9!#(B $B%O!<%I%G%#%9%/$N(B MBR $B$K$O$h$j0lHLE*$J%V!<%H%;%l%/%?!"$?$H$($P(B os-bs, bteasy, extIPL, btsel $B$J$I$r%$%s%9%H!<%k$7$?$[$&$,(B $B%H%i%V%k$,5/$-$?;~$NBP1~$J$I$r9MN8$9$k$H$h$j0B?4$G$-$^$9!#(B

$B$3$NCf$G$bFC$K8D?ME*$J$*A&$a$O(B extIPL $B$G$9!#:G6a!"%P!<%8%g%s%"%C%W$7$F3HD%NN0hFb$NO@M}NN0h$+$i$b5/F02DG=(B $B$K$J$j$^$7$?!#$^$?%=!<%98x3+$G$"$j!"$+$D(B Linux $B>e$G(B make $B$G$-$k(B (gcc + nasm) $BE@$b8+F($;$J$$%]%$%s%H$G$9!#(B


sgml21html conversion date: Wed Feb 23 10:56:14 JST 2000