Hi Mike3:
Many questions – one post. Much confusion. In the future try to break them up such as asking about spot in a different post.
Short Version:
All puppys published in the last 6 +/- years will use an adrv.sfs and/or a ydrv.sfs if it/they are located next to your puppy.sfs. YOU WILL STILL NEED THE zdrv.sfs and any fdrv.sfs. Their contents will not be in the new adrv.sfs or ydrv.sfs.
Save2SF is an alternative way of preserving the current state of your system to Saving to changing the contents of your SaveFile/Folder or remastering your puppy.sfs. If that current state has a menu entry, the preserved state will have a menu entry.
Save2SFS gives you the choice of whether to include an existing adrv.sfs in a new ydrv.sfs. It gives you the choice of just creating an adrv.sfs. Which means you’ll still need your old ydrv.sfs. Depending on the choices you make running Save2SFS, you may be able to delete or move your old adrv.sfs or ydrv.sfs.
Delete or Move. After creating a new adrv.sfs or ydrv.sfs your SaveFile/Folder is no longer necessary. You can delete it. But its safer to move it either out of your Puppy’s folder or into a folder –I name mine ‘protect’-- in your Puppy’s folder so that it is at a lower level than your Puppy's System Files. If you’ve moved it and something went wrong you can retrace your steps and get back to where you were without having to start from scratch. A SaveFile/Folder is READ-WRITE. Moving them while in use can damage them. To move or copy them you have to boot ‘pfix=ram’. Or you can create a backup before you run the Save2SFS application.
Longer Version and ListDD:
You have a frugally installed Puppy. For a technical explanation of how it works, see viewtopic.php?p=55827#p55827. This is my layman’s understanding leaving out some technical details such as how Puppys make use of inodes, caching and buffering to manage files in RAM.
A location in RAM can only be occupied by one file. When it is possible for two or more files to occupy that location instructions in your operating system determine which competing file is to occupy that location.
A frugal Puppy uses a ‘merge-file-system’ creating anew, on boot-up, in RAM your working operating system by reading into RAM the contents of those file-systems (SFSes) you have on your storage medium: Puppy.sfs, ydrv.sfs and adrv.sfs in that order, overlaying one on top of the other so that you only can use the top layer if its contents covers something on lower layers. Kind of like using layers in a graphic program: you only see what’s on top.
On boot-up Puppy also copies into RAM the contents of a zdrv.sfs (drivers to communicate with hardware) and, if present, fdrv.sfs (firmware also needed to communicate with hardware). Sometimes both drivers and firmware are provided in the zdrv.sfs. As their files are in unique folders, their contents do not ‘cover’ each other or any other file which makes up your operating system in RAM.
When and if you’ve have a SaveFile or SaveFolder, on boot-up its contents are NOT copied into RAM. Rather, it is mounted and links to its content are created in RAM. Those links have the second highest priority; 2nd only to the files you’ve later installed or modified in RAM. You are always operating in RAM.
[Application SFSes –such as LibreOffice.sfs-- are handled the same way as your SaveFile/Folder: mounted with links to its content created in RAM. Application SFSes, however, have lower priority than the contents of your SaveFile/Folder. AppImages and portables are handled similarly with only links to their content in RAM. AppImages are mounted when you click them].
Your operating system, including all the applications it can use, are files in RAM, or can be pulled into RAM through the links in RAM.
When you install a pet (or other package) initially its contents are only in RAM. Its contents will ‘overwrite’ in RAM any conflicting files which had been copied into RAM, and overwrite any link to mounted file-systems’ files. But that application is only in RAM. RAM is cleared when shutdown/reboot finishes. So if you shutdown without Saving the application which was only in RAM and its contents are gone. On the other hand, if before or during shutdown you execute a Save, the contents in RAM are written to your SaveFile/Folder.
[While operating there’s a folder named /tmp in RAM to which files temporarily needed are written. The Save application has instructions not to save anything in the /tmp folder].
The nicOS-Utility-Suite creates another option. Its Save2SFS module can create a new adrv.sfs and/or a new ydrv.sfs. Creating a new adrv.sfs will capture the contents of your old adrv.sfs; a new ydrv.sfs will capture the contents of your old ydrv.sfs and (optionally) your old adrv.sfs. Either will capture the contents of your SaveFile/Folder and any application (and settings and configuration files) already in RAM, even if not yet Saved. Neither will capture the contents of /tmp folder.
Neither a creating a SaveFile/Folder, nor creating a new ydrv.sfs nor a new adrv.sfs alters the contents of an fdrv.sfs or a zdrv.sfs. YOU WILL STILL NEED THEM. It’s just that –if you installed other drivers or firmware-- they will be in the SaveFile/Folder, or ydrv.sfs or adrv.sfs depending on which technique you’ve used to preserve that addition to your system. And, as aforesaid, those files systems have priority in your 'merged in RAM file-system': so the other drivers or firmware will be part of your 'merged in RAM file-system'.
About files in an SFS: an SFS is a (squashed) file-system. If you mount it you can see its structure and can file-browse into folders to see the files and folders it contains. Those files are in locations where a Linux operating system expects to find files of that type. The pets or packages you install already have their files in the proper locations. The same is true of SFSes. Installing a pet merely copies files from the pet into its corresponding place in RAM. Loading an SFS merely creates a link in the proper place in RAM to the file on storage. [Which is why pets and SFSes built for 64-bit Slackos don’t always work in ‘Ubuntus’ and vice-versa: they expect some files to be in different locations].
You are correct. Most binaries are in /usr/bin. But not all. If it’s not there, this is how I use ListDD when examining a file-system I’ve mounted or copied such as when working with an adrv.sfs. File-browse to /usr/share/applications and look for the desktop file of the application. It’s Exec= argument gives the name, sometimes the location of the file which starts the application. If the location wasn’t given, within the folder I am examining I Right-Click an empty space, select Windows>Shell Command and type pfind. When pfind opens I click the Current button, then type the name from the Exec= argument. The report will find every file in the ‘Current Folder’ having that name. The file which starts the application will be in a folder named bin or sbin. File-browse to that folder. The file will be a binary, a symbolic link to the binary or a bash-script calling the binary. If a bash-script, you’ll have to open it in a text editor and read it to find the binary. If its a symbolic link, Right-Click it and select Show Target from the pop-up menu. When you finally find the binary, Right-Click it and select ListDD from the pop-up menu.
No one said that this will always be easy.
Because you are working with a ‘merge-file-system’ the only files you have to include in an SFS are those not otherwise found on your system. If you’re not sure, it won’t hurt to include a file. Only one will be used by the merged-file-system.
“I now have my webbrowser run from spot. Would it be possible to store it in an .sfs file but still have it run from spot? How would I make this work?” Please start this question in its own thread unless the following answers your question. When you have an application running as spot and modify the system by Saving to a SaveFile/Folder or capturing the contents of RAM to a new adrv.sfs or ydrv.sfs the application which previously ran as spot will still be ‘run as spot’ in your modified operating system.