Partition Manager
Pages: 1 2 3 4 5 6 7 8 9 10 11 ... 29
Jon Abbott (1421) 2651 posts |
I’m contemplating writing a Partition Manager for RISCOS and would like to see what features people require. Features
Goals
In Scope
Out of Scope
Mock-up Current Build Available on the JASPP forum – Partition Manager Feedback / Beta Build Can be found here |
Chris Hughes (2123) 336 posts |
Jon, not sure its any help but the ARMX6 already has a Partition Manager, no idea how good it is or if it would work on other machines, might be worth chatting with Andrew Rawnley. I know its unplugged by default on ARMX6 |
Grahame Parish (436) 481 posts |
It might be worth talking to Andrew @ RComp as their ROMs contain PartMan – a partition manager. I’ve not had a need to use it at the moment, so I can’t comment on it. Maybe add xFAT support to the list? |
Rick Murray (539) 13840 posts |
Would this not require also corresponding support in the FS? One of the features I liked about the Morley SCSIFS (in my A5000 days) and Simtec IDEFS (in my RiscPC days) was that I could partition a drive into multiple partitions. This meant that I could use all of the space of a 1GB SCSI drive on RISC OS 3.10 by having it as two partitions, and I could avoid silly LFAU wastage on RISC OS 3.70 by breaking a 3.7GB drive into eight (!) partitions. Another few nifty features of Simtec’s IDEFS (which might be an idea for the partition manager but would also need support in the FS) were:
Also, perhaps:
|
Grahame Parish (436) 481 posts |
Sorry Chris – I hadn’t seen yours while I was checking the ARMX6 modules to get the module name… I’m also assuming a new HForm may be required? |
Grahame Parish (436) 481 posts |
Linux EXT2/3/4 partitions? |
David J. Ruck (33) 1635 posts |
I would prefer if it were written in C for portability, but in any case the the partition format needs to be extremely well documented so I can add support in DiscKnight. |
Julie Stamp (8365) 474 posts |
That sounds comprehensive, but are you aware of this bounty that’s underway? An entirely new HForm is planned, with new interafces, amongst other things, so can I suggest contacting info@riscosopen.org to see if co-ordination is possible? |
Bryan (8467) 468 posts |
posted by Jon Abbott
I’m contemplating writing a Partition Manager for RISCOS I used to like the partition manager I had on my A4 and A410 way back in the dim and distant past. |
Steve Pampling (1551) 8170 posts |
What’s non-portable about BBC BASIC? Number of BASIC programmes with ARMv7+ problems vs. number of C programmes. |
David Feugey (2125) 2709 posts |
It’s open source, so C is not a problem. Just need to recompile the software. |
Steve Pampling (1551) 8170 posts |
There’s your problem – how often do we read postings describing difficulties with libraries, make files etc. The only defence you can bring is to reference compiled code? |
David J. Ruck (33) 1635 posts |
Portability as in I do most of my development not on RISC OS (for all the reasons previously discussed), including DiscKnight which is written in C. It would be very useful to be able to create RISC OS partitions in image files on Linux and then run DiscKnight on them. If its written in BASIC, I either have to port it to Linux first, or use real discs on RISC OS which are slower and less flexible. |
David J. Ruck (33) 1635 posts |
Thanks for your suggestion that I’ll need to rewrite the image filing system to overcome the 2GB limit before I can start, I’ll take it under advisement. |
David Pitt (3386) 1248 posts |
The PartMan module in git is associated with SCSIFS. https://gitlab.riscosopen.org/RiscOS/Sources/FileSys/SCSIFS/PartMan Built it and on the Titanium, removing all SCSI drives and inserting an empty SCSI formatted 128GB pen, proceeded as follows. *help PartMan ==> Help on keyword PartMan Module is: PartMan 0.16 (20 Jul 2018) Commands provided: ListPartitions *gpttest 0 Formatting SCSI ID 0 with 2 partitions size 7397ffb Completed *listpartitions 0 Found 2 disc partitions SCSI ID:00 Start 00000004 Size 07397ffb SCSIFSdisc 0 SCSI ID:00 Start 07397fff Size f8c68001 SCSIFSdisc 0 * From the iconbar icon I now see this disc title, |
Andrew Rawnsley (492) 1445 posts |
PartMan uses GPT (modern) parition tables not MBR. For consitancy, I suggest doing something similar. Although MBR is still understood, any modern non-RISC OS system will be using GPT by default these days. David Pitt – I think your problem with using the partitions may be that ROOL “unpicked” one of the SCSIFS changes such that ROM builds of SCSIFS that don’t have PartMan don’t have the extended partition SWI. Unpicking this fix allowed SystemDisk to work again, I believe, although puzzlingly it works fine on my ARMX6 with (or without) PartMan and extended SWI, so I don’t really know why it was needed (or why SystemDisk couldn’t be made compatible, or a better, universal SWI parameter set agreed). Anyway, I suspect that is your problem. I think it was done in such a way that SCSIFS+PartMan ROM build = extended partition SWI, whilst SCSIFS without PartMan gives “old school” partition swi. (Someone may have a better recollection than I). |
David Pitt (3386) 1248 posts |
@Andrew I am at the moment using a RAM build of PartMan. My next trick should be to get it into the ROM. |
Raik (463) 2061 posts |
For Ti (and other?) you can try Tonis stuff around partman… |
Steve Fryatt (216) 2105 posts |
I thought that we’d explained this at the time, but reading the commit notes from the unpicking, the short answer seems to be that the change to SCSIFS which has been “unpicked” assigned “new significance to R2, which was previously undefined”. That’s not a great thing to do, because anything calling a SWI will expect to not have to set up registers that aren’t defined as parameters. If R2 is defined as “not used”, then suddenly becomes a PartMan-specific parameter in an OS update, then anything which calls the SWI and is unaware of the change1 will very likely “[fail] in various amusing ways” as the commit notes put it. How they fail, or whether they fail at all, will depend a lot on how they were using R2 at the time of the call, and how the system is set up. That’s why you don’t ever just decide to make an additional register significant on an already existing and documented API call. If a new call (ie. a new reason code) isn’t an option, you’re into the murky Wimp territory of passing “magic numbers” into other unused registers so that at least there’s “only” a 1 in 2 32 chance of things happening by accident. ETA. Oh, and it’s not SystemDisc’s problem to be fixed: the OS shouldn’t be getting changed in ways that gratuitously break existing software. From someone who actively promotes running with Alignment Exceptions off and not using High Vector ROMs, the idea that we should fix the software after breaking the OS seems inconsistent at best… 1 Which is pretty much anything. |
David Pitt (3386) 1248 posts |
Thanks, I can now see both partitions as separate disc icons. |
Raik (463) 2061 posts |
I forget and I have not uploaded Tonis (Anton Reiser) Partition Tool. For bigger devices it is possible to use the space behind filecore as FAT32. |
Jon Abbott (1421) 2651 posts |
I’ll try to address most of the points above.
As far as I’m aware it’s not part of the main RISCOS build and being bespoke to ARMX6 doesn’t really approach what I’m proposing, which is all a partition manager that covers all OS versions and Filing systems.
Obviously the partition manager will be able to view and delete Linux partitions, but I don’t intent adding support to create any partitions other than FAT32 and FileCore.
C is not really that portable, as DDE is not free. That issue aside, BASIC is portable back to RO 3.x without the need for any external dependencies. Whilst we’re on the subject on C source, I don’t suppose you would consider making the ARMalyser source available so I can extend it?
MBR and GPT partitions are well documented. You probably don’t need to add support to DiscKnight for this project, but you would want to consider adding support in parallel to the partition bounty.
Yes, the bounty is to add partition support to the OS, which is a whole different beast to managing partitions. Where this does overlap is that I intend to remove the need for HForm completely and handle formatting FAT32 and FileCore partitions within the partition manager.
No. That’s covered by the partition bounty. From a RISCOS perspective, the partition table is outside of the FileCore disk space so RISCOS is blissfully unaware of any partition tables.
I can’t speak for the SCSI interfaces, but I suspect the IDE interface Modules handle partitions in proprietary ways. As far as I know, they don’t use a traditional partition table and probably use onboard CMOS etc. To add support for them, I’d need folk to donate the relevant cards to me so I can code and test support bespoke to each interface. My guess would be that the accompanying Module that comes with the card presents a section of the drive to ADFS, such that ADFS thinks it starts at sector 0. I’m guessing they’re getting around the 512mb limit by using LBA internally. In theory its pretty easy to put a partition shim Module in front of IDE/ADFS and use an actual partition table, this is way down the list though and not really part of the partition manager. As for legacy SCSI interfaces, it might be worth partitioning a drive, shoving it into a modern machine and see if the partitions are visible before considering how to support them.
Easily enough. I’m not sure if the standards allow for out of order partitions, but it shouldn’t affect RISCOS. Not a lot of use for your examples though as none of the legacy interfaces support MBR.
MBR initially, GPT can be added later. My main driver for this is to solve the 2GB Pi image limitation.
I’ll add extending FileCore partitions if the space after is unallocated. To merge two, you’d simply delete the second and extend the first.
Saving the partition table is simply a case of saving the first sector (MBR) or first 34 sectors (GPT.) eg SYS “SDFS_DiscOp”,,1,0,&10000,512 – will read the partition table on a Pi.
The GPT partition table should also contain an MBR partition table for compatibility reasons, the MBR should contain one partition with the system ID &EE to indicate a GPT partition table is present. I’ve added it to the list. |
Steve Pampling (1551) 8170 posts |
That is the best news I’ve heard all year, the number of problems raised on these forums is an indication of the level of the problems people have with HForm |
Andrew Rawnsley (492) 1445 posts |
Given that PartMan seems to have found uses well beyond the ARMX6, it is a shame that a mutually acceptable extension (akin to other RISC OS extended SWI APIs created by Acorn and ROOL) hasn’t happened. That way, we’d avoid compile-time specific changes. Since both elements are in the open source tree, I’m sure something could be agreed/designed to allow it to work in a mutually agreeable manner. This would surely benefit everyone :) |
Jon Abbott (1421) 2651 posts |
I’m not sure I understand what you’re saying :| I had a look at the PartMan source earlier, it looks okay as a CLI interface but only handles SCSIFS. I expect the reason for this is that SCSI was the only filesystem being used on the fork it was coded for, but really the underlying issue is the fact we’ve yet to abstract the filesystem in RISCOS. Having to write bespoke code to get physical device size, write/read sectors etc. as is currently the case, is quite frankly dumb. I’m planning to split off all the filesystems into separate libraries to abstract them, so the partition manager itself doesn’t have to know which filesystem it’s handling. I note John chose a GUID for FileCore, I’ll retain that for consistency. |
Pages: 1 2 3 4 5 6 7 8 9 10 11 ... 29