AROS Disk Images

miker1264 · 539

miker1264

  • Legendary Member
  • *****
    • Posts: 1320
    • Karma: +82/-3
on: February 06, 2022, 05:02:28 AM
For about twelve years now, (has it been that long?), I have been developing VDI Explorer which is short for Virtual Disk Image Explorer. It is basically a File Manager for Disk Image Files such as the image files that can be mounted using AROS DiskImage GUI and other Disk Imaging Programs. It works with several floppy formats 360kb, 720kb, 1200kb, 1440kb, 2880kb, Zip100, Zip250, Zip750, LS120, LS240, Jaz1000mb, Jaz2000mb, USB/CF/SD Disk Images, Virtual Disk Images. It can also Create, Load & Display CD/DVD ISO disk images. That can be very useful in VMWare.

In the screenshot you see a 1440kb standard PC formatted floppy disk image file. VDI Explorer generated the blank floppy image which I then copied to IcarosDesktop x86_64. I opened it in DiskImage GUI & mounted it so that I could copy some files to the floppy image. It worked well.

In the VDI Explorer window you see that the MS-DOS filenames are the Short-Names while AROS Fat-Handler preserves the Long File Names. Both SFN & LFN are present in the floppy disk image. The .info files were truncated to .INF because MS-DOS only uses three character file extensions.

Some of the C# code for my VDI Explorer may be useful for some AROS programs such as the. ability to Create & Format MS-DOS floppy disk images & Super Floppy Images (Zip100, LS120).
« Last Edit: February 06, 2022, 08:09:55 AM by miker1264 »



miker1264

  • Legendary Member
  • *****
    • Posts: 1320
    • Karma: +82/-3
Reply #1 on: February 06, 2022, 05:15:55 AM
This is the same floppy disk image mounted in DiskImage GUI on IcarosDesktop x86_64.

Notice that the Long File Names are still there and the .info files are unchanged. In MS-DOS they are shortened to .INF to fit the 8-3 naming convention.

So the software for Windows can be used in conjunction with applications from AROS to transfer data, although a flash drive or SD card would probably work much better for that.

Eventually I would like to use some of my code developed for AROS such as Make ADF. VDI Explorer will be able to Create & Format Amiga ADF files both DD & HD as well as HDF.

For that I don't have to write C# equivalents of FFS & SFS file system handlers but in a. future version of VDI Explorer maybe it will be possible with these handlers to open an Amiga ADF file to manipulate the contents just as easily as working with PC floppy images.

« Last Edit: February 06, 2022, 06:45:19 AM by miker1264 »



cdimauro

  • Member
  • ***
    • Posts: 103
    • Karma: +25/-1
Reply #2 on: February 06, 2022, 07:14:50 AM
Since you like to play with filesystems, a tremendous improvement with AROS would be to allow it to boot & naturally use FAT32 as a "native" filesystem, exactly like SFS now.


A good starting point could be the SFS code, which you can fork & adapt to recognize & use the FAT32 structures.


You can also take the chance to refactor SFS's code to a common code / library, which exposes a standard interface to handle filesystems (which then internally implement their specific code to deal with their peculiarities). IF it makes sense, of course (this you could recognize when adapting the SFS code to FAT32. Common code found? -> put in the common library). A benefit will be that common bugs will be fixed one time and shared by alla filesystems implemented this way.


Why this would be a milestone (not only to me)? Because this will allow to create USB sticks or, in general, any storage which can directly boot AROS and easily allowing to exchange data with all other o.ses..
Think about Paolone's Icaros Desktop (or any other AROS "distro): you will not need to install it, but you can immediately use it after having "flashed" the ISO using one of the usual applications (Rufus, for example). This will also make MUCH easier updating the installed AROS distro.


My 2 cents.



miker1264

  • Legendary Member
  • *****
    • Posts: 1320
    • Karma: +82/-3
Reply #3 on: February 06, 2022, 08:00:42 AM
Those are some interesting ideas. I certainly agree that writing more file system handlers is needed such as HFS+ and EXT.
Being able to Mount DMG archives in AROS would be cool. Support for more file systems is needed to be more compatible.
Not sure about booting from FAT32. I will have to look into what is needed or if it is even possible. More research required.  :)

Thanks to Fredrik Wikstrom we have FUSE filesystem for AROS with NTFS-3g and ExFAT-3g. But I haven't tried them yet.

Beign able to quickly and easily create & format all manner of disk images then mount them using diskimage.device is also cool.
After the disk images are mounted is when the file system handlers are needed to manipulate the contents of the disk images.

Of course file system handlers allow interaction with file systems on real physical disks that are mounted on AROS as well.

I don't especially like the way that DiskImage GUI handles mounting and unmounting disk images. I would probably try to make
a DiskImage User Interface that is more inclusive, has more features including making empty disk images, and that is easy to use.


« Last Edit: February 06, 2022, 08:06:52 AM by miker1264 »



cdimauro

  • Member
  • ***
    • Posts: 103
    • Karma: +25/-1
Reply #4 on: February 06, 2022, 08:55:45 AM
Not sure about booting from FAT32.
Think about how AROS uses SFS for everything, and do the same with FAT32.


SFS support hasn't to be dropped, of course: just make FAT32 "first citizen", like SFS.
Quote
I will have to look into what is needed or if it is even possible. More research required.  :)
Definitely. Not an easy task.



miker1264

  • Legendary Member
  • *****
    • Posts: 1320
    • Karma: +82/-3
