Come to the tropics and meet new friends!
Philippine teachers: at ease and cheerful


Puppy Install to Hard Disk
for versions 1.03 and newer
View comments

The following discusses Puppy install to a separate hard disk partition. If all you want is to use Puppy in WindowsXP/2000, click here.

Preface: Live Linux CDs are convenient in that they make no difficult requirements on the user and existing PCs (i.e., assuming the PC's hard drive is FAT-formatted, not NTFS -- check on this by looking at "Properties" of your hard disk). If you see "NTFS", then go to the next page. As to using sufficient memory for running your Puppy CD, refer to the following. This display shows the minimum memory space that will be required by the three main files of Puppy, based on version 1.03:

minimum RAM

You can check this, too, by mounting your current Puppy CD using the Mount utility, then use File Manager - Rox, select these three files with CTRL-Click, and finally Right-Click to view the Disk Usage by the 3 files.

And shown below is the actual memory space used by Puppy (shown via the console command "df -h") when fully loaded (which is what you want, of course, so you can eject the Puppy CD and use another CD for playing music or video). Note that about 9 MB is added to 61 MB (from above), to require at least a 70 MB filesystem in memory.

no hd memory usage

The implications of these are:
  • You will need at least 70 MB RAM to load the files of Puppy version 1.xx (standard) to memory: 96 MB seems to be the actual minimum RAM for this;
  • You will need at least 100 MB to load Chubby Puppy (version 1.04 with OpenOffice) to memory: 128 MB seems to be the actual minimum RAM for this.
  • The trick is to keep Puppy from thinking that it can fit in your RAM and it suddenly won't, which cripples it - this means that it is better to be in excess or short of RAM rather than have just the exact size for Puppy!
If you do not have this minimum required memory, make sure that Puppy can use ready hard disk space for additional/virtual memory, such as a swap partition (this usually exists in hard disks already installed with Linux in the past, or refer to the partitioning guide below).

Installation: OK, that means you will keep reading here and onwards only if your hard disk is NTFS-free (such as: it has FAT or Linux partition/s, or you just decided to erase all partitions - why not, Puppy has all the goodies for your desktop PC. The hard disk can be partitioned in many ways. The usual case is a single partition, which you see as drive C in Windows. Sometimes there is another drive, D, so this will be the second partition. There is usually no more than two main partitions in Windows. Should you be seeing more, the additional partitions are just virtual - all of them are contained in the second partition called "extended" partition in Windows.

This is the naming convention:

Primary partitions: 1, 2, 3, 4 - called /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4 in Linux. These are reserved numbers for every hard disk (no more than four primaries). One of these (usually /dev/hda1) is made active, the partition assumed to contain boot-up information.

Any one of partition 2, 3 or 4 can become an extended partition, which will then contain partitions 5 and higher. An extended partition is like a placeholder of other, virtual partitions. It can not be alone as it is only a placeholder. But it can not take in primary partitions. This explains why virtual partitions are numbered 5 or higher.

For simplicity, let us put Linux in the extended partition, so it will have /dev/hda5 for the Linux proper and /dev/hda6 for the swap partition. Make your /dev/hda5 at least 200 MB - this is for regular install, make it at least 300 MB for Chubby Puppy (version 1.04 with OpenOffice). For the swap /dev/hda6, make it at least 64 MB, or 2x the memory of your PC if you have more hard drive space. How to do the math for this? You can plan before repartitioning your hard disk. The required free space will be = size of (Linux partition) + size of (Swap partition). Some people retrieve a retired hard drive from the closet and plan to use the whole drive, like: 300 MB for Chubby Puppy and 120 MB for swap = 420 MB hard drive! My minipup2 (full version) is very similar to Chubby Puppy, so these same numbers are valid for version 2.

Before proceeding, make sure that you did not mount the Linux partition earlier (Unmount now if you did). Not mounting any partition is always the safest way to start, which reminds you to use the option for not saving to hard disk in Puppy 1, or "puppy pfix=ram" in Puppy2.

Note: Special utilities allow you to resize your partition without harming your data, such as Partition Magic (in Windows) or GNU Parted (in Linux). A floppy-based solution is TeraByte Unlimited's BootIt Next Gen shareware, downloadable here and discussed there (The brief how-to says: "Included is a diskette image. You make the image [diskette] then boot it. Decline its offer to `install`. Freely redistributable by individuals who don't charge [a fee]"). Caution when resizing NTFS partition - the utility may indeed resize the partition, but can not guarantee that Windows will still work afterwards! Your data will still be intact, though, readable by Puppy. Now, if you feel all these are too troublesome, then just backup your data, say in CD or in another hard disk, then use cfdisk in Puppy to erase all partitions and create new ones. (Update: For Puppy 2.02+, you can safely use Gparted to resize any Windows partition, although sometimes you have to first make sure that it is defrag'ged, scandisk'ed, and rebooted if it is in disarray.)

In console, you command "cfdisk" to view your partitions. See the picture below. The UP and DOWN arrows move the highlight up or down the partitions, while the LEFT and RIGHT arrows move the highlight over the menu choices. The label "boot" means that it is the active partition (that will be searched at boot time).

cfdisk

Assuming you have resized your old partition, you will have free space which you can use to create new partitions. You can play around and create, delete or resize partitions as necessary (using only the free space, and not doing anything to the old partition/s). Then save/write the changes. This will write the changes to your hard disk (and will suddenly wipe out your old files if you accidentally deleted the old partition!).

Note: While still in terminal, format your swap partition by "mkswap /dev/hda6" and then turn on swapping by "swapon -a" (substitute the correct name of your swap partition to "/dev/hda6"). If only resizing of the main partition is done (from where the new, smaller partitions were created), rebooting may not be necessary after partitioning (and before hard disk install). If you rebooted the system (the safest choice), press this number at boot time: 3 in version 1.04 and later, and 2 in version 1.03 - this is to restrain Puppy from using any partition for storing data. Press ENTER afterwards when it asks for a partition number (that is, enter nothing). Update for Puppy 2: type this at boot time: "puppy pfix=ram" (without the quotes) and press ENTER.

Here is the case of our demo hard disk as probed by Puppy:

partitions

Unusual, isn't it? There are three Windows partitions. But true to the two-partition limit of Windows, there are only two FAT partitions. The third Windows partition is the Extended type that acts as a placeholder for virtual partitions (that are numbered /dev/hda5 and onwards). Note that the extended partition has "none" for filesystem format (it is only a placeholder, remember?). Check again the notes above.

For the daring who install only Linux on the hard disk , you will have only /dev/hda1 and /dev/hda2.

If Puppy has used your target partition for storing data (that is, if "pup001" or "pup_save.3fs" was saved in that partition), your installation process will fail. Puppy saves data in a Linux partition when there is no ready FAT partition found, so this exceptional case does happen. See the red text above for proper booting that prevents this problem.

Now, back to the Puppy desktop. Choose Setup - Install Puppy Hard Drive and off you go. (Update for Puppy 2: the Setup option is Universal Installer which is more simplified and has many choices of media.)

step0

step1

step2

step2a

step3

Some funny things can happen here. If you are using two CDROM drives, the script may look for the CD in THE OTHER drive. So if you know that the CD is already inserted in one drive, eject it and insert in the other drive. Also, the script may want that you ACTUALLY EJECT THEN CLOSE the CD drive (even if it is your only CDROM drive and the Puppy CD is already there).

step4

step5

step6

step7

Notes: One of these "working" (wait, I am busy) boxes will appear during the succeeding steps and stay on-screen until you click on the "OK" button. Don't wait for long when these buttons appear - the step they refer to is generally done quickly.

working1
working2
In version 1.04, you get more choices of screens. Choosing the "Simple" option will always be safe for you.


These are the Grub installation steps:

step7a

step7b

For the next step, I always choose "MBR", but I guess you can choose "Root" if the Linux partition is the one active (the active partition is usually /dev/hda1, though this can be changed by "cfdisk" command in console - see the opening discussion about partitioning your hard disk).

step7c

step7d

And you're done! You can now use Puppy in hard disk. Don't forget to eject the Puppy CD from the drive and then reboot!


done for Puppy by Raffy Mananghaya

Viewed 48573 times since July 19, 2005

 

What if we use another distro to create Grub, as I'm finding a Fat32 partition not very secure. But it has to be one that will work with about 64 RAM on a 6x86 Cyrix 266 mhz motherboard. Any suggestions? Victor 5.01 SOHO CD wouldn't boot. I installed Debian but got rid of it as no GUI started with startx. Guess I need more time with the terminal or command line, but it's time consuming to research what will run in low memory conditions. Slackware seems to come to mine, any pointers? I have a 8 GIG hard drive and can do 1024x768x24 VGA OK.  
 
Thanks,  
ChiJoan  
 
Hi, ChiJoan, Puppy is still the best for those conditions - but perhaps not Chubby Puppy (the one with Open Office). Choose the 60 MB standard Puppy 1.04. You will miss the presentation software, which is bulky, but you can easily substitute images or PDF for presentations. Create PDF files with Scribus. Display image presentations with the image manager. The installation to your hard disk will still be as recommended above. Make a large swap partition (say 256 MB) if you want heavy PC usage. Good luck!


I tried to run the script to install Puppy in the hd, but I haven't any cd-rom drive (I'm running from a FAT partiton and a boot floppy) on the notebook. I have a ext2 partiton, but the script goes wrong in STEP 3. Any suggestion? Thanks  
 
Hi, Giorgio, you must be using Windows XP, so why not go to the next page for installing Puppy to Windows XP drive?  
 
If you use a different partition for Puppy, read on:  
 
The two scripts in /usr/sbin: install-hd2.sh and installfuncs control the process. You have to modify those parts in install-hd2.sh that call the "ripfromcd" (from a function inside the file installfuncs), specifically:  
 
remove the "ripfromcd" command and replace it with the copying commands from installfuncs, using the actual location of vmlinuz (like /mnt/home or /mnt/hda1);  
 
so rather than "copy from cdrom", it will be "copy /mnt/home/vmlinuz to /root/tmp";  
 
replace "ripfromcd /root/tmp" by the following:  
 
echo "Now copying file vmlinuz..."  
cp -f /mnt/home/vmlinuz /root/tmp  
sync
 
 
then delete the following lines:  
 
#rm /root/tmp/image.gz #don't want this!  
 
rox -D "/mnt/cdrom" > /dev/null 2>&1  
umount /mnt/cdrom  
eject /dev/cdrom  
echo " "  
echo "Please remove the CD and close the tray"
 
 
Lastly, you may have to copy these two files to /tmp if you cannot modify them in their current location, then run install-hd2.sh (option 2).  
 
Good luck!


I picked up the puppy 2.0 alpha snapshot and had no idea how to install to hard drive.  
this helped me as the Universal install script wasn't as pictured.  
 
using cfdisk to delete all partitions, creating a hda1 (ahd hda2 swap) then doing the mkswap and swapon steps got the installer into a flow more reconizable.  
 


I found this very helpful, thanks, this is what I did:  
 
1. Started with a spare blank 6GB hard drive, used DOS FDISK from floppy to create a 3.5GB primary partition, formatting it to FAT32, leaving the rest unallocated.  
 
2. Booted Puppy Linux LiveCD v 1.08  
 
3. Got LAN connected, so I could get to the Internet and read these instructions. Following these, I created a swap partition /dev/hda2 of 256MB and the rest as ext2 /dev/hda3 (approx 2.3GB) for a Linux area for Puppy to play around in.  
 
4. Additionally, I installed the grub loader in MBR (I felt OK with this, and nothing was on the Fat32 first partition to mess up - YET!) and rebooted to test.  
All was fine, I was offered choices of booting to Windows (no point nothing there) or to Puppy Linux, and two other choices of installing GRub to floppy or /dev/hda3 - which I chose first, then Puppy booted from the hard drive with no problems.  
 
Success!!  
 
My next step is to install a Windows system into that blank first partition, but I foresee no problems with that, so hopefully I will have a working dual boot Windows/Linux system soon  
 
Once again, thank you for a very clear and detailed tutorial, Raffy.


You cannot use the existing partition. But you can adjust the size of your existing partition so you'll have a free unpartitioned space for puppy. Then you can create a new EXT and SWAP partition using "Partition magic" in windows. Install the puppy and configure your GRUB boot loader for a Dual Boot System.


Hi, I'm a newbie to all this so please bear with me....Am I right that any installation of Puppy needs a partition? e.g. you can't just install the 4 files to a drive with Windows already installed on it?  
 
You must have missed this link about the Windows installation of Puppy (the link is at the Preface section above).  


Disclaimer: No warranty is given or implied above - use this tutorial at your own risk.