Opened 11 years ago

Last modified 4 years ago

#10208 new bug

Drivesetup creating partition size errors

Reported by: PieterPanman Owned by: bonefish
Priority: high Milestone: R1
Component: Partitioning Systems Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by pulkomandy)

I've taken hrev46368 (x86_gcc) for a spin and decided to install it into my main machine on a spare drive. It is a ST9320423AS, Seagate Momentus 7200.4 ST9320423AS 320GB 7200 RPM 16MB. I decided to have 2 Haiku partitions for the OS and 1 haiku data partition. Steps:

  1. boot from USB stick
  2. Fire up DriveSetup
  3. Initialize Disk to Intel Partition Map (it was unrecognized for some reason, but I can't remember what OS was on it...)
  4. Add 3 partitions
    • Haiku32 (about 20 GiB, using the slider)
    • Haiku64 (about 30 GiB, using the slider)
    • HaikuData (the rest of the available space)
  5. Format Haiku32
  6. Install haiku to Haiku32 using HaikuInstaller
  7. Reboot
  8. Start Haiku from USB stick into boot menu, I can't find Haiku32...
  9. Back into Haiku (usb stick), the partition sizes are now approximately 3, 4 and 67 GiB!
  10. Reinstall Haiku unto Haiku32
  11. Now Haiku32 is visible in my boot menu on the USB stick.

It is almost as if performing these actions in 1 go (initialize, create x3, format, install), it has miscounted the sizes. The actual written partition map sizes after the reboot is pretty much 4x smaller, but before the reboot its idea of the partition map is the originally intended sizes. I'll see if I can gather some useful information

Attachments (2)

syslog (164.0 KB ) - added by PieterPanman 11 years ago.
listdev.txt (3.9 KB ) - added by PieterPanman 11 years ago.

Download all attachments as: .zip

Change History (7)

by PieterPanman, 11 years ago

Attachment: syslog added

by PieterPanman, 11 years ago

Attachment: listdev.txt added

comment:1 by PieterPanman, 11 years ago

Let me know what else might be useful. Maybe it has something to do with the block size? I see the device has 512, but the partition 2048. I have very little experience with partitions, so that might not be relevant.

KERN: device 1: /dev/disk/ata/3/slave/raw
KERN:   media status:      No error
KERN:   device flags:      2
KERN:   offset:            0
KERN:   size:              320072933376 (305245.335 MB)
KERN:   content size:      320072933376
KERN:   block size:        512
KERN:   child count:       3
KERN:   index:             -1
KERN:   status:            0
KERN:   flags:             5
KERN:   volume:            -1
KERN:   disk system:       partitioning_systems/intel/map/v1
KERN:   name:              ST9320423AS
KERN:   content name:      <NULL>
KERN:   type:              <NULL>
KERN:   content type:      Intel Partition Map
KERN:   params:            <NULL>
KERN:   content params:    <NULL>
KERN:   partition 9: /dev/disk/ata/3/slave/0
KERN:     offset:            32768
KERN:     size:              3122659328 (2978 MB)
KERN:     content size:      3122659328
KERN:     block size:        2048
KERN:     child count:       0
KERN:     index:             0
KERN:     status:            0
KERN:     flags:             2
KERN:     volume:            -1
KERN:     disk system:       file_systems/bfs/v1
KERN:     name:              <NULL>
KERN:     content name:      Haiku32
KERN:     type:              Be File System
KERN:     content type:      Be File System
KERN:     params:            type = 235 ; active = 1
KERN:     content params:    <NULL>
KERN:   partition 10: /dev/disk/ata/3/slave/1
KERN:     offset:            3122692096
KERN:     size:              4415029248 (4210.5 MB)
KERN:     content size:      4415029248
KERN:     block size:        2048
KERN:     child count:       0
KERN:     index:             1
KERN:     status:            0
KERN:     flags:             2
KERN:     volume:            -1
KERN:     disk system:       file_systems/bfs/v1
KERN:     name:              <NULL>
KERN:     content name:      Haiku64
KERN:     type:              Be File System
KERN:     content type:      Be File System
KERN:     params:            type = 235 ; active = 0
KERN:     content params:    <NULL>
KERN:   partition 11: /dev/disk/ata/3/slave/2
KERN:     offset:            7537721344
KERN:     size:              72480456704 (69122.75 MB)
KERN:     content size:      72480456704
KERN:     block size:        2048
KERN:     child count:       0
KERN:     index:             2
KERN:     status:            0
KERN:     flags:             2
KERN:     volume:            -1
KERN:     disk system:       file_systems/bfs/v1
KERN:     name:              <NULL>
KERN:     content name:      HaikuData
KERN:     type:              Be File System
KERN:     content type:      Be File System
KERN:     params:            type = 235 ; active = 0
KERN:     content params:    <NULL>

comment:2 by bonefish, 11 years ago

Priority: criticalhigh

Could you try to determine whether this is reproducible and which steps are required to do so?

To do so, please clear the MBR (make sure the device is really the correct one)

dd if=/dev/zero of=/dev/disk/ata/3/slave/raw bs=512 count=1

and reboot. Then perform the steps up to (and including) 4, quit DriveSetup, launch it again, and verify that the partition sizes are the ones you specified. Reboot and check them again.

Should everything still look fine, please repeat the whole procedure, this time including step 5.

comment:3 by PieterPanman, 11 years ago

Thanks for the response. Well I cannot reproduce it at the moment with the above steps. I will try again later with some variation, maybe I can find a way to reproduce it.

comment:4 by mmadia, 11 years ago

Description: modified (diff)

comment:5 by pulkomandy, 4 years ago

Description: modified (diff)

This is probably related to https://review.haiku-os.org/c/haiku/+/653

If the disk was initially formatted directly with a filesystem using 2K blocks, it seems that the intel partitionning system will reuse that value instead of the actual disk block size to compute partition sizes.

To confirm:

  • Format the whole disk as, for example BFS (without any partition table)
  • Reboot
  • Then create a partition table and add some partitions
  • Reboot again
  • Confirm that your partitions have shrunk as a result
Note: See TracTickets for help on using tickets.