Information regarding DriveSetup implementation
|Reported by:||mmadia||Owned by:||stippi|
This ticket is to help consolidate details of implementing missing features in DriveSetup.
Partitioning support in Alpha/1 from [haiku-development] This entire thread should be read.
boot manager error from [haiku-development]
No you didn't miss anything, Create and Delete and still showing as (not implemented).
Correct. It's not only DriveSetup, the problem is the unfinished disk device add-ons (with regard to write support). There are two add-ons, one for "Intel Partition Map", which handles (the four) primary partitions and "Intel Extended Partition", which handles "logical partitions" when one of the primary is an extended partition. The later is unfinished and the former could use some work as well. Initially, I was on the wrong track with regards to representing the options in DriveSetup. For example, there is no such thing as a "logical partition" in the on disk structures. There is multiple conventions for partition layout, different operating systems support different stuff, a great potential for screw ups here. So I didn't explore this any further for the time being, I have a pile of uncommited changes that I did before realizing there are no "logical partitions" (as a type). When a partition is created, it is actually created with the type of the file system, I thought one could create a partition and then decide on the file system, wrong. Need to get back to that sometimes...
misc thread from [haiku]: I've looked into this before and some of the stuff which is missing in the kernel is really not obvious. I tried to start with a clean drive, but there is already a problem, the Haiku kernel does not assign a disk system (Intel Partition Map?, EFI GUID?, Amiga Disk System?) to that. But most operations, like even getting the list of available disk systems in a user program, require a valid object hierarchy in the kernel. Personally, I don't regard it as critical for Alpha1 but it would be nice if someone finally tackled this for real. It must be done sometimes... :-) Maybe Ingo and I could both mentor this.
Another reply, from the same thread from [haiku]
How do you initialise a partition as BFS?
The disk system has to be already established. Ie it needs to be Intel Partition Map, and the partition needs to exist. At least DriveSetup allows you to initializes whole drives, but then there is no disk system. The file system in this case starts at offset 0. No MBR or anything like that. Why initializing doesn't work in your particular case, I do not know.