Opened 16 years ago
Closed 10 years ago
#2477 closed bug (duplicate)
Haiku's bootman doesn't show the same partitions as BeOS's
Reported by: | idefix | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta1 |
Component: | Applications/BootManager | Version: | R1/Development |
Keywords: | Cc: | black.belt.jimmy@…, umccullough | |
Blocked By: | #3545 | Blocking: | |
Platform: | All |
Description
The partition list of Haiku's bootman differs from BeOS's bootman.
First of all, only the partitions on the first harddisk are listed. Apparently B_GET_BIOS_DRIVE_ID isn't implemented yet, see Changeset 25044.
Secondly, the Intel Extended Partition is listed which isn't bootable as far as I know.
Attachments (3)
Change History (25)
by , 16 years ago
Attachment: | Haiku's bootman.png added |
---|
comment:1 by , 16 years ago
Milestone: | R1 → R1/alpha1 |
---|---|
Owner: | changed from | to
When I asked on the development mailing list, Axel outlined the necessary steps for B_GET_BIOS_DRIVE_ID:
It's even a bit of work, but I can outline it a bit: 1) the boot loader needs to make a connection between drive ID and disk in a way that the OS can recognize it again. IIRC BeOS uses a sum/hash of the contents of a few blocks until it has enough to differentiate all (BIOS) drives. The name, or serial number is probably not reliably available from the BIOS, but I haven't really tried that yet. 2) it would need to store that information in the kernel_args structure. 3) when the OS detects the drives, it would see in that structure how it can recognize the drive again, and can then store the BIOS ID of that drive internally, so that B_GET_BIOS_DRIVE_ID can work as expected.
follow-up: 4 comment:3 by , 16 years ago
Replying to laplace:
Part two of this ticket is fixed in hrev27149.
Yes, the fix removed the Intel Extended Partition, but also the NTFS partitions. See screenshot.
Probably this happened because the NTFS-driver is missing, causing Haiku to think that the partitions don't contain a file system. But even if Haiku can't recognize the filesystem, the bootloader can boot that partition (by chainloading). So those partitions should also be listed in bootman.
by , 16 years ago
Attachment: | Haiku's bootman r27407.png added |
---|
Partition list of Haiku's bootman (hrev27407)
follow-up: 5 comment:4 by , 16 years ago
Replying to idefix:
Replying to laplace:
Part two of this ticket is fixed in hrev27149.
Yes, the fix removed the Intel Extended Partition, but also the NTFS partitions. See screenshot.
Probably this happened because the NTFS-driver is missing, causing Haiku to think that the partitions don't contain a file system. But even if Haiku can't recognize the filesystem, the bootloader can boot that partition (by chainloading). So those partitions should also be listed in bootman.
I hope this is fixed in hrev27503, if not someone should have a look at DiskDevice implementation why ContainsFileSystem() returns false for NTFS partition.
follow-up: 6 comment:5 by , 16 years ago
Replying to laplace:
I hope this is fixed in hrev27503, if not someone should have a look at DiskDevice implementation why ContainsFileSystem() returns false for NTFS partition.
Yes, bootman shows both NTFS partitions now, but both with a size of 0.00. See screenshot.
It used to show the correct size of the unrecognised partitions, see Haiku's bootman.png.
by , 16 years ago
Attachment: | Haiku's bootman r27578.png added |
---|
Partition list of Haiku's bootman (hrev27578)
follow-up: 8 comment:6 by , 16 years ago
Cc: | added |
---|
Replying to idefix:
Yes, bootman shows both NTFS partitions now, but both with a size of 0.00. See screenshot.
It used to show the correct size of the unrecognised partitions, see Haiku's bootman.png.
Ingo can you have a look at that regression?
BTW should have ContainsFileSystem() worked for a NTFS partition?
follow-ups: 9 10 comment:8 by , 16 years ago
Replying to laplace:
Replying to idefix:
Yes, bootman shows both NTFS partitions now, but both with a size of 0.00. See screenshot.
It used to show the correct size of the unrecognised partitions, see Haiku's bootman.png.
Ingo can you have a look at that regression?
No regression. The ntfs FS module is currently not on the image, so the content of the partition is not recognized. Consequently BPartition::ContentSize() can't report anything useful. You'll have to use Size(), if you want to show the size of the partition itself.
BTW should have ContainsFileSystem() worked for a NTFS partition?
If the respective FS module was installed and had recognized the partition, that would have worked, otherwise it wouldn't.
follow-up: 11 comment:9 by , 16 years ago
Replying to bonefish:
No regression. The ntfs FS module is currently not on the image, so the content of the partition is not recognized. Consequently BPartition::ContentSize() can't report anything useful. You'll have to use Size(), if you want to show the size of the partition itself.
So, line 198 of LegacyBootDrive.cpp should read as follows? (Still trying to learn C++...)
message.AddInt64("size", partition->Size());
comment:10 by , 16 years ago
Replying to bonefish:
No regression. The ntfs FS module is currently not on the image, so the content of the partition is not recognized. Consequently BPartition::ContentSize() can't report anything useful. You'll have to use Size(), if you want to show the size of the partition itself.
B_WILL_DO :) Thanks for the informations.
comment:11 by , 16 years ago
Replying to idefix:
So, line 198 of LegacyBootDrive.cpp should read as follows? (Still trying to learn C++...)
message.AddInt64("size", partition->Size());
That seems to be correct.
comment:14 by , 16 years ago
Cc: | added |
---|
comment:15 by , 16 years ago
Milestone: | R1/alpha1 → R1 |
---|
I don't see how this would hold up the alpha release.
comment:16 by , 15 years ago
Cc: | added |
---|
comment:17 by , 15 years ago
Cc: | added |
---|
comment:18 by , 15 years ago
Cc: | removed |
---|
comment:19 by , 15 years ago
Blocked By: | 3545 added |
---|
comment:20 by , 14 years ago
Milestone: | R1 → R1/beta1 |
---|---|
Version: | R1/pre-alpha1 → R1/Development |
comment:21 by , 13 years ago
Component: | Applications → Applications/BootManager |
---|
comment:22 by , 10 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
So, all what's left to do here is #3545. Closing as duplicate.
Partition list of Haiku's bootman