In OpenBSD, we have largely side-stepped these issue... by no longer
pandering to the tweaker-mindset that builds multiboot systems.

We think all the parts are there, but nothing makes it trivial because
the potential set of configurations is too large.

Essentially, you are on your own. :-)

> 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