Code: Select all
mount -t vfat -o rw /dev/hda1 /mnt/home
mkdir /.usr_cram
rmdir /usr
# rm -r /usr
mv /usr /usrsave
ln -s /.usr_cram /usr
losetup /dev/loop0 /mnt/home/usr_cram.fs
mount -r -t squashfs -o noatime /dev/loop0 /.usr_cram
http://www.pupweb.org/puppy/puppy-startup.htm
When your Puppy is not booting properly, you may choose to CTRL-C to a command prompt. rc.sysinit seems to contain most of the startup logic. But it is not smart enough to always work, and not dumb enough to just let you tell it what to do. You can try to study it to understand things, but changing it is a challenge, since it is packed into image.gz.
So, if you want to explore things at the half-booted point, you have only the command line, and also very limited tools, mostly just Busybox. If you study the sysinit script, you will find that most of the complications are due to trying to handle every imaginable situation. The core steps needed for just *your* situation may be pretty simple, if you can just figure out what they are. The above simple script worked for me for a hard-drive type install to a flash card on an IDE adapter with one MSDOS partition, to get usr_cram.fs mounted so there is access to bash, mp, and most all the files of a full Puppy.
I put the file on the Puppy freeDOS boot floppy (which has a lot of free space) named cram-mt. To use it, I just boot to failed Pup, CTRL-C, then:
# mount /dev/fd0 /mnt/floppy
# /mnt/floppy/cram-mt
and there it all is, the universe of full Pup files -- and you are not forced to learn vi, you can use the easier command line text editor mp.
I don't understand much about loop devices yet, but they are clearly key to how Puppy works. Any good reference/tutuorials about this? Seems like someday the Puppy cram should be renamed, if it is really squashfs.
System:
107alpha on 128MB flash-hd msdos partition, set up by 106
128MBram P-233MMX Compaq DP-2000 13dec05