You are making life unnecessarily difficult for yourself, even apart from
running multi boot (mind, I have multi boot here on various legacy systems,
but not for anything serious).

Install Windows first, although I would note a 32GB boot partition is not
large enough to properly maintain any recent version without being careful.

>From Windows add a new, small partition of no more than a GB or so - this
will be your Linux root partition.

Then add two further partitions, encompassing the size of your OpenBSD
install. The first of the two partitions will be the size of your root
partition.

Beyond the OpenBSD partitions, add partition entries for Linux swap and any
other Linux or Windows partitions you need.

When in the OpenBSD installation program, note the positions of the
partitions to be dedicated to OpenBSD. Expand the sectors used by the
disklabel to contain both partitions. Ideally allocate the sectors used by
/ to the sectors used by the first partition dedicated to OpenBSD.

Don't write OpenBSD's boot code to the MBR. Use BCDEdit/EasyBCD in Windows
to add the OpenBSD partition.

Install Linux, again using Windows as partition manager. You could use
Lilo/Grub, but if Windows is installed I prefer to use it.

You can now safely update both OpenBSD and Linux, without worrying that the
boot files will move beyond the bootable limit.

As to how to know the limit - I use a different, very specific method : my
pentium 2 multiboot system is for retro gaming and uses DOS, OS/2, Linux
(mostly for Flashrom) and OpenBSD (just because, nethack etc.). OS/2 uses
its own boot manager partition when installed, its limits are based on the
BIOS. In the OS/2 installation program, use fdisk to add partitions and
note where it refuses to set a partition as 'installable'. The point where
a partition extended over a certain length stops being installable is your
BIOS limit. Partition based on that.

Any system with a limit is legacy at this point. My Core 2 systems are now
getting on somewhat, but they have no problem booting well beyond the 128GB
limit the earlier PCs and Powermacs have, and other BIOS limits before then.

On 23 November 2015 at 16:52, Alan Corey <alan01...@gmail.com> wrote:

