read-only file systems
Explanation of the Squash file system: PDF
Puppy can make use of programs that have been packaged in the SFS format which consist of a single file with the file extension .sfs
- place the SFS file at /mnt/home, then
- either (A) follow the instructions at (requires re-booting): Menu > System > BootManager
- or (B) follow the instructions at (does not require re-booting): Menu > Setup > SFS-Load
- soon another option will be available
- accessed through either the Menu or the command-line interface (and not by clicking on the SFS package file)
# mksquashfs SYNTAX:mksquashfs source1 source2 ... dest [options] [-e list of exclude dirs/files]
mksquashfs <path_to_directory> <path_to_directory>.sfs -noappend
Verify the installed version of mksquashfs with:
Advantages of Squash file compression
"SFS-TCZ_Linker may be a good idea if you absolutely must run liveCD only (no rebooting, no session saving.) But running a standard frugal with pupsave, the Linker will add symlinks to the pupsave layer only--and later remove them, even if similarly named files or links were later added via PPM, Gslapt or other means. This is likely to adversely affect reliability and stability. With a full install any files removed would be gone forever, making it even riskier. So at least for now, if you are saving your session at shutdown I still recommend a frugal install and BootManager for adding SFS files."
Adding too many layers to AUFS reduces performance and slows down saving.
01micko writes "I made a tool (see my signature) that makes it super easy for anyone to make a pet or sfs out of debs, if you want you can try it and maybe suggest where I can make improvements. debs2pkg or alien2puppy, the former is what it says and the latter supports Slack tgz and txz formats."
1.0.7 users can do the following
edit your rc.local to add the following lines
echo "Making more loop devices..."
mknod /dev/loop5 b: 7 5
mknod /dev/loop6 b: 7 6
mknod /dev/loop7 b: 7 7
if [ ! "`ls /mnt/home/usr_packagex.sfs 2> /dev/null`" = "" ];then
echo "Mounting /mnt/home/usr_packagex.sfs file on /.usr_packagex..."
losetup-FULL /dev/loop5 /mnt/home/usr_packagex.sfs
mount -r -t squashfs -o noatime /dev/loop5 /.usr_packagex
unionctl /usr --add --after /root/.usr --mode ro /.usr_packagex
if you are multiple .sfs files the increase then use the next /dev/loop that is empty i.e. the next usr*.sfs will go in /dev/loop6. If you run out of loops make new ones using mknod command as show above.