Partition Manager 1.01

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.01

Post by JonAbbott »

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

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
    • 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 (provided the underlying filesystem supports them)
  • Supports the following IDEFS Podules under 26-bit RISC OS versions:
    • APDL
    • Beebug
    • HCCS
    • Risc Developments
    • Simtec
  • ST506 initialization (untested)
  • RISC iX partitions (read-only)
Image

Changes since 1.00
  • Fixed an issue when dismounting logical drives, where it might report open files on a different physical disc to the drive being dismounted
  • When checking if an MBR partition size exceeds the drive limits, it now ignores "out by 1" errors where the partition exceeds the drive size by 1 sector (affects drives formatted under macOS)
  • Increased the maximum partitions on Wizzo to 8. Wizzo supports a maximum of 4 partitions and will alert if more than 4 partitions exist
  • Implemented SCSI REPORT LUNs command to support additional LUN's
  • SCSIFS now checks the SCSIFS Module version to determine if Service_SCSIDetached/SCSIAttached are supported
  • UpCall handler was not claiming UpCall 1/2 correctly
  • SCSIOp's were not claiming/releasing the SCSI device correctly, causing drive icons to disappear after a drive operation
  • SCSI read op's were not being tagged as "Read safe" correctly
  • FAT partitions are now rechecked for a FAT32FS mount when being dismounted
  • Initialising a drive with MBR partitioning was not erasing enough sectors to delete an existing full-disc FileCore drive
  • If SCSI REPORT LUNs fails, fallback to trying consecutive LUN's until the first failure
  • Added some additional debug output to capture errors and download issues
  • Added a 1 second timeout around SCSI REPORT LUNs command
  • Moved SCSI command functions that are shared by SCSIFS and MassFS to a seperate library
  • Switched MassFS from FileCore_SectorOp to SCSI ops via MassFS_DriveOp, to support back to MassFS v1.x
  • decoding an IDE IDENTIFY now only sets the physical device if it's currently blank. This allows filesystems with bespoke numbering schemes to set the physical name before performing the IDENTIFY decode
  • SCSIFS now updates the drive scan progress bar before touching a drive, to avoid it looking like the previous filesystem is on a timeout
  • Added Filesystem Module version and CDFS timeout to the debug output
  • Update SparkFS link to 1.55-2
  • If a SCSI device responds NOT READY, it is now sent TEST UNIT READY/START UNIT to power up for 3 seconds
  • Removed most of the blocking dialogues when downloading files and changed to unlimited retries. If no data is received within 5 seconds, a Retry button is now available to cancel and retry the current download
  • Reduced the Wimp poll period when no data is received from the remote host to speed up downloads
  • Corrected an error when trying to write an ICS partition table
  • FAT determination now ignores the FAT trail signature and performs additional pre-checks to ensure key values are within valid ranges, to avoid overflow errors when calculating CountofClusters. If the FAT trail signature is missing, its now only noted in the debug log (fixes detection of pico FAT partitions)
  • Error reporting on Wimp pre 3.50 was not waiting for response before returning to the code, causing the Wimp to crash in random ways
  • Fixed a potential issue when writing the defect list to an ICS drive where it was not zeroing the data block, prior to constructing the new defect list
  • When initialising a drive, the drive partition type was being set after the partition table was written, so couldn't be used during initialisaion
Known issues/caveats
  • Does not recognise FAT partitions embedded in a full disk FileCore drive, that have no accompanying MBR/GPT partition entry
  • Currently makes no attempt to link a FAT partition to an accompanying DOSFS file on the Pi (ie !Boot.Loader)
  • Does not calculate the free space in FAT12 or FAT16 partitions
  • Freespace on FAT32 may not be accurate as it shows the freespace as reported in the FAT header; it does not trawl the FAT itself to get the exact current freespace
  • GPT Basic partition contents are not checked for NTFS/FAT formats etc
  • FileCore partitions have to be mounted for Partition Manager to display the free space
  • Does not detect drive insertion/removal
  • ST506 drive size detection is untested and may not work
  • Partitions with an overlayed FileCore drive will incorrectly show partitions that start after the FileCore area as being within the FileCore area
  • Bespoke SCSI partitioning is not supported (eg Castle, Oak, Power-Tec)
  • No attempt is made to identify MBR/GPT partitions on filesystems that do not natively support them
  • When initialising a Pi Boot drive on an SD card, the SD card cannot be hot-swapped if SD was used as the OS boot drive. The workaround is to format the new SD via a USB adapter
  • URL's for Pi Firmware, RISC OS builds, HardDisc4 builds, NetSurf, SharedUnixLib, IconV, Tinct, PackMan, SparkFS are currently hard-coded into the app, so may not reflect the latest versions available when initialising a Pi Boot drive. The install of PackMan on the new drive will also not know about any of the apps that were pre-installed via Partition Manager
  • Alsystems Power-Tec SCSI appears to ignore LUNs, causing each device to be mirrored 8 times
Extending
Partition Manager is modular in design, allowing additional filesystem support to be added without altering the main program. Refer to the documentation for details on internal variables, procedures and functions required to add filesystems, partitions and formats.


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

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

Please provide feedback / debug reports in the feedback thread. Debug output can be written to !PartMgr.debug/txt by holding ALT when launching
Attachments
partmgr101lite.zip
Lite version for RO3.x machines
(173.32 KiB) Downloaded 727 times
partmgr101.zip
(514.52 KiB) Downloaded 827 times
Post Reply