summaryrefslogtreecommitdiff
path: root/share/man/man8/man8.i386
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2000-11-09 03:57:36 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2000-11-09 03:57:36 +0000
commite08c5869a0ad5380cdc6dbda90de833f83f810ca (patch)
tree5ef56e899ad8f26eccb761e2d5184d926ce8aaa2 /share/man/man8/man8.i386
parent209c1ff9f132e0291ad4c6da042d53eb30bd16b1 (diff)
incomplete work. moved them, repaired some, it is a giant mess
Diffstat (limited to 'share/man/man8/man8.i386')
-rw-r--r--share/man/man8/man8.i386/Makefile2
-rw-r--r--share/man/man8/man8.i386/boot_i386.8165
2 files changed, 166 insertions, 1 deletions
diff --git a/share/man/man8/man8.i386/Makefile b/share/man/man8/man8.i386/Makefile
index 499800136d5..effb6fe01b2 100644
--- a/share/man/man8/man8.i386/Makefile
+++ b/share/man/man8/man8.i386/Makefile
@@ -1,7 +1,7 @@
# @(#)Makefile 5.1 (Berkeley) 3/22/91
# $NetBSD: Makefile,v 1.5 1995/09/06 21:36:35 jtc Exp $
-MAN= MAKEDEV.8
+MAN= MAKEDEV.8 boot_i386.8
MLINKS= MAKEDEV.8 makedev.8
MANSUBDIR=/i386
diff --git a/share/man/man8/man8.i386/boot_i386.8 b/share/man/man8/man8.i386/boot_i386.8
new file mode 100644
index 00000000000..2e195089246
--- /dev/null
+++ b/share/man/man8/man8.i386/boot_i386.8
@@ -0,0 +1,165 @@
+.\" $OpenBSD: boot_i386.8,v 1.1 2000/11/09 03:57:34 deraadt Exp $
+.\"
+.\" Copyright (c) 1997 Tobias Weingartner
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Michael Shalayeff.
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+
+.Dd September 4, 1997
+.Dt BOOT_I386 8 i386
+.Os
+.Sh NAME
+.Nm boot
+.Nd
+system bootstrapping procedures
+.Sh DESCRIPTION
+.Ss Power fail and crash recovery
+Normally, the system will reboot itself at power-up or after crashes.
+An automatic consistency check of the file systems will be performed,
+and unless this fails, the system will resume multi-user operations.
+.Pp
+.Ss Cold starts
+The
+.Tn "PC AT"
+clones will perform a POST (Power On Self Test) upon being booted cold.
+This test will find and initialize memory, keyboard, and other devices.
+It will search for and initialize any extension ROMs that are present,
+and then attempt to boot the operating system from an available boot
+drive.
+Failing this, older IBM systems came up in ROM BASIC.
+.Pp
+The newer
+.Tn "PC AT"
+clones attempt to boot off the drive specified in the BIOS setup, or
+if it is an older BIOS, it will start with checking for a disk in floppy
+drive A (otherwise known as drive 0) first, and failing that, attempt to
+boot the hard disk C (otherwise known as hard disk controller 1, drive 0).
+.Pp
+.Ss Warm starts
+The BIOS loads the first block (at physical location: track 0, head 0,
+sector 1) off the boot device into memory, and if the last two bytes in the
+block match the signature 0x55AA, the BIOS considers the block a valid
+bootable drive.
+The BIOS then proceeds to call the machine code program in this block.
+If the BIOS is current, it will also pass the boot drive
+to the boot block in register %dl.
+.Pp
+There are two different types of boot blocks on devices.
+There is the
+MBR (master boot record) and the PBR (partition boot record).
+A digression
+into a little piece of history will quickly give light as to why this is so.
+In the beginning, the PC
+.Dq architecture
+came with a single or dual floppy
+drives, and no hard drives.
+The only type of bootable sectors on any device were the PBRs.
+They were responsible for loading the rest of the operating
+system from the correct device.
+When hard disks came out, it was felt that
+such a huge space should be able to be partitioned into separate drives,
+and this is when the MBR was invented.
+.Pp
+The MBR relocates itself upon being loaded and invoked by the BIOS.
+Embeded within the MBR is a partition table, with four partition table
+entries.
+The MBR code traverses this table (which was loaded with the
+MBR by the BIOS), looking for an active entry, and then loads the MBR or
+PBR from the disk location specified by the partition table entry.
+So in reality, the MBR is nothing more than a fancy chaining PBR.
+.Pp
+Note: The MBR could load another MBR, which is the case when you are booting
+off an extended partition.
+In other words, the first block of an extended
+partition is really an MBR, which will then load the corresponding MBR or PBR
+out of its extended partition's partition table.
+.Sh GEOMETRY TRANSLATION
+.Em WARNING :
+This portion of the
+.Dq PC BIOS Architecture
+is a mess, and a compatibility nightmare.
+.Pp
+The PC BIOS has an API to manipulate any disk that the BIOS happens to
+support.
+This interface uses 10 bits to address the cylinder, 8 bits to
+address the head, and 6 bits to address the sector of a drive.
+This restricts any application using the BIOS to being able to address only
+1024 cylinders, 256 heads, and 63 (since the sectors are 1 based) sectors
+on a disk.
+These limitations proved to be fine for roughly 3 years after
+the debut of hard disks on PC computers.
+.Pp
+Many (if not all) newer drives have many more cylinders than the BIOS API
+can support, and likely more sectors per track as well.
+To allow the BIOS the ability of accessing these large drives, the BIOS would
+.Dq re-map
+the
+cylinder/head/sector of the real drive geometry into something that would
+allow the applications using the BIOS to access a larger portion of the
+drive, still using the restricted BIOS API.
+.Pp
+The reason this has become a problem is that any modern OS will use its own
+drivers to access the disk drive, bypassing the BIOS completely.
+However,
+the MBR, PBR, and partition tables are all still written using the original
+BIOS access methods.
+This is for backwards compatibility to the original IBM PC!
+.Pp
+So the gist of it is, the MBR, PBR, and partition table need to have BIOS
+geometry offsets and cylinder/head/sector values for them to be able to
+load any type of operating system.
+This geometry can, and likely will,
+change whenever you move a disk from machine to machine, or from controller
+to controller.
+.Em They are controller and machine specific .
+.Sh FILES
+.Bl -tag -width /usr/mdec/biosboot -compact
+.It Pa /bsd
+system code
+.It Pa /usr/mdec/mbr
+system MBR image
+.It Pa /usr/mdec/biosboot
+system primary stage bootstrap (PBR)
+.It Pa /boot
+system second stage bootstrap
+.El
+.Sh SEE ALSO
+.Xr boot 8 ,
+.Xr halt 8 ,
+.Xr installboot 8 ,
+.Xr reboot 8 ,
+.Xr shutdown 8
+.Sh BUGS
+The
+.Dq PC BIOS Architecture
+makes this process very prone to weird and
+wonderful interactions between differing operating systems.
+There is no published standard to the MBR and PBR,
+which makes coding these a nightmare.
+Somebody *please* write me a decent BIOS, and make them (the masses) use it!