[DragonFlyBSD - Bug #3369] installer fails to use entire disk: legacy BIOS, qemu, virtio_blk

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Sat May 25 12:17:14 PDT 2024


Issue #3369 has been updated by mikdusan.

File fdisk-cyls.patch added

Did some investigation. FreeBSD's @fdisk@ does a better job determining disk geometry in this case.

To that end, I've attached a patch that calculates cylinders from `DIOCGPART` without using @d_ncylinders@ field. The understanding is @d_*@ fields are supplied by the firmware, or in this case, qemu host which is responsible for capping the values to ~8GB storage in some ultra BIOS backwards compatible fashion for MBR partitions. When all the values are correct, calculating `@cyls@` should be redundant and match exactly @d_ncylinders at . But in the case of qemu, our calculation corrects things so that @cyls * heads * sectors == media_size at .

The other part of the patch is to allow @fdisk -s@ to always emit the geometry line before possibly failing due to missing partition info and crucially, allows the dfly installer to parse the geometry during @survey_storage()@.

----------------------------------------
Bug #3369: installer fails to use entire disk: legacy BIOS, qemu, virtio_blk 
http://bugs.dragonflybsd.org/issues/3369#change-14545

* Author: mikdusan
* Status: New
* Priority: Normal
* Category: installer
* Target version: 6.6
* Start date: 2024-05-25
----------------------------------------
Install fails to use entire disk and sets size to 8063MB.

For example, create a qemu image of 20GB and install. The resulting system disk is ~8GB in size, underutilizing the full 20GB. This bug manifests when:
1. performing qemu guest install
2. guest configured to use virtio_blk for qemu img that is installation target
3. qemu img is new (all zeros) and has not yet been partitioned
4. dfly installer legacy BIOS is selected

Workaround: repeat the select-disk after formatting for first time
1. select: Install DragonFly BSD
2. select: Legacy BIOS
3. select: vbd0
4. select: Use Entire Disk
5. select: *RETURN TO SELECT DISK* (instead of selecting file system) to repeat steps 1...4

Reduction: use @fdisk@ to summarize the disk; the result must be as follows; specifically there must be no line beginning with @/dev/vbd0@ supplying disk geometry:
<pre>
fdisk -s vbd0
fdisk: invalid fdisk partition table found
fdisk: read_s0: Undefined error: 0
</pre>

Anti-Reduction: bug will *not* manifest if @fdisk@ shows any @/dev/vbd0@ disk geometry as follows:
<pre>
fdisk -s vbd0
...
/dev/vbd1: 41610 cyl 16 hd 63 sec
Part        Start        Size Type Flags
...
</pre>

---Files--------------------------------
fdisk-cyls.patch (872 Bytes)


-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account


More information about the Bugs mailing list