Partition Manager 1.03

Format/Partition hard discs on all versions of RISC OS
Post Reply
JonAbbott
Posts: 3066
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Partition Manager 1.03

Post by JonAbbott »

A drive partitioning, initialisation and FileCore/FAT formatter for all Acorn / ROOL versions of RISC OS.

Partition Manager offers Pi boot drive initialisation, with adjustable FAT / FileCore sizes and options to select stable or beta Pi Firmware and stable or nightly RISC OS builds. Optionally it will pre-configure the drive with the current Harddisc4 contents, NetSurf, PackMan, NVMeFS/WiFi drivers and their dependencies.

A smaller lite version is provided below for RISC OS 3.1x machines, with Pi boot drive initialisation removed.

Available below as an attachment for non-networked/pre RiscPC machines, or via PackMan using the source URL detailed at the bottom of this post.

Features
  • Supports RISC OS 3.x onward, with no external dependencies
  • Supports full-disc unpartitioned FileCore drives, GPT and MBR partition tables and MBR partition tables with an overlayed FileCore drive (Pi)
  • Supports drives hosted on the following filesystems:
    • ADFS / ADFS4
    • ATAFS
    • HDFFS
    • IDEFS
    • MassFS
    • NVMeFS
    • SCSIFS
    • SDFS
    • ZIDEFS
  • Supports initialising a Pi Boot drive, with selection of either the last stable or latest version of HD4 contents, Pi Firmware and RISC OS version
  • Initialisation of partitions as FileCore or FAT16/32
  • Supports 512n, 512e and 4Kn drives if the underlying filesystem supports them
  • Supports initialisation and modification of partitions on most legacy IDE Podules under RISC OS 3.x
  • Supports the following IDEFS based Podules/hardware:
    • A9home
    • APDL
    • Beebug
    • HCCS
    • ICS
    • Risc Developments
    • Simtec
    • STD Unipod
  • ST506 initialization (untested)
  • RISC iX partitions (read-only)
Currently unsupported
  • Watford IDE
Image

Changes since 1.02
  • MBR partition tables are sorted by disk order before being interpreted
  • GPT's MBR protective partition assumed to be valid if 1 sector too large
  • The BPB_TotSec16 size check was wrong, causing FAT16 partitions greater than 65535 sectors to be invalid
  • Altered FAT BPB_Media check to match Microsoft documentation
  • Adjusted FAT Sectors per Cluster to match Microsoft's current recommendations
  • The Fragment ID for the FAT "Loader" partition and UBoot area are now calculated, not hard-coded
  • NVMeFS support added
  • Added some additional debug output when scanning for available filing systems
  • Modified the Module version detection as it was failing on v0.01
  • "Mount with FAT32FS" menu option will now only show if FAT32FS supports the partition's underlying filesystem
  • Fixed an issue with FAT32 where the volume name would not be found if it occurred in the first directory sector
  • When initialising a drive, it was not clearing the existing partition table
  • Corrected an issue when writing FileCore layouts to 4K drives, which would corrupt the sector if the write was mid-sector
  • Fixed an issue in ADFS which wasn't checking a drive is supported before pre-filling various variables, causing the next filesystem's first drive to potentially get named "ADFS n"
  • Now handles FileCore partitions where the logical drive sector size is smaller than the physical LBA size
  • The Bootloader FAT partition is now aligned to a MB boundary to comply with Linux partition alignment restrictions
  • When writing an MBR, the sector is first read before clearing the MBR region to avoid overwriting the FileCore Disc Record at &C00 on 4K drives
  • When formatting a FAT partition, it was not adjusting the partiton type to match the chosen FAT type
  • Fixed an issue that was causing the wrong partition start/end CHS values to be written to disc when writing the MBR partition table
  • Added an UpCall claim around the first FileCore action after initialising a Pi or Pinebook Boot Drive, which avoids the "Insert disc.." prompt when the dismount/remount fails
  • Moved common code for Pi/Pinebook Boot drives to the Internet library
  • When updating a window position, the window's X,Y are now returned to ensure menus appear relative to the window if its moved by the Wimp when displayed
  • Changed drive addressing type to a bitwise field to support mixed-mode drives that support both CHS and LBA addressing. This allows MBR and FileCore to use reported CHS geometry if it exists, regardless of the actual addressing mode in use
  • Fixed an issue on GPT partitioned disks, where the sectors used for the backup GPT where not being reserved when there's unallocated space at the end of the disk
  • Before formatting a FileCore partition, the size is now checked to ensure it results in a multi-zoned FileCore format
  • Minimum size of usable unallocated space on GPT increased to 10MB to match MBR
  • Unallocated blocks on MBR/GPT are now aligned to MB boundaries
  • Fixed an issue scraping the available HardDisc4 versions
  • Pi Bootdrive: The latest NVMe and WiFi driver packages are now included
  • Pi Bootdrive: Adjusted !Boot.Choices.Internet.Startup to load the WiFi driver and perform a DHCP request on whichever driver wins out. This should allow WiFi to be the priority and RJ45 to act as a fallback
  • Added a check for the drive detach/attach SWI that are currently missing from the ROOL release of NVMeFS 0.03
  • Added NVMeFS support for FAT32FS v1.64
Extending
Partition Manager is modular in design, allowing additional filesystem support to be added without altering the main program. Refer to the documentation below for details on internal variables, procedures and functions required to add filesystems, partitions and formats.
EXTENDING.zip
(9.52 KiB) Downloaded 482 times
NOTE: On networked RISC OS 3.5+ machines, use the PackMan distribution to receive automatic updates. Add the following URL to the PackMan sources:

Code: Select all

https://www.jaspp.org.uk/packages/release

NOTE: This software is used at your own risk and is provided on a best endeavours basis. Always ensure a backup is taken before modifying partitions on existing drives

Please provide feedback / debug reports in the feedback thread. Debug output can be written to !PartMgr.debug/txt by holding ALT when launching. Contact details can be found in the application help file.


NOTE: As of 25th May 2024, NVMeFS 0.03 that is currently provided on the ROOL site is missing extensions that Partition Manager relies on to inform NVMeFS that the drive contents have changed following partitioning/formatting. NVMeFS may not be fully supported until the extensions are added and tested - Formatting might fail, or at minimum a physical reboot will be needed immediately after formatting to avoid issues. Creating a Pi Boot drive on NVMeFS will not be possible until this is resolved. RISCOSbits are aware and will hopefully resolve the problem soon.
Attachments
partmgr103lite.zip
lite version for RISC OS 3.1x machines
(177.79 KiB) Downloaded 487 times
partmgr103.zip
(526.83 KiB) Downloaded 586 times
Post Reply