LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   *BSD (http://www.linuxquestions.org/questions/%2Absd-17/)
-   -   OpenBSD fdisk - Linux fdisk compatibility ? (http://www.linuxquestions.org/questions/%2Absd-17/openbsd-fdisk-linux-fdisk-compatibility-4175445837/)

Vilius 01-16-2013 05:20 AM

OpenBSD fdisk - Linux fdisk compatibility ?
 
Hello,

MBR partition table made by linux fdisk looks certainly not correct when printed by openbsd fdisk:

Partition table created on linux (centos 6.3):
Code:

# fdisk -l /dev/sdc

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x61f77373

  Device Boot      Start        End      Blocks  Id  System
/dev/sdc1              1        131    1052226  83  Linux
/dev/sdc2            132        262    1052257+  83  Linux
/dev/sdc4            263        1305    8377897+  5  Extended
/dev/sdc5            263        523    2096451  8e  Linux LVM
/dev/sdc6            524        784    2096451  8e  Linux LVM
/dev/sdc7            785        1045    2096451  a6  OpenBSD


Same disk on OpenBSD (5.2):
Code:

# fdisk sd1
Disk: sd1      geometry: 1305/255/63 [20971520 Sectors]
Offset: 0      Signature: 0xAA55
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: 83      0  1  1 -    130 254  63 [          63:    2104452 ] Linux files*
 1: 83    131  0  1 -    261 254  63 [    2104515:    2104515 ] Linux files*
 2: 00      0  0  0 -      0  0  0 [          0:          0 ] unused
 3: 05    262  0  1 -  1304 254  63 [    4209030:    16755795 ] Extended DOS
Offset: 4209030 Signature: 0xAA55
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: 8E    262  1  1 -    522 254  63 [    4209093:    4192902 ] Linux LVM
 1: 05    523  0  1 -    783 254  63 [    8401995:    4192965 ] 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: 8401995 Signature: 0xAA55
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: 8E    523  1  1 -    783 254  63 [    8402058:    4192902 ] Linux LVM
 1: 05    784  0  1 -  1044 254  63 [    12594960:    4192965 ] 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: 12594960        Signature: 0xAA55
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: A6    784  1  1 -  1044 254  63 [    12595023:    4192902 ] OpenBSD
 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

OpenBSD fdisk shows separate 4 partition block for extended partition, but result above shows 4 4-partition blocks(instead of 2).

If I create same partition table on OpenBSD from scratch:
Code:

# fdisk sd1
Disk: sd1      geometry: 1305/255/63 [20971520 Sectors]
Offset: 0      Signature: 0x0
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: 83      0  1  1 -    130 254  63 [          63:    2104452 ] Linux files*
 1: 83    131  0  1 -    261 254  63 [    2104515:    2104515 ] Linux files*
 2: 00      0  0  0 -      0  0  0 [          0:          0 ] unused
 3: 05    262  0  1 -  1304 254  63 [    4209030:    16755795 ] Extended DOS
Offset: 4209030 Signature: 0xAA55
            Starting        Ending        LBA Info:
 #: id      C  H  S -      C  H  S [      start:        size ]
-------------------------------------------------------------------------------
 0: 8E    262  1  1 -    522 254  63 [    4209093:    4192902 ] Linux LVM
 1: 83    523  1  1 -    783 254  63 [    8402058:    4192902 ] Linux files*
 2: A6    784  1  1 -  1044 254  63 [    12595023:    4192902 ] OpenBSD
 3: 00      0  0  0 -      0  0  0 [          0:          0 ] unused

Now if we connect that disk to linux partition table is not recognized:
Code:

# fdisk -l /dev/sdb

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

#


Why this is happening ?
How do I create partition table compatible between two OSes ?

thanks
Vilius M.

comet.berkeley 01-16-2013 08:00 PM

Quote:

Originally Posted by Vilius (Post 4871225)
Partition table created on linux (centos 6.3):
# fdisk -l /dev/sdc

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
...

The Linux fdisk is showing units in "cylinders" but the OpenBSD fdisk is showing "sectors".

To get the Linux fdisk to show sectors use the "-u=sectors" option:

#fdisk -l -u=sectors /dev/sdc

GazL 01-17-2013 08:02 AM

I suggest you read-up on how extended partitions actually work (they're a horrible ugly kludge). The first OpenBSD example was correct. The partition table for extended/logical partitions doesn't work the same way as the MBR partition table. Each logical partition has it's own partition table and it will be defined by entry no 0 in that table. Entry number 1 points to the next logical partition's partition table, and so on forming a chain. Entry 2 and 3 in these partition tables are not used and should always be empty.

Linux's disk partitioning tools hide this from the user, OpenBSDs does not.

When you created it by hand, you've created an invalid structure, which is why you can't see it from linux fdisk.


Personally, for a dual-boot setup, I'd be inclined to use cfdisk from linux for a quick and easy way to setup the partitions and skip the fdisk step from the openbsd installer and get straight on with the labelling.


Also, I wouldn't recommend trying to put the OpenBSD partition in a logical partition (I'm not even sure that is supported). It really belongs in one of the four primary partitions..


All times are GMT -5. The time now is 09:45 PM.