Upon starting, the computer needs to select one of its partitions from which to load an operating system. This requires a bit of code called a boot loader located at the root of the boot partition, specifically the Master Boot Record.

All hard drives that have Windows installed contain a standard block of code in their M.B.R. If this code gets altered Windows will refuse to boot. It is easy to repair with the WinXP Recovery Console and its //fixmbr// command. Vista users should read here. This is a crucial issue because Puppy can use its own boot loader. This is not an issue if the existing operating system is to be replaced by Puppy.

So, if the existing operating system is to be kept, one has to choose which operating system is to be the primary one to initiate the boot process:

either, the existing operating system (e.g. Windows)

or, the new operating system (i.e. Puppy)

Do you want to continue using Windows as the primary boot loader? If so, you will need to modify Windows so it presents a start-up menu that includes Puppy as one of the options. These changes have to be made from inside Windows and not from within Puppy. There is an on-line tutorial called the Lin'N'Win Project that will do this.

Do you want Puppy to be the primary boot loader? This will involve installing GRUB which Puppy can do. Windows will now run as an option from the GRUB boot menu. However, these will only work if you have installed Puppy into its own partition. And the partition must be formatted using a Linux-compatible file system such as EXT3.

The Puppy Universal Installer (P.U.I.) will refuse to install GRUB in a FAT or NTFS partition, because it assumes that the partition contains Windows. Watch for the cryptic error message "This partition is not Linux". Now we get to the M.B.R. issue. The quickest out-of-the-box solution is to install GRUB on the M.B.R. of the H.D.D. The P.U.I. will warn you about the dangers. But this is only an issue if you want to return your machine to a Windows-only setup in the future. In which case, you would simply run the "fixmbr" procedure.

This should explain what can go wrong with a dual-boot system. Suppose that your Linux install gets damaged or you decide to delete it completely. If your /boot/grub folder has disappeared, the stage1 code in the MBR won't be able to find its stage2 files. The computer will refuse to boot, even to Windows. But now you know how to fix this by restoring the M.B.R.

When Puppy is to be installed to its own partition it may be formatted with the file system of choice. Use either of the following common types:

EXT3

N.T.F.S. (only recommended for when using an external drive, e.g. U.F.D., that will also be used for accessing Microsoft Windows partitions; it will be necessary to use the GRUBforDOS boot loader; using this file system is superior to the F.A.T. file system)

The formatting can be performed using a LiveDVD and going to Menu > System > GParted.

When you do a full install, all of the data in the core Puppy files is extracted from the CD into a file system on your hard drive. Any software you install or files you save are added to the file system, so the total number of files and folders gradually increases.

In a frugal install, Puppy creates another file named pup_save.2fs. When you boot up, the file system stored in the core Puppy files is loaded into memory, but remains read-only. The save file is used to hold all the new stuff you add. These two are merged together so it appears that you are working with a single file system. You get the effect of a full install while Puppy is running, but all you actually see on your hard drive are the core files and the save file.

The main advantage of a frugal install is that you always boot with pristine copies of the core Puppy files. If the install gets corrupted it is just a matter of restoring the single save file from a backup copy. If your save file gets filled up Puppy has a utility for increasing its size. Or data can be stored/moved outside of the save file.

Frugal installations can be made almost anywhere. You can even stick it inside a full install of Puppy or another Linux. Or you can have multiple frugal installs in the same partition.

GRUB can be installed manually. GRUB has two parts - stage1 and stage2. Stage1 is the small block of boot code that gets written onto the M.B.R. Stage2 is the collection of support files that are stored in the folder /boot/grub on the Linux partition. That is also where the GRUB menu file menu.lst is located.

Partitioning tools like Parted Magic, or the partitioning programs in some other Linux distributions, can have a major side effect on Puppy: inode sizes in ext partitions.

There have been reports that Vista can be corrupted if a user tries to shrink the Windows partition using Linux tools. A safer procedure is to use Vista's own Disk Management tool, then create the new partitions using Linux. If you want to keep Vista as the primary bootloader, look at Easy BCD here.

For a frugal installation the file system is placed inside a single file, pup_xxx.sfs, which itself contains a compressed read-only ext2 file system into which the Linux "/" dir is placed, with its sub-directories inside it. There is also a pup_save.2fs file which contains an uncompressed ext2 file system. This one, called the "save file", stores any changes or additions you make to the normal file system. Upon booting, pup_save.2fs is super-imposed over pup_xxx.sfs so that one sees a complete file system. There are only two other small files: initrd.gz and vmlinuz (the kernel). Prior to Puppy Linux 4.00, zdrv_xxx.sfs was also used. Thus you can conveniently back up everything to, for example, a USB flash drive by simply copying /mnt/home/pup_save.2fs (plus vmlinuz, initrd.gz, pup_xxx.sfs) and your GRUB boot loader marker and config files to the drive. Technically though, you only need to back up the pup_save.2fs file, because the rest are all the original files from the .ISO file.

A frugal installation runs faster in high-RAM computers; install is easy to upgrade; and it can be placed on a Windows FAT32 or NTFS hard drive/partition without re-partitioning it.

However, if you have fast newer disks and plenty of R.A.M., frugal loses its speed advantage. On a P3-1GHz machine with 1GB of RAM and UDMA5 hard disks, there is no material performance difference between a frugal install and a full H.D.D install, provided the full install is on a reiserfs partition.

On a P3-800 laptop with only a UDMA2 hard disk, there is a great deal of difference. If you have enough RAM to hold Puppy, e.g. 256MB, then the frugal install is the only way to go.

To be able to dual-boot Puppy alongside Windows without re-partitioning or re-formatting: perform a frugal Puppy installation.

On a full hard disk install, vmlinuz is (usually) in /boot, Firefox is in /usr/bin and so forth. On a frugal install vmlinuz is outside of pup_save.2fs somewhere on the "real" file system. Firefox in frugal is also in /usr/bin, but /usr/bin itself is not directly on the disk but rather is in /initrd/pup_rw which in reality is pup_save.2fs on the disk's "real" file-system, "union'ed" into the overall Linux / directory tree in pup_xxx.sfs using special Puppy magic.

Another thing frugal installs do is copy the pup_xxx.sfs file into ram if there is enough memory, causing applications to start slightly faster. If the computer does not have sufficient RAM, it will instead mount the pup_xxx.sfs file from the HDD.

In the case that a frugal install's pup_save.2fs file is on a flash-based drive, Puppy will actually store any changes and new files you make in RAM, and only copy them to the pup_save.2fs file on the drive periodically (or when you click the "save" icon or shut down). This is to cut down on writes to the drive to extend it's life. This behavior does not happen on non-flash media (if it does you probably forgot to set the pmedia=satahd parameter when using a SATA drive).

You can place a frugal install on a pre-existing Win98 install; the pup_save.2fs (though it itself contains an ext2 filesystem) may reside on a FAT32 or NTFS partition. Which is why a frugal install is also called a "co-exist" install. Not so with a full hard disk drive install: you cannot place a full install on a pre-existing FAT partition because it does not support Linux symlinks.

Puppy can be booted off a non-primary partition. Or you can have the PUI write GRUB's stage1 to a floppy boot disk. Or you can do the frugal install manually and use a boot CD to launch it. In that case, you could even put Puppy in a logical FAT partition which would be sharable with Windows.