> It seems like there should be a better way to detect this other than
> trial and error.  I put a new 1 TB drive in my laptop (Seagate
> ST1000LM024) about a month ago.  Being aware there was such a limit I
> made small boot partitions at the beginning of the drive (I thought):
> 32 GB Windows, 64 GB OpenBSD, 32 GB Linux.  As predicted everything
> worked at first, then installing MeTV keys made my Linux unbootable
> with an error from Lilo about the key file being corrupt and I suspect
> it's related to this limit.  The original position of the file was
> probably OK, the new file got made in an unreachable position.
>
> So I've probably got some storage-only partitions that won't boot, but
> I want to avoid the same thing happening when I put a 1 TB drive
> (Seagate
> ST31000340AS) in my laptop machine (Dell Optiplex GX270) because I
> really would like Linux working somewhere since I want to play with
> Android stuff.  I need to be able to build kernels for my phones and
> use Android Studio.
>
> So on the laptop:
> Disk: wd0       geometry: 121601/255/63 [1953525168 Sectors]
> Offset: 0       Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
> *0: 0C      0   1   1 -   4079 254  63 [          63:    65545137 ] Win95
> FAT32L
>  1: A6   4080   0   1 -  12365 254  63 [    65545200:   133114590 ] OpenBSD
>  2: 83  12366   0   1 -  16444 254  63 [   198659790:    65529135 ] Linux
> files*
>  3: 05  16445   0  62 - 121600 254  63 [   264188986:  1689331079 ]
> Extended DOS
> Offset: 264188986       Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
>  0: 0B  16445   1   1 -  20524 254  63 [   264188988:    65545137 ] Win95
> FAT-32
>  1: 05  20525   0   1 -  24604 254  63 [   329734125:    65545200 ]
> Extended DOS
>  2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
> Offset: 329734125       Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
>  0: 0B  20525   1   1 -  24604 254  63 [   329734188:    65545137 ] Win95
> FAT-32
>  1: 05  24605   0   1 -  25114 254  63 [   395279325:     8193150 ]
> Extended DOS
>  2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
> Offset: 395279325       Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
>  0: 82  24605   1   1 -  25114 254  63 [   395279388:     8193087 ] Linux
> swap
>  1: 05  25115   0   1 -  88856  76  52 [   403472475:  1024004005 ]
> Extended DOS
>  2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
> Offset: 403472475       Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
>  0: A6  25115  63  37 -  88856  76  52 [   403476480:  1024000000 ] OpenBSD
>  1: 05  88857   0   1 - 121600 254  63 [  1427487705:   526032360 ]
> Extended DOS
>  2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
> Offset: 1427487705      Signature: 0xAA55
>             Starting         Ending         LBA Info:
>  #: id      C   H   S -      C   H   S [       start:        size ]
>
> -------------------------------------------------------------------------------
>  0: 83  88857   1   1 - 121600 254  63 [  1427487768:   526032297 ] Linux
> files*
>  1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>  3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
>
> # /dev/rwd0c:
> type: ESDI
> disk: ESDI/IDE disk
> label: ST1000LM024 HN-M
> duid: abd27361b43df756
> flags:
> bytes/sector: 512
> sectors/track: 63
> tracks/cylinder: 255
> sectors/cylinder: 16065
> cylinders: 121601
> total sectors: 1953525168
> boundstart: 65545200
> boundend: 198659790
> drivedata: 0
>
> 16 partitions:
> #                size           offset  fstype [fsize bsize  cpg]
>   a:          4194288         65545200  4.2BSD   2048 16384    1 # /
>   b:           524288         69739488    swap                   # none
>   c:       1953525168                0  unused
>   d:          6291456         70263776  4.2BSD   2048 16384    1
>   e:          4194304         76555232  4.2BSD   2048 16384    1 # /home
>   g:       1024000000        403476480  4.2BSD   4096 32768    1 # /usr
>   i:         65545137               63   MSDOS                   # /win_c
>   j:         65529135        198659790  ext2fs                   # /linux0
>   k:         65545137        264188988   MSDOS                   # /win_d
>   l:         65545137        329734188   MSDOS                   # /win_e
>   m:          8193087        395279388 unknown                   # none
>   n:        526032297       1427487768  ext2fs                   # /linux1
>
> d530# calc ' 198659790 +  65529135 '
>         264188925
> d530# calc '264188925 / 16065'
>         16445
> d530# calc '2 ^ 14'
>         16384
> d530#
>
> If the BIOS only uses 14 bits for keeping track of the cylinder this may
> be the
> problem.  But how can we find this out?  Both machines are running the
> latest BIOS available from Dell.  I have 32 gig msdos partitions
> because I still use FAT32, and some Windows tool will delete a FAT32
> partition over 32 gigs, I've seen it happen.
>
> It seems like it should be possible to write a tool for this, you
> create a partition, fill most of it with dummy files, then at the very
> end put the file you want the BIOS to find, reboot and see if it still
> finds it.  If it does, you blow it away and keep making it bigger
> until it doesn't work anymore.  It probably comes down to a certain
> number of bits used for addressing somewhere, but much depends on the
> machine's BIOS and the hard drive's geometry.
>
> I used gparted (Linux live CD) for making these BTW, which doesn't
> even know what an A6 partition is.  Seems like it might be worth
> educating them and maybe getting gparted into ports.  My disklabel
> here isn't quite up to date, my fstab mounts the 2nd OpenBSD partition
> as /usr and the linux swap as a 2nd swap:
>
> /dev/wd0b none swap sw 0 0
> /dev/wd0m none swap sw 0 0
> /dev/wd0a / ffs rw 1 1
> /dev/wd0e /home ffs rw,nodev,nosuid 1 2
> /dev/wd0g /usr ffs rw,nodev 1 2
> /dev/wd0i /win_c  msdos rw 0 0
> /dev/wd0k /win_d  msdos rw 0 0
> /dev/wd0l /win_e  msdos rw 0 0
> /dev/wd0j /linux0 ext2fs rw 0 0
> /dev/wd0n /linux1 ext2fs rw 0 0
> /dev/cd0a /cdrom cd9660 ro,noauto 0 0
>
>
> --
> Credit is the root of all evil.  - AB1JX

Reply via email to