Pup logo

 flash-Puppy

Page partially updated
Oct 7, 2009

Just gotta say, I went through like 10 linux distros so far, including ******, ********, ******* (which trashed my windows partition) **** linux and ***. and dang it, I install this one to my flash drive in like 5 minutes, reboot, and bang! with the little (temporary) exception of the sound, EVERYTHING WORKS!*

This page applies to running Puppy on any bootable USB storage media, such as flash memory, USB-Zip drive and USB-hard-drive.
My "first take" with installing Puppy was on a tiny USB Compact Flash (CF) card (plugged into a USB-CF-reader interface), as I really like the idea of having all my personal data and the operating system in something that I can carry in a shirt pocket or wallet. In theory, I can then boot Puppy on any PC with a USB socket. Here are snapshots of a CF card and a pen drive:

pen drive

Since my first experiment with a CF card, I have moved on to what are called "pen drives", that are now very popular. They keep dropping in price... April 2004, I purchased a 128M pen drive for A$70. August 2004, I purchased a 128M Astone pen drive for just A$39 (about US$27) Dec 2005, 128M Flash drives selling for A$18. Now into 2008 and the minimum size is 1GB and it costs barely $15.

Simple as anything to go into the BIOS setup during power-up and change the second boot device to "USB ZIP" (Award BIOS) or whatever works for your BIOS.

A warning: some USB Flash drives are difficult to boot off, and some PCs have BIOSes that do not boot from USB or have peculiar restrictions:

I have a motherboard that I purchased in 2004, and I have a friend with a laptop also purchased new in 2004, and both have one thing in common: the BIOS does not even have an option to boot from USB -- today, that is really pathetic, so do check before purchasing. Bring your Puppy usb pen-drive into the computer shop and see if it boots!

These days USB pen drives have the "standard USB mass storage interface", so will work on any PC running Windows or Linux without needing a special driver. Ditto for many digital cameras and mp3 players (in fact, Puppy can be installed to these!). However, there are some USB memory/camera/mp3-player that do not have a standard mass storage interface, and these will not work with Linux -- make sure before buying and if you find one for sale, be sure to tell the saleperson that it's crap.

It is good to look at the Puppy Discussion Forum to read the experiences of other users.
Note also, we are gradually building up the Wiki with useful links on this topic.


How to obtain and install flash-Puppy

Go to the Puppy download page and download live-Puppy (file puppy-xxxx.iso, where "xxxx" is version number plus some options), that boots off a CD. Burn to CD, bootup Puppy, and in the "Setup" menu you will find an entry called "Puppy Universal Installer". Select that, and follow the simple instructions.

It's that simple, however you will of course need a PC with a CD burner to be able to burn the ISO file to CD. If you don't have a CD burner, you will have to use an "iso buster" program (see some links on the Puppy download page) to extract the files out of the ISO file, then follow the manual installation instructions given below.

Ha, ha, it is putting the cart before the horse, but Puppy v2.10 (and later) has ISOMaster (see "Multimedia" menu), which is an "iso buster". You can use it to extract files from and insert files into a ".iso" file. Once you have got your first Puppy live-CD burnt and Puppy running, you will be able to use ISOMaster.

Well, Puppy 3.00 and later goes even further. All you have to do is click on an .iso file in a ROX-Filer window and it is automatically mounted. Then you can copy files out of it. Then click the .iso file again to unmount it. But again, you need to have a running Puppy to be able to do this.

How to upgrade flash-Puppy

The Puppy Universal Installer can also be used to upgrade an existing installation.

However, if you wish you can also do it manually. If you look at the installation of Puppy on the USB pen drive, you will see very few files. Most importantly, the files initrd.gz, vmlinuz, pup_xxx.sfs and zdrv_xxx.sfs:

vmlinuz
The Linux kernel. This is the Linux operating system. It is the first thing that loads into RAM in the PC.
initrd.gz
The initial ramdisk. The ".gz" means that it is compressed. Uncompressed, the file contains a complete Linux system, all the files needed to start Linux running. Immediately after the kernel is loaded, the initial ramdisk is loaded into RAM.
pup_xxx.sfs
These are all the files that constitute Puppy. The "xxx" is the version number -- for example, Puppy 2.10 will be "210". This is a very large file, typically 50 - 65M and is compressed with Squashfs. Normally, this also loads totally into RAM and execution transfers to it from the initial ramdisk.
zdrv_xxx.sfs
This has the complete collection of kernel drivers and associated firmware.

To update to a new version of Puppy, all you need to do is replace those four files. That's it, very simple, and that's all that the Puppy Universal Installer does.

"If it's so simple, can I just do it manually?" Yes, just left-click on the .iso file to mount it, then manually copy them to the USB pen drive. Don't forget to click on the .iso file to unmount it, and also unmount the pen drive. Voila, next time you boot the pen drive, it's upgraded!

