Shrink your Pup save file or Rescue data out of it

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
kleung21
Posts: 28
Joined: Sat 18 Nov 2006, 07:11
Location: Toronto, Ontario

Shrink your Pup save file or Rescue data out of it

#1 Post by kleung21 »

Although Puppy has a utility to easily resize the pup_save file; there is no easy way to shrink it.

This may be useful; for example, if you have a very large pup_save file that has a lot of empty space and you wish to either "compact it" or transfer it to a usb flash drive that is smaller.

First thing, the pup_save.3fs file is a overall container where your files are stored inside. Linux allows you to mount this file like a drive and play around with the files inside.

Thus, if you make a new pup_save file, open up/mount your old pup_save; you can copy the data over to the new save file.

So, the million dollar question for a newbie like myself - is how?

BACKUP YOUR DATA BEFORE YOU START

Step 1

Create a new pup_save file. ANY file that is named "pup_saveXXX.3fs" is fine where XXX can be anything.

There are 2 ways to do this easily. The first is to boot puppy with the boot option "pfix=ram". This will boot you into a first start/ram disk version of puppy. Then, when you exit/quit - it will prompt you to create a pup_save file. Just specify the size you want to create.

The more elegant way to do it is to actually use linux commands. The following commands were suggested by pizzasgood

dd if=/dev/zero of=file.2fs bs=1M count=20

will make a 20MB file named file.2fs. Then you can turn it into an ext2 filesystem:

mke2fs file.2fs

This is discussed in the following thread.
http://www.murga-linux.com/puppy/viewto ... le&t=13213


Ok, now you have an original pup_save.3fs file and a new pup_saveXXX.3fs file. Now to mount the files and copy the data over.

Step 2 Mount the files

The files can be mounted using linux commands. As suggested by pizzasgood.

That can be mounted with the mount command, which can be added to /etc/rc.d/rc.local:
mount file.2fs /mnt/data -o loop
That would mount it at /mnt/data (the '-o loop' bit is because it's a filesystem image, not a device).

HOWEVER, sunburnt has written an elegant little utility that will mount the 3fs file using point and click. You can download the xfilemount program here

http://www.murga-linux.com/puppy/viewto ... le&t=13213

THUS, just mount the old pup_save and the new one.

IF you used the pfix=ram/puppy linux method to create the new pup_save; I suggest that you delete all the data inside the new pup_save; otherwise, the GUI will prompt you whether you wish to ovewrite directories or files when you copy the old data over.

VERY IMPORTANT - make sure you know which is the source data and which is the new/destination drive. If you mix it up; you will frag all your important data.

Step 3

Just copy the data over to the new; mounted pup_save

Step 4

Unmount your files and next time you boot; just select the right file to load.



Hope this helps,

Kevin

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

Excellent Tutorial

#2 Post by ecomoney »

A suburb resource to a problem thats been vexxing me for some time! Thanks for sharing.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#3 Post by musher0 »

Hello all.

This post only to recirculate useful info that some Puppyists may need.
Although this is an old thread, the way to do this has not changed.

BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Post Reply