Reply #5 on: February 06, 2022, 08:26:30 PM
Not sure about booting from FAT32.
Think about how AROS uses SFS for everything, and do the same with FAT32.


SFS support hasn't to be dropped, of course: just make FAT32 "first citizen", like SFS.
Quote
I will have to look into what is needed or if it is even possible. More research required.  :)
Definitely. Not an easy task.

Booting from FAT32 formatted Micro SD Card seems like something the Apollo Team was experimenting with.

If I recall they said the filesystem must be in the ROM and something about scsi.device. I'll start the search there.




AMIGASYSTEM

  • Legendary Member
  • *****
    • Posts: 2448
    • Karma: +61/-1
  • AROS One
    • AROS One
Reply #6 on: February 06, 2022, 08:33:17 PM
@cdimauro

FAT32 is not perfect on AROS x86, try with a Pendrive to rename a File or a folder from Lower Case to Lower Case, even a single letter, on Dopus4 the file will disintegrate, in part it will be deleted, on Wanderer instead you will have the message "file already exists".

--- Italiano ---

FAT32 non Ŕ perfetto su AROS x86, prova con una Pendrive a rinominare un File o una Cartella da Minuscolo a Minuscolo, anche una sola lettera, su Dopus4 il file si disintegrerÓ, particamente sarÓ eliminato, su Wanderer invece avrai il messaggio "file giÓ esistente"


cdimauro

  • Member
  • ***
    • Posts: 103
    • Karma: +25/-1
Reply #7 on: February 06, 2022, 08:48:03 PM
Not sure about booting from FAT32.
Think about how AROS uses SFS for everything, and do the same with FAT32.


SFS support hasn't to be dropped, of course: just make FAT32 "first citizen", like SFS.
Quote
I will have to look into what is needed or if it is even possible. More research required.  :)
Definitely. Not an easy task.

Booting from FAT32 formatted Micro SD Card seems like something the Apollo Team was experimenting with.

If I recall they said the filesystem must be in the ROM and something about scsi.device. I'll start the search there.
On AROS the advantage is that you have no ROM.  ;D


But you can take a look at the Apollo Team's work: maybe it could already have something implemented, which might be useful.


@cdimauro

FAT32 is not perfect on AROS x86, try with a Pendrive to rename a File or a folder from Lower Case to Lower Case, even a single letter, on Dopus4 the file will disintegrate, in part it will be deleted, on Wanderer instead you will have the message "file already exists".

--- Italiano ---

FAT32 non Ŕ perfetto su AROS x86, prova con una Pendrive a rinominare un File o una Cartella da Minuscolo a Minuscolo, anche una sola lettera, su Dopus4 il file si disintegrerÓ, particamente sarÓ eliminato, su Wanderer invece avrai il messaggio "file giÓ esistente"
Understood, but you doesn't need to take the current FAT32 handler.


My idea is to take the SFS one, which is proven to be in a much better functional state, and change the code in order to use the FAT32 data layout instead of the SFS one.


The current FAT32 handler can be used as a reference for the data layout to be used, and maybe part of the code.



miker1264

  • Legendary Member
  • *****
    • Posts: 1320
    • Karma: +82/-3
Reply #8 on: February 06, 2022, 09:55:55 PM
"My idea is to take the SFS one, which is proven to be in a much better functional state, and change the code in order to use the FAT32 data layout instead of the SFS one.


The current FAT32 handler can be used as a reference for the data layout to be used, and maybe part of the code."

If the current fat-handler is not perfected then we should fix it. I have a complete FAT12/16 filesystem & FAT32 filesystem as reference though it is written in C# which is similar to C code.

Interesting story about C language and how it was named. Originally it was developed internally at Bell Labs specifically for working on the Unix system code. But because it was so versatile C language spread quickly to other places. It was named 'C' because its predecessor which was also developed at Bell Labs was called 'B' language. You can guess where the B came from.  :)

SFS and FAT32 are similar in some respects such as using Blocks (Sectors) as basic storage units and having a Boot Block (Boot Sector) and Root Block or Root Directory for FAT32.

But the internal structures are very much different. FAT32 as the name implies uses a File Allocation Table for storing file cluster information. Each entry in the FAT consists of 4 bytes (32bits). Each entry represents a cluster which can be one or more sectors in size. File locations are stored in cluster chains.

Filesystems on AROS such as AFS, SFS, & Fat-Handler are contained in the ROM.  The x86 ROM is different than 68k.

The Apollo Team uses a tool called "Vampire Boot" which is called from startup-sequence. It uses a Mountlist to mount an SD Card volume to boot from. Supported filesystems are Fat95 & PFS3. It works on Amiga OS3.x but not sure about AROS 68k.

« Last Edit: February 06, 2022, 11:36:41 PM by miker1264 »



cdimauro

  • Member
  • ***
    • Posts: 103
    • Karma: +25/-1
Reply #9 on: February 07, 2022, 06:20:03 AM
If you fix the FAT-Handler you can't yet use it for booting AROS from.
The solution from Vampire doesn't look good, because it requires a command in the Startup-Sequence -> you need another filesystem from which boot from.
IMO before fixing the FAT-Handler you can give a try to make it "first citizen", like SFS, so allow AROS boot from it.



P.S. I'm a pascalian.  :D
I really don't like C (and its "sons") as a programming language. I use it only because it's much more wide-spread, and most of the low-level / system / embedded stuff is written in C (or C++).
However for my daily work I'm a Pythonist (and "evangelist").  8)