![]() |
on a hard drive |
Main page | Puppy news | Forum | flash-Puppy | live-Puppy | hard-Puppy | Puppy projects |
This page documents my "second take" at installing Puppy on a hard drive. The original method involved creating a partition, and so on, as per any normal Linux installation. However, Puppy from version 0.7.6 has a super easy method of installation.
Here is the original page: "hard-Puppy, Take One".
The only requirement is that you have a boot manager installed. My PC has the Grub boot manager, as that is what came with Red Hat 8.0 when I installed it. So, the description here is for Grub, but should be readily adaptable to other boot managers such as Lilo.
Puppy version 0.7.6 does not need his own partition. Any partition will do, as long as it is vfat, ext2, ext3 or reiserfs. Windows is usually installed on a vfat partition, that we call the "C: drive", however if it is a ntfs partition then you can't use it. This version of Puppy does not fully support ntfs, only for reading-from, not writing-to.
Here are the simple steps:
1. Install vmlinuz and image.gz
When you boot up live-Puppy from a CD, mount the CD using "Puppy driver mounter" (see the menu, under Start > File managers), and copy vmlinuz and image.gz to the hard drive. let's use the Windows partition, the C: drive -- it will probably already be mounted, at /mnt/cdrive, so use ROX to copy those two files across. Place them in the top level "C:\" directory.
2. Edit the boot manager
So far I have only had experience with the Grub bootloader. Mount the partition that has the /boot/grub directory. Right-click over the file grub.conf and open it in a text editor. It will look something like as follows, and you need to add the lines that I have shown in bold:
default=1 timeout=10 splashimage=(hd0,4)/boot/grub/splash.xpm.gz title Red Hat Linux (2.4.18-14) root (hd0,4) kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ hdc=ide-scsi initrd /boot/initrd-2.4.18-14.img title DOS rootnoverify (hd0,0) chainloader +1 title Puppy Linux rootnoverify (hd0,0) kernel /vmlinuz root=/dev/ram0 ramdisk_size=49152 PFILE=pup1-none-524288 PHOME=hda1 initrd /image.gzAn important thing to understand here is that "(hd0,0)" refers to hda1, "(hd0,4)" is hda5 and "(hd0,2)" is hda3.
Apart from editing grub.conf, nothing else is required, as the bootloader will automatically look at that file during booting. Some other bootloaders may need an extra step to install the changes.
3. Reboot
That's it, Puppy should start!
What is going on here is you are using the Windows partition (in the above example), which is normally partition hda1. This does not interfere with Windows in any way, as all you are doing is using 3 files on the partition.
vmlinuz is the Linux kernel, the actual operating system. image.gz is the Puppy files, and this file will get loaded into RAM at bootup, into a ramdisk. Notice the size specified for the ramdisk of 49152K, which is 48M. You must set this value to match the version of Puppy. What I mean, is that each version of Puppy is designed to work in a particular size of ramdisk. Version 0.7.6 is designed for a 48M ramdisk.
The boot manager will load vmlinuz and then load image.gz into the ramdisk. Puppy will then create a file called "pup1", with no encryption and of size 524288K (512M) on hda1, the Windows partition. That file is a 512M ext2 filesystem that is then mounted on /root.
When running Puppy, your personal folder is /root, and you have 512M to play with. This is a complete ext2 filesystem, but from Windows point of view, that is, when you boot up Windows, it just sees three ordinary files on the C:\ drive, vmlinuz, image.gz and pup1.
Puppy is thus a "cuckoo", and can live inside any partition, Windows, Linux, whatever, without affecting that operating system. ...I thought about calling him "cuckoo-Puppy"!
If you want to read more about those parameters "PFILE" and "PHOME", go to the "Configuring Puppy" page.
Note that I named the "home device" file as "pup1". The reason for this particular name is that the live-Puppy CD automatically creates a home device file named "pup0", of size 128M. You can use this one for the permanent installation if you want, it's just that maybe you will find 128M to be a bit too small. I chose 128M for evaluation of Puppy, and just in case there's not much space on the host partition.
Maybe it is possible to resize the file as needs get more, but I haven't investigated how to do that.
If you don't specify "PHOME", Puppy will default to doing a search of your PC, looking for a partition with filesystem vfat, ext2/3, or reiserfs, in that oder, and if found will create file "pup1" in it.
Of course, as you are messing around with bootup parameters, just in case anything does go wrong, understand that you do this entirely at your own risk. I think that this method of placing files on a host partition is relatively safe, in particular compared with installation methods that require repartitioning.
Please give me feedback! If you succeed with another boot manager, or if you install a boot manager specifically for the purpose of installing Puppy, let me know how it goes. Or rather, go to the Puppy Discussion Forum and let us all know. If there's some really neat freeware boot manager, let use know about that.
(c) Copyright 2003 Barry Kauler www.goosee.com/puppy