mov cx,1 ; One sector
jmp short .common
.new:
- mov [diBuffer+2],ax ; == DS
mov bx,DISKIO
+ mov [bx+8],ax ; Buffer segment
mov cx,-1
.common:
xor dx,dx ; Absolute sector 0
mov di,BootSector+11
mov cx,51 ; Superblock = 51 bytes
rep movsb ; Copy the superblock
+ jmp short write_file
+disk_read_error:
+ mov dx,msg_read_err
+ jmp die
;
; Writing LDLINUX.SYS
;
+write_file:
; 0. Set the correct filename
mov al,[DriveNo]
cmp word [DOSVersion],0400h ; DOS 4.00 has a new interface
jae .new
.old:
- mov bx,SectorBuffer
+ mov bx,BootSector
mov cx,1 ; One sector
jmp short .common
.new:
mov bx,DISKIO
+ mov word [bx+6],BootSector
mov cx,-1
.common:
xor dx,dx ; Absolute sector 0
pop ax ; Remove flags from stack
jc disk_write_error
-
all_done: mov ax,4C00h ; Exit good status
int 21h
;
; Error routine jump
;
-disk_read_error:
- mov dx,msg_read_err
- jmp short die
disk_write_error:
file_write_error:
mov dx,msg_write_err
SYSLINUX
Version 1.40
- May 6, 1998
+ May 7, 1998
A bootloader for Linux using MS-DOS floppies
++++ WHAT SYSLINUX IS NOT ++++
-SYSLINUX is *not* intended to be used as a general purpose boot
-loader, since it neither has the ability to boot another operating
-system (e.g. DOS/Windows), nor can it boot Linux from a non-FAT
-filesystem, such as ext2. Since a native Linux implementation will
-typically use ext2, and a mixed DOS/Linux implementation probably
-wants to be able to boot either filesystem, another boot loader such
-as LILO or LOADLIN may be more appropriate.
+SYSLINUX is probably not suitable as a general purpose boot loader.
+It can only boot Linux from a FAT filesystem, and not, for example,
+ext2. Since a native Linux implementation will typically use ext2,
+another boot loader (e.g. LILO) is probably more suitable. In a
+system which actually contains DOS or Windows, LOADLIN may be simpler
+to use.
+
+However, SYSLINUX has shown itself to be quite useful in a number of
+special-purpose applications.
++++ CREATING A BOOTABLE LINUX FLOPPY +++
normal MS-DOS formatted floppy. Copy one or more Linux kernel files to
it, then execute the DOS command:
- SYSLINUX [-s] a:
+ syslinux [-s] a:
(or whichever drive letter is appropriate; the [] meaning -s is optional)
format kernels are detected automatically and handled transparently to
the user.
-This version of SYSLINUX also supports a boottime-loaded ramdisk
+This version of SYSLINUX also supports a boot-time-loaded ramdisk
(initrd). An initrd is loaded from a DOS file if the option
"initrd=filename" (where filename is the filename of the initrd image;
the file must be located in the root directory on the boot floppy) is
Then use the FDISK command to mark the appropriate partition active.
-SYSLINUX, like DOS, requires that the partition which contains it
-lives entirely below cylinder 1024 for proper operation.
+ ++++ KNOWN BUGS ++++
+
+SYSLINUX will have problems with disks with more than 65536 tracks
+(cylinders * heads) or 1024 cylinders if the filesystem on which
+SYSLINUX is installed extends beyond either of these two maxima.
+
+Furthermore, SYSLINUX will not work (and will refuse to install) on
+filesystems with a cluster size of more than 16K (typically means a
+filesystem of more than 1 GB.)
++++ COMPATIBILITY WITH SYSLINUX 1.0 ++++
# Mimic SYSLINUX 1.0 with BOOTMSG.TXT file present:
display bootmsg.txt
- ++++ KNOWN BUGS ++++
-
-SYSLINUX will have problems with disks with more than 65536 tracks
-(cylinders * heads) or 1024 cylinders if the filesystem on which
-SYSLINUX is installed extends beyond either of these two maxima.
-
++++ BUG REPORTS ++++
I would appreciate hearing of any problems you have with SYSLINUX. I