How to manually install Puppy the first time

The above section applies to a manual upgrade, but the very first time, you do not yet have anything installed to the pen drive, and some extra steps are involved.

For now, I'm not documenting how to do an initial pen-drive installation manually, as I very strongly recommend that you create a bootable CD to run Puppy for the first time. This is by far the easiest way to do things. If your PC does not have a CD-burner drive, find one that has Internet access and does have a burner drive. The download page has instructions for burning to CD.

Once you have your first live-CD and Puppy running, Puppy has the lovely Universal Installer for installing Puppy to various media. Puppy also has superior applications for burning to CD or DVD.

Warning to MS Windows users
In the Puppy Linux forum, there are a few reports of the files on the Puppy live-CD being incorrectly named. Especially "PUP_430.SFS" (in the case of Puppy version 4.3).

What needs to be understood is that this is not a new "bug", all prior puppies have it.

The reason that you are seeing the wrong filenames is because you are using MS Windows. That is, running Windows, you plug in the Puppy CD and view the files in Windows Explorer.

I presume that you are doing this to copy the files for doing a frugal hard-drive install or USB Flash drive install.

The Puppy live-CD ISO file (CD image) is created without Joliet extensions -- this is needed for MS Windows to read the filenames on a CD/DVD correctly. This is what causes the problem.

The reason that Joliet extensions is left off is because I had experience that it breaks saving of sessions for the multisession-CD/DVD (saving sessions back to the CD/DVD, no hard-drive or other storage media required on the PC).

So, the question must be raised, why are you running Windows to copy the files off the Puppy CD? You need to wean yourself off this dependence on Windows. Boot the live-CD, then you have a running Puppy!

Alternatively, maybe you only have the downloaded 'pup-430.iso' live-CD image, you have not burnt it to CD, and you are running MS Windows, and you use a Windows application (Isobuster?) to view the contents of the ISO file and copy out the files.
Really, you "should" be running Puppy or some other Linux, but if you really must be running Windows to perform this operation, then copy the files and then rename them...

This is how Windows sees the files:
BOOT.CAT BOOT.MSG HELP.MSG INITRD.GZ ISOLINUX.BIN ISOLINUX.CFG
LOGO.16 PUP_430.SFS VMLINUZ ZP430305.SFS
For frugal install, copy the required files to the destination then rename them to (note only some builds of Puppy have the 'z*' file):
initrd.gz pup-430.sfs vmlinuz zp430305.sfs
...most important, rename PUP_430.SFS to pup-430.sfs!

Note, viewing inside an ISO file when running Puppy is a piece of cake. Just click on it!

How to boot the PC from a USB pen drive

Most modern PCs support booting from a USB drive. If not already configured, it is a matter of invoking the BIOS setup when the PC first powers-up. Most often this is done by pressing the DEL key, but some PCs require a function key to be pressed, such as F2. Then, what is called the "boot order" can be setup, and you would typically set CD drive first then hard drive, or you can include a USB drive or floppy drive in the boot-check sequence.

In the BIOS setup you may find some choices for different types of USB drives, such as "USB ZIP", "USB FLOPPY" and "USB HDD" -- the letters "HDD" mean "Hard Disk Drive". A pen drive will usually work with the "USB ZIP" setting, but it depends on the BIOS and you may have to choose "USB HDD".

If you have an older PC that cannot boot from USB, or you have an odd pen drive that the BIOS doesn't recognise (it happens!), there is a fall-back. This fall-back applies also to PCs that cannot boot from a CD drive. This is to use a boot floppy. Puppy has something especially for this situation, called WakePup, developed by Puppy enthusiast "pakt" -- look in the "Setup" menu and you will see an entry "WakePup create boot floppy". This will create a floppy disk that your PC can boot from. The WakePup floppy disk scans the PC and finds Puppy on a USB drive, hard drive, or CD/DVD drive.

Note however, as it is a DOS-based system WakePup can only recognise ISO9660, FAT and NTFS filesystems. CDs use the ISO9660 filesystem for holding files, so that is okay. USB pen drives are usually formatted with FAT16 filesystem, so that is also okay. MSDOS and Windows 95/98 installations are in hard drive partitions with FAT filesystems, so again okay.
WakePup will recognise Puppy installed in a NTFS (Windows XP) hard drive partition, but I believe this is still experimental. WakePup will not recognise Puppy in a Linux partition.


(c) Copyright Barry Kauler, 2006,2008. All rights reserved. www.puppylinux.com
No part of this page is to be reproduced anywhere else. I have found that there is a problem where parts of my web pages are being inserted at other sites, then not updated, whereas I am updating my pages regularly. This is not a desirable situation, so please just link to my pages.