hard-Puppy | Page updated Oct 11, 2009 |
I installed PUPPY to my hard drive 30 days ago . It has run flawlessly without 1 single instance of error or lock up. I abandoned all versions of winblows some time ago and have tried near every distro of linux @ distrowatch over the past year. Some have been nice but slow even on my pentium3/256mem. Where linux is usually a titanic of an O/S and slow going PUPPY works at lightning speed and has everything i need for day to day use and then some. * |
As Puppy has evolved, installation to hard drive has become easier and easier. I wrote a program, called the Puppy Universal Installer,
that installs Puppy to many different media, including hard drive. In
fact, it allows very specific installations, to USB, SATA or IDE hard
drives -- even to a CF (Compact Flash) card plugged into a IDE adaptor
("IDE" is the standard traditional type of internal hard drive
interface, so the CF-adaptor adapts the CF card to the IDE ribbon
cable). The Universal Installer does not need lengthy explanations --
just use it and follow the step-by-step instructions.
You need to have a running Puppy to use the Universal Installer, so
it is required to boot up the live-CD. When Puppy is running, look in
the "Setup" menu and you will find an entry "Puppy Universal Installer".
Go to the Puppy download page to download the Puppy live-CD ISO file.
Is there anything you need to know before installing to hard drive?
Well, you should consider the types of partitions in your hard drive.
Also, the Universal Installer supports two types of installation to
hard
drive:
Frugal |
The files vmlinuz, initrd.gz and pup_xxx.sfs
(and maybe z*.sfs, the "zdrv") are copied to a partition.
This partition may already have something installed on it and that will
not be disturbed. This can be any type of partition, MSDOS, Windows
(FAT, NTFS) or Linux (EXT2, EXT3, EXT4 or REISERFS). For most people this is
the recommended option. |
Full |
A full installation, taking over the entire partition. This is the normal traditional Linux hd installation, and requires the partition to have a Linux filesystem (EXT2, EXT3, EXT4 or REISERFS). |
The Universal Installer will give you more advice about these
options as you use it.
So, in a nutshell, you download the Puppy ISO file (live-CD),
which is named something like "puppy-431.iso",
burn it to a CD, then reboot the computer. You should then have a
running Puppy, and you just go to the "Setup" menu and you will find
"Puppy Universal Installer".
Some people like to do a frugal install of Puppy manually, and
this is quite simple also. You choose what partition, then copy the
files 'vmlinuz', 'initrd.gz' and 'pup_xxx.sfs' (and maybe 'z*.sfs') from the
CD to the partition. Normally you would place the files at '/' in the
hard drive partition, but Puppy has support
for installing into a subdirectory.
Note: if you do this from Windows, you may see the files on the CD are
upper-case characters, so after copying them to the hard drive
partition please rename them to lower-case letters -- see the "Warning to MS Windows users" box below.
Note, the manual copying of files to the hard drive is also
how you can do a version upgrade. Very simple, just replace the old
files with the new ones.
Warning to MS Windows users |
In the Puppy Linux forum, there
are a few reports of the files on the Puppy live-CD or ISO-file being incorrectly
named. Especially "PUP_430.SFS" (in the case of Puppy version 4.3) whereas the correct name is "pup-430.sfs". 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 that Windows requires the ISO file (the CD image) to be created with Joliet Extensions. This is an extension to the original iso9660 filesystem. The Puppy ISO does not have Joliet Extensions as it causes problems with the multisession mode (saving sessions back to the CD/DVD). The Puppy ISO has Rock Ridge Extensions, which is equivalent to Joliet Extensions and is the most common extension used in Linux. If you use Windows Explorer, the Windows file manager, to look at the contents of the CD, you will see the wrong filenames, as Windows does not understand the Rock Ridge Extensions. If you use Isobuster or 7-Zip (Windows aplications) to look at the ISO, they do understand Rock Ridge and will read the correct filenames. However, a warning about Isobuster: if you already have it installed, older versions may not be Rock Ridge aware, so upgrade to the latest. The problem does not occur if you use a running Puppy to extract the files from the ISO or live-CD. With Puppy, all you have to do is click on an ISO file and it will be opened. If you absolutely have to use Windows Explorer to obtain the files from the live-CD, read on. This is how Windows sees the files: BOOT.CAT BOOT.MSG HELP.MSG INITRD.GZ ISOLINUX.BIN ISOLINUX.CFGFor 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! |
If you do a manual frugal install, you will then have to think how to get Puppy to boot. Some notes on this follow...
WakePup to boot from floppy
Most PCs support booting from a floppy 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.
Puppy has something special, called WakePup,
developed by Puppy enthusiast pakt (forum name) -- 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 and FAT 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 this is currently experimental. WakePup will not
recognise Puppy in a Linux partition.
Configuring GRUB or LILO
This is a good link for learning all about GRUB:
http://www.troubleshooters.com/linux/grub/grub.htm -- "GRUB from the ground up"
Pizzasgood has contributed this:
http://www.murga-linux.com/puppy/viewtopic.php?t=9965 -- "Using LILO to boot Puppy"
Here are some notes on the forum about configuring GRUB for Puppy:
http://www.murga-linux.com/puppy/viewtopic.php?t=1598&postdays=0&postorder=asc&start=48
The Universal Installer uses GRUB, and this is generally
superior to LILO (personal opinion!). If you do a manual frugal install
of Puppy to a hard drive partition, it is quite easy to add another menu
entry for GRUB, if you already have GRUB installed. GRUB would be
installed to one of the partitions on your hard drive, normally in
directory /boot. Most likely in directory /boot/grub you will find a
file named 'menu.lst' -- open that with a text editor and add the new
entry.
Say that you have done a frugal install to partition 'hda6'
and you have the Puppy files in the '/' top directory of the partition.
Then an extra entry in menu.lst like this should do it:
title Puppy Linux 4.3 frugal
rootnoverify (hd0,5)
kernel (hd0,5)/vmlinuz root=/dev/ram0 pmedia=atahd
initrd (hd0,5)/initrd.gz
Or even just this:
title Puppy Linux 4.3 frugal
rootnoverify (hd0,5)
kernel /vmlinuz root=/dev/ram0 pmedia=atahd initrd /initrd.gz
Note1, please leave the 'root=/dev/ram0' out if booting Puppy version 3.00 or later. That is, remove that text entirely.
Note2, the 'pmedia' parameter is a
helpful hint that assists Puppy to determine the type of boot media and
to configure everything correctly to run from that media. This
parameter an be any one of these:
Kernel with /proc/ide...Puppy 4.0 introduced a build with the 2.6.25.x kernel and the new libata PATA system for handling IDE drives. You can tell this when you run Puppy as the /proc/ide directory will be missing.
usbflash usbhd usbcd ideflash idehd idecd idezip satahd satacd scsihd scsicd cd
OR, kernel without /proc/ide (libata PATA)...
usbflash usbhd usbcd ataflash atahd atacd atazip scsihd scsicd cd
Note 1: Puppy 4.3 ships in three flavours, a 'standard' build with the 2.6.30.5 kernel and 'retro' builds with the 2.6.21.7 and 2.6.25.16 kernels. Only the 2.6.21.7 build has /proc/ide.
Note 2: even if you are using the newer kernels, the older naming for 'pmedia' should still be ok (Puppy will internally do a conversion).
Note, if you leave off the 'pmedia' parameter, Puppy will do a best-guess and will probably guess correctly. Extra note: also, if booting from live-CD/DVD, 'pmedia=cd' is sufficient, as Puppy is able to work out whether it is a IDE, SATA or USB CD/DVD drive.
If you install the files into a sub-directory, say 'puppy430', you will need something like this:
title Puppy Linux 4.3 frugalNote that extra parameter, 'psubdir=puppy430'. Puppy may work without that, but it is a guide that helps to decide where to look for the Puppy files.
rootnoverify (hd0,5)
kernel /puppy430/vmlinuz pmedia=atahd psubdir=puppy430
initrd /puppy430/initrd.gz
If you have done a full-install to say hda6, then you will need something like this:
title Puppy Linux full-install (on /dev/hda6)
root (hd0,5)
kernel /boot/vmlinuz root=/dev/hda6 ro vga=normal
C/C++/Vala/Genie compiling
Puppy has a very simple system for converting into a complete
compiler environment, in which you can run the usual "configure",
"make" and "make install" on a downloaded source package. At least,
it's very simple in the case of running Puppy from live-CD: see web
page Puppy on a CD.
Vala and Genie Heh heh, if you are new to Puppy (and not totally "with it" as regards the coolest new programing languages), then you will be puzzled about Vala and Genie in the title. Read the Introduction to Genie. |
All of the tools required for compiling are in one single file, named devx_xxx.sfs, where the "xxx" is the Puppy version number -- for example, Puppy version 4.3.1 is "431".
If you do a frugal install, it is also very easy to use the
SFS files, exactly as for a live-CD. Once you have created a "pupsave"
file (a file to save your personal data, which you will do on the first
shutdown), then you will find directory '/mnt/home' pointing to the
mounted partition where the "pupsave" file (normally named
'pupsave.2fs') is located. You just download 'devx_xxx.sfs' or any
other SFS file to /mnt/home, run the BootManager to choose what
SFS files you want to be loaded at bootup, then reboot.
Note, the BootManager is in the "System" menu.
Currently, installing the "devx" file in a Type 2 (full)
hard drive installation is more complicated, and you can't undo it. It
involves some steps....
2. Click on the devx_xxx.sfs in a ROX-Filer window to mount it.Note, the '--remove-destination' option is essential. If you only use '-f' to force overwrite, it will follow (dereference) a symlink, that can cause unexpected overwrites.
3. Open a terminal in the mounted directory.
6. # cp -a --remove-destination ./* /mnt/hda2/
7. # sync
8. Close the terminal.
9. Click on the devx_xxx.sfs file to unmount it
Warning about SFS files SFS files are great, see the Package Management Overview page. However, they have a limitation, cannot be loaded and unloaded with the BootManager if you have a full hard-drive installation of Puppy. In that situation, read the above instructions given for the "devx_xxx.sfs" file. |
(c) Copyright 2006,2007,2008,2009 Barry Kauler puppylinux.com