summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/etc.i386/INSTALL.linux218
1 files changed, 197 insertions, 21 deletions
diff --git a/etc/etc.i386/INSTALL.linux b/etc/etc.i386/INSTALL.linux
index fb06efd9e9b..7d08272310c 100644
--- a/etc/etc.i386/INSTALL.linux
+++ b/etc/etc.i386/INSTALL.linux
@@ -1,7 +1,10 @@
-$OpenBSD: INSTALL.linux,v 1.1 1998/09/20 15:12:06 espie Exp $
+$OpenBSD: INSTALL.linux,v 1.2 1998/09/22 17:21:22 espie Exp $
+
+Warning: this document is currently being reviewed. It's not yet complete,
+and probably contains loads of errors. As an example, I can't figure out
+why linux doesn't need mkswap as it shares the exact same blocks with
+OpenBSD.
-Warning: this document is currently being written. It's not yet complete,
-and probably contains loads of errors.
Linux + OpenBSD: it's possible
@@ -75,10 +78,10 @@ Here is my disk:
Disk /dev/hda: 128 heads, 63 sectors, 993 cylinders
Units = cylinders of 8064 * 512 bytes
- Device Boot Begin Start End Blocks Id System
+ Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 260 1048288+ 6 DOS 16-bit >=32M
/dev/hda2 261 261 273 52416 83 Linux native
- /dev/hda4 287 287 993 2850624 5 Extended
+ /dev/hda4 287 287 600 1270080 5 Extended
/dev/hda5 287 287 303 68512 82 Linux swap
/dev/hda6 304 304 456 616864+ 83 Linux native
/dev/hda7 457 457 520 258016+ 83 Linux native
@@ -89,6 +92,8 @@ Units = cylinders of 8064 * 512 bytes
large, the OpenBSD area will be huge. As a developper, I usually have loads
of source & binaries lying around... a simple OpenBSD installation can fit
within 300 Mb with room to spare).
+In my setup hda2 is /, hda6 is /usr, hda7 is /usr/local hda8 is /var, and
+hda9 is /home.
Get the display to sectors with u, and jot down the corresponding
information as well:
@@ -96,10 +101,10 @@ information as well:
Disk /dev/hda: 128 heads, 63 sectors, 993 cylinders
Units = sectors of 1 * 512 bytes
- Device Boot Begin Start End Blocks Id System
+ Device Boot Begin Start End Blocks Id System
/dev/hda1 63 63 2096639 1048288+ 6 DOS 16-bit >=32M
/dev/hda2 2096640 2096640 2201471 52416 83 Linux native
- /dev/hda4 2306304 2306304 8007551 2850624 5 Extended
+ /dev/hda4 2306304 2306304 4846464 1270080 5 Extended
/dev/hda5 2306368 2306368 2443391 68512 82 Linux swap
/dev/hda6 2443455 2443455 3677183 616864+ 83 Linux native
/dev/hda7 3677247 3677247 4193279 258016+ 83 Linux native
@@ -113,7 +118,7 @@ Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 1 1 0 127 63 259 63 2096577 06
2 00 0 1 260 127 63 272 2096640 104832 83
3 00 0 0 0 0 0 0 0 0 00
- 4 00 0 1 286 127 63 992 2306304 5701248 05
+ 4 00 0 1 286 127 63 600 2306304 2540160 05
5 00 1 2 286 127 63 302 64 137024 82
6 00 1 1 303 127 63 455 63 1233729 83
7 00 1 1 456 127 63 519 63 516033 83
@@ -121,7 +126,10 @@ Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
9 00 1 1 537 127 63 600 63 516033 83
Note that this is STILL the same data. The good point about this last
-display is that it is what you're going to see in OpenBSD fdisk !
+display is that it is almost what you're going to see in OpenBSD fdisk !
+The only difference is that:
+- OpenBSD fdisk displays cyl/hd/sec, which is a more sensible order.
+- OpenBSD fdisk displays `real' offsets from the beginning of the disk.
You will notice that the 3rd primary partition is empty... this is where
I intend to stick my OpenBSD root partition (both DOS and BSD partitions),
@@ -138,12 +146,12 @@ lists. This will also show up in OpenBSD' fdisk.
Your clock and OpenBSD
----------------------
-One last thing you can do before starting OpenBSD: OpenBSD expects your
-hardware clock to be in universal time, and uses timezones to give you
-local time. With linux, this depends... most distributions use a small
-program called hwclock to set up the system time from the hardware clock
-when booting... there is a --utc option if your hardware clock is in
-universal time, but this is not always the case.
+OpenBSD expects your hardware clock to be in universal time, and uses
+timezones to give you local time. With linux, this depends...
+most distributions use a small program called hwclock to set up the
+system time from the hardware clock when booting... there is a --utc
+option if your hardware clock is in universal time, but this is not
+always what happens by default.
Check your distribution, on redhat 5.1, this occurs in /etc/rc.d/rc.sysinit
which loads /etc/sysconfig/clock which defines a variable called UTC before
@@ -162,7 +170,6 @@ that is probably to make sure you have a linux kernel around that doesn't
know about disklabels. Otherwise, you may wish to check your inittab
and your rc to make deadly sure that single-user boot will work.
-
The OpenBSD installation
------------------------
If you've got the space, you can install from your ext2fs partitions. This
@@ -173,9 +180,165 @@ REMEMBER TO BACKUP ALL IMPORTANT DATA ON YOUR DISK BEFORE DOING THE
INSTALLATION !!!
So you cp floppy*.fs /dev/fd0, then reboot...
-
-<<<* TO BE COMPLETED *>>>
-
+After a while, you will see your disk configuration scroll up.
+I got:
+wd0 at wdc0 drive 0: <TOSHIBA MK4006MAV>
+wd0: 3909MB, 7944 cyl, 16 head, 63 sec, 512 bytes/sec, 8007552 sec total
+wd0: using 16-sector 16-bit pio transfers, lba addressing
+at which point I got somewhat confused, especially as this is a config with
+more than 1024 cylinders. In fact, this is the real disk geometry, when
+you inquire about it, but the geometry that the BIOS sees IS the fdisk
+geometry, with 993 cylinders. As the 1024 cylinders is purely a BIOS
+limitation, there is no actual trouble.
+If you want to be sure, right after the machine loads the kernel, there is
+a boot prompt:
+boot>
+at which point you can enter: machine diskconfig
+before the automatic boot sequence continues.
+
+Then I got into fdisk, and I proceeded to enter my new OpenBSD partition.
+This is what the fdisk dump looked after I added the OpenBSD partition:
+
+Disk: wd0 geometry: 992/128/63 [7999488 sectors]
+Offset: 0 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 06 0 1 1 - 259 127 63 [ 63 - 2096577] DOS > 32MB
+ 1: 83 260 0 1 - 272 127 63 [ 2096640 - 104832] Linux files*
+ 2: A6 273 0 1 - 285 127 63 [ 2201472 - 104832] OpenBSD
+ 3: 05 286 0 1 - 600 127 63 [ 2306304 - 2540160] Extended DOS
+
+Selected extended partition 3
+New MBR at offset 2306304.
+Offset: 2306304 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 82 286 1 2 - 302 127 63 [ 2306368 - 137024] Linux swap
+ 1: 05 303 0 1 - 455 127 63 [ 2443392 - 1233792] Extended DOS
+ 2: 00 0 0 0 - 0 0 0 [ 2306304 - 0] unused
+ 3: 00 0 0 0 - 0 0 0 [ 2306304 - 0] unused
+
+Selected extended partition 1
+New MBR at offset 2443392.
+Offset: 2443392 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 83 303 1 1 - 455 127 63 [ 2443455 - 1233729] Linux files*
+ 1: 05 456 0 1 - 519 127 63 [ 3677184 - 516096] Extended DOS
+ 2: 00 0 0 0 - 0 0 0 [ 2443392 - 0] unused
+ 3: 00 0 0 0 - 0 0 0 [ 2443392 - 0] unused
+
+Selected extended partition 1
+New MBR at offset 3677184.
+Offset: 3677184 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 83 456 1 1 - 519 127 63 [ 3677247 - 516033] Linux files*
+ 1: 05 520 0 1 - 536 127 63 [ 4193280 - 137088] Extended DOS
+ 2: 00 0 0 0 - 0 0 0 [ 3677184 - 0] unused
+ 3: 00 0 0 0 - 0 0 0 [ 3677184 - 0] unused
+
+Selected extended partition 1
+New MBR at offset 4193280.
+Offset: 4193280 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 83 520 1 1 - 536 127 63 [ 4193343 - 137025] Linux files*
+ 1: 05 537 0 1 - 600 127 63 [ 4330368 - 516096] Extended DOS
+ 2: 00 0 0 0 - 0 0 0 [ 4193280 - 0] unused
+ 3: 00 0 0 0 - 0 0 0 [ 4193280 - 0] unused
+
+Selected extended partition 1
+New MBR at offset 4330368.
+Offset: 4330368 Signatures: 0xAA55,0x0
+ Starting Ending
+ #: id cyl hd sec - cyl hd sec [ start - size]
+-------------------------------------------------------------------------
+ 0: 83 537 1 1 - 600 127 63 [ 4330431 - 516033] Linux files*
+ 1: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
+ 2: 00 0 0 0 - 0 0 0 [ 4330368 - 0] unused
+ 3: 00 0 0 0 - 0 0 0 [ 4330368 - 0] unused
+
+Nothing to it... you just follow the extended partition links using select,
+jot down whatever you need, add the OpenBSD partition to look like you want
+it to, and save everything.
+
+After you leave fdisk, you get to the interesting part: the disklabel
+itself. If all goes well, OpenBSD synthetizes a nice disklabel out of what
+it can deduce from the disk, including the ext2fs partitions.
+
+There are only a few subtleties to take care of:
+- initially, you can ONLY edit the disklabel part that matches the OpenBSD
+DOS partition (a `slice' in FreeBSD linguo). You can use b 0 * to be able
+to edit the whole disk,
+- the real disk geometry becomes relevant. OpenBSD file system can't use
+partial cylinder groups, hence bsd partitions should start on cylinder
+boundaries, any remaining sectors will be lost anyway.
+- units for size and offset can be given as sectors (default) or cylinders
+(suffix c).
+
+After edition, this is what my disklabel looks like:
+
+# using MBR partition 2: type A6 off 2201472 (0x219780) size 104832 (0x19980)
+# /dev/rwd0c:
+type: ESDI
+disk:
+label: TOSHIBA MK4006M
+flags:
+bytes/sector: 512
+sectors/track: 63
+tracks/cylinder: 16
+sectors/cylinder: 1008
+cylinders: 7944
+total sectors: 8007552
+rpm: 3600
+interleave: 1
+trackskew: 0
+cylinderskew: 0
+headswitch: 0 # milliseconds
+track-to-track seek: 0 # milliseconds
+drivedata: 0
+
+16 partitions:
+# size offset fstype [fsize bsize cpg]
+ a: 104832 2201472 4.2BSD 1024 8192 16 # (Cyl. 2184 - 2287)
+ b: 137024 2306368 swap # (Cyl. 2288 - 2423*)
+ c: 8007552 0 unused 0 0 # (Cyl. 0 - 7943)
+ d: 409248 4846464 4.2BSD 1024 8192 16 # (Cyl. 4808 - 5213)
+ e: 511056 5255712 4.2BSD 1024 8192 16 # (Cyl. 5214 - 5720)
+ f: 204624 5766768 4.2BSD 1024 8192 16 # (Cyl. 5721 - 5923)
+ g: 1073520 5971392 4.2BSD 1024 8192 16 # (Cyl. 5924 - 6988)
+ h: 962640 7044912 4.2BSD 1024 8192 16 # (Cyl. 6989 - 7943)
+ i: 2096577 63 MSDOS # (Cyl. 0*- 2079*)
+ j: 104832 2096640 ext2fs # (Cyl. 2080 - 2183)
+ l: 1233729 2443455 ext2fs # (Cyl. 2424*- 3647*)
+ m: 516033 3677247 ext2fs # (Cyl. 3648*- 4159*)
+ n: 137025 4193343 ext2fs # (Cyl. 4160*- 4295*)
+ o: 516033 4330431 ext2fs # (Cyl. 4296*- 4807*)
+
+Things to check:
+- this disklabel is saved in MBR2 (basic dos partition 2), as expected.
+- all the bsd partitions proper are aligned on a cylinder boundary.
+the root partition begins at the precise same offset the corresponding DOS
+partition begins, and it extends for the same length.
+Other bsd partitions don't show up in the dos partition setup, hence they
+begin precisely on cylinder 601/4808.
+- the ext2fs partitions have the exact same layout under the OpenBSD
+disklabel.
+
+One point that is somewhat laborious is that the disklabel -E mode
+(which you are currently using) tends to move partitions around to ensure
+that ALL partitions fit are contiguous. Hence, you may need some fiddling
+and printing around to ensure that Linux partitions do show up where they
+should. In my case, disklabel moved the swap and all the ext2fs partitions
+slightly, and I add to adjust them manually...
+
+Once the disklabel is written to disk, the installation proceeds as usual.
Booting
-------
@@ -218,5 +381,18 @@ partition list. Unfortunately, that check is hardcoded for type A5
(NetBSD/FreeBSD) disklabel, and it recognizes only 8 partitions disklabels
anyway.
-JUST HACKING THAT CODE TO RECOGNIZE A6 IS NOT ENOUGH !!!
-MORE IS INVOLVED AS THE OPENBSD PARTITION TABLE FORMAT IS *DIFFERENT*.
+Just hacking the linux code to recognize A6 is not quite enough. You also
+need to trim down the resulting list of partitions, as your ext2fs
+partitions will now show up twice !
+I'm currently trying to implement some smart recognition scheme, where
+the bsd disklabel would appear AFTER linux partitions, and where native
+linux partitions wouldn't show up as duplicates in the disklabel.
+
+You also need a working ufs, such as
+<ftp://sunsite.unc.edu/pub/Linux/ALPHA/ufs/u2fs-0.4.3.tar.gz>
+Usually, the patch must be done manually so that the new module will
+compile.
+
+Binary compatibility
+--------------------
+not yet written...