Getting Started with Puppy Linux:
Wagonmaster and Chief Iceman: David "Pa" McClamrock
Getting Started with Puppy Linux
Puppy doesn't have a lot of system requirements. Just about any PC with an Intel or AMD "x86" processor, either 32-bit or 64-bit, should do. Puppy will run even on computers with pretty old, slow processors, like under 200 MHz. I don't know exactly what's the oldest, slowest computer Puppy has ever run on, but it was probably so old and slow that you'd never want to use it if you could help it!
You do need to have at least 256 MB RAM. If you load Puppy from a live-CD and you have less than 256 MB RAM, Puppy may still boot up--but it won't let go of your CD drive until you shut down or reboot! That's because Puppy won't load your entire main file into RAM, and will need to read parts of the main file from the CD instead. If you have at least 256 MB RAM, the entire main file will go into RAM (which makes Puppy run really fast), and your CD drive will be available for other things after you remove the Puppy CD.
What about hard-drive space? Zero. That is, you don't have to use any hard-drive space. You can even run Puppy entirely from the CD, connect to the Internet, print, play sound and video, and much more, without installing or storing anything to any fixed or removable medium at all.
But what if you, like me, want to install some additional programs, save some files, keep some configuration information, and boot up fast (like from a hard drive) instead of slow (like from a CD)? That's only slightly harder. For that, you need only two files to be somewhere other than your Puppy CD (unless it's a multi-session rewritable CD, but mine isn't).
How can that be? Well, these are not your average files. They're special "squashfiles" with an .sfs extension, and they each contain an entire Linux filesystem in compressed form. One of them is the Puppy main file from your Puppy CD (called "lupu-525.sfs" or something like that), which contains all the original programs and data you start with. The other is the pupsave file (now called "lupusave-525.sfs" or something like that, but it's the same thing, so why not call it by the same name?). This contains all or almost all of your added programs and data (except what you save to non-Puppy files--see the section about Filesystems and File Management). If you make a change in something that came with the main file, the changed part actually goes into the pupsave file, which "covers up," but doesn't remove, the corresponding portion of the main file.
Where should these files go? Pretty much any place that can hold them; it's best to have at least 700 MB available (or more, if you want to put a whole lot of stuff in your pupsave file; you can resize it with the Utility --> Resize personal storage file menu item). They can go on an internal or external hard drive, a flash drive, a multi-session rewritable CD or DVD . . . . So far as I know, there's only one place they could go where they probably should not go. That, unfortunately, is a Windows NTFS-formatted partition.
Why not? Well, there have been reports that a finicky, peevish, bigoted, easily corrupted NTFS filesystem may (or may not) break down and refuse to work if you so much as touch it with a Puppy file. Fortunately, the same isn't true of the older VFAT format, the standard format for flash drives and Windows 9x-formatted hard drives. Even better, of course, is a Linux-formatted hard drive, like on my computer (where the Linux partitions are left over from my Mandriva installation, and NTFS partitions have always been prohibited).
If you don't have any Linux partitions ready to use on your existing internal hard drive, the best bet is probably an external (or an extra internal) hard drive, if you have one or have a bit of money to spare to buy one. You can use the System --> Gparted partition manager menu item to give it a Linux format (I use the "ext3" format). It's possible to create a Linux partition on a Windows-formatted internal hard drive, but I wouldn't want to try it. You can use a flash drive instead, but then Puppy will periodically interrupt you to save things to the flash drive. (It does this to prolong the life of the flash drive; if you save to a hard drive, you don't get interrupted.) If you have less than 128 MB RAM, you'll also need a Linux swap partition (use System --> Gparted to create one).
If you're ready to give Puppy a try, go to the Puppy download page. Even with dial-up, you should be able to download the ISO overnight through one of the links on that page; with my DSL connection, it takes about 20 to 40 minutes, depending on how fast the connection is working. Then just burn the ISO to a CD as you would with any other CD image. (Connoisseurs first use a little procedure called "md5 checksum" to verify that the ISO is OK; ask for details on the Puppy Forum if you wish, or just use a rewritable CD and try again in the unlikely event that you get one that isn't OK.)
When you've got a Puppy CD, insert it in a CD/DVD drive that your computer can boot from, and reboot. Soon you'll see a screen with a big Puppy logo and a boot: prompt. Hit Enter or wait the prescribed number of seconds, and then you'll have to wait a few minutes while the Puppy main file is loaded into RAM from the CD. (When you first shut down or reboot from Puppy, you'll get a chance to copy the main file to a hard drive, flash drive, or whatever, which will make the boot-up a whole lot faster after that; do it!)
After the main file is loaded and a few other things happen, if you're running Puppy 5.2 or greater, you should see the Puppy desktop displaying a little window like the one to the right (except it probably won't be purple). Select the language, timezone, and keyboard if you didn't automatically get the right ones; don't check "Use UTC Hardware Clock" unless you're sure you should. Then select the video resolution, if you don't like the one that automatically comes up.
After you've selected the video resolution, you'll get to test it (strongly recommended if this is your first time using Puppy). Tab to the "Test" menu item and hit Enter; if the test works right, you'll soon see a correctly displayed box asking you if it did. If it didn't, hit Control-Alt-Backspace to get a plain black screen with white letters; remove your Puppy CD; type reboot or poweroff, whichever you wish to do; and hit Enter. (If you've got less than 256 MB of RAM, keep trying to get the CD out until you're allowed to do it.) Then go to another computer (or temporarily revert to another operating system on yours) and consult the Puppy Linux Discussion Forum about what to do. On the other hand, if the test comes out OK, you'll be instructed to hit Control-Alt-Backspace to exit the test. Then, if all goes well, you'll soon see the Puppy desktop again.
Your Puppy desktop will look somewhat different from mine, since I modified mine and you didn't modify yours yet--but yours, like mine, will have a Control desktop icon on it. (On older versions of Puppy, the icon is called Setup and it gives you fewer things to do, but it's still there.) The first thing you'll probably want to do with Puppy is to connect to the Internet, especially since that's how you get to the Puppy Forum if you need any help. So, you either click the "Connect" desktop icon, or click the "Control" icon to open up the Puppy Control Panel (shown to the right). Then you click the Network tab, and then "Network Setup" (if your Internet connection is through a router connected to your computer with an Ethernet cable) or "Internet Connect" (if it isn't), and follow the steps. Right?
Well, maybe . . . except you might not need to! I didn't, when I installed Puppy 5.2 and its successors; my Internet connection was automatically detected and configured, and I didn't need to do anything to get it going. See if that's true for you too, like by trying to install a Web browser (see the page on Adding Programs and Enhancements for Puppy Linux). If you're not as lucky as I was, just click the "Connect" icon or button, select your type of connection, follow some simple steps like when you got connected to the Internet with your previous operating system, and you should be connected very soon. If not . . . you know what to do (see above, in the section on what to do if the video doesn't work).
The other configuration procedures are pretty simple too, and they usually work (if you even need to use them), so I won't waste time telling you much about them now. (For example, to set up a printer, just click the Hardware tab, then Printer Setup, Administration, Add Printer, and follow the steps.) Once you're connected to the Internet, the world is open to you--and, more specifically, the Puppy Forum is open to you. I might even answer one or more of your questions there myself, if you have any.
OK, now listen up. When you've got your Puppy system configured, it's a good idea to reboot your computer, for two reasons.
First, one of Puppy's fairly few bizarre features is that the directory where you put your pupsave file changes its name after you've rebooted with the pupsave file in place. Mine was originally called "/mnt/sda6," but after I rebooted with the pupsave file it was called "/mnt/home." (If you don't have any idea what those directory names mean, see the section on Filesystems and File Management, below.) When I first started using Puppy, I was pretty peeved to find that my browser's home page on /mnt/sda6 couldn't be found after the first reboot, because /mnt/sda6 was now called /mnt/home!
Second, you should reboot because then you'll be prompted to create your pupsave file, where your configuration options will be saved. Just make sure you know where you'll want to put it; if that's on a removable medium (e.g., flash drive, external hard drive), make sure Puppy is detecting the medium.
How do you do that? Near the bottom left corner of your Puppy desktop, you'll see drive icons for hard drives, CD drives, flash drives, or whatever drives Puppy can detect. (There's also a floppy drive icon, even if your computer doesn't have a floppy drive.) If your removable drive isn't plugged in, plug it in and wait some seconds; an icon for that type of drive should show up. If you still don't see the drive icon, Puppy isn't detecting the drive; see if anyone on the Puppy Forum can figure out why not, and what to do about it.
If your drive is detected, make sure to remember how it's designated (e.g., "sda1," "sdb1," or whatnot). Then you can reboot, and it should be detected again before the actual reboot happens. You'll be asked whether you want to create a personal save file (pupsave/lupusave), and to select a drive partition for it if you do. Select the drive, pick a size (e.g., 512 MB), follow the prompts, and the file will be created. As I said, you should also get a chance to copy your Puppy main file to the same drive for faster loading.
After the reboot is complete and your Puppy desktop reappears, your configuration options should have been saved, and you should be ready to do just about anything on your computer--as long as you already know how to find files in the Linux filesystem. If you don't, you should read on.
In many ways, Puppy makes Linux about as much like other, more familar operating systems (OS's) as possible, plus it lets you do some things you can't do with the other OS's. One thing Puppy can't do, though, is to make the Linux filesystem quite like the filesystem of a well-known OS that uses letters like A, B, C, etc. for filesystems on different drives.
What happened to the "C" drive? It's still there; it's probably called "sda1" or something like that, and you should see a drive icon for it near the lower left corner of your desktop. If this were Windows, you could see all there is to see of the filesystem just by clicking on all the drive icons and navigating through the directories on the drives. Since it's Linux, though, you can't.
What else is there? Well . . . this may sound a bit spooky, but there's a skeleton that can be in more than one place at once, and can float in RAM without being attached to any drive. When you first run Puppy, the Linux OS "kernel" (including all the basics for making the OS work), plus the entire contents of the Puppy main file, are loaded from the live-CD into RAM--and nowhere else. That includes the filesystem skeleton and all the files connected to it.
The skeleton's head is the top directory of the entire filesystem, known only as " / " (slash). (Some people call it the "root" directory, but I don't; that would look and sound too much like the "/root" directory, which is your "home" directory in Puppy. See below.) The top directory doesn't have to be on a drive, but every drive has to be connected to the top directory somehow, otherwise Linux won't see it.
Open WISH File Rusher (after you've installed it--click the link to your left to see where to get the .PET package, and see the page on Adding Programs and Enhancements for Puppy Linux to find out how to install it); then click one of the "Top" buttons above the directory lines. Sure enough, all you'll see on the directory line is " / ", and in the directory list below you'll see strange-looking directory names like bin, dev, etc, initrd, lib, mnt, usr, var, and others. I'm not going to try to tell you what all of them are for in this brief intro, but I'll mention a few of the ones you really need to know about to get going.
Puppy basically gives you a single-user setup that, unlike most other Linux distributions, doesn't distinguish the system administrator ("root") from ordinary users who have their own "home" directories. In Puppy, you are "root," and the /root directory is your home directory (click one of the "Home" buttons and see). When you download or save a file, it goes into /root if you haven't selected another directory.
And everything in /root is in RAM, at least at first . . . and RAM isn't unlimited in size, especially on older computers that Puppy is great for revitalizing. What if you've got 256 MB RAM, and Puppy uses up 128 MB (or so) of that, leaving only the other 128 MB (or so) free, and you try to download a 200-MB CD image? Um, 128 + 200 = 328, and that's more than 256, so . . . it won't work, and you may soon see a disastrous "kernel panic" (in which the Linux kernel throws up its hands in despair, does the headless-chicken routine, and becomes good for nothing until you reboot).
As if that weren't bad enough, you know what happens to everything in RAM when you shut down or reboot your computer: it vanishes. What if you've got 512 MB RAM or more, and you succeed in downloading the 200-MB image into /root (in RAM), but then you shut down or reboot without saving or copying the image? It's gone. You don't want that. Here's what you need to know to keep it from happening.
Your first line of defense against vanished downloads and overload-induced kernel panics is the pupsave (a/k/a lupusave) personal storage file, mentioned above. Pupsave is where your installed programs ordinarily are kept so they don't vanish. Pupsave is where your downloads go if you save them to /root or some other part of the Puppy filesystem, except for a mounted external directory under /mnt (see below).
When you boot up Puppy, the filesystem skeleton from pupsave is merged with the one from the main file in RAM (so all your installed programs and things will be available), but not everything from pupsave goes into RAM. The actual programs and files you've saved will remain on the hard drive (or wherever pupsave is) until you load the programs or open the files. That way, there won't be as much danger of exceeding your RAM capacity (and causing a kernel panic) as there would be if everything went into RAM.
But does that mean it's OK to download everything to /root and let everything go into pupsave? No. There have actually been reports of people causing kernel panics by overloading pupsave, just as if they had overloaded RAM.
So what to do? As a rule, it's best to download to an external directory on a mounted Linux or vfat partition--or to move your downloaded files there promptly after they land in /root. What's a "mounted" partition, and how do you get one? Read on.
As I was saying, if a bone isn't connected to the skeleton--I mean, if a directory isn't connected to the directory structure that begins with " / "--then Linux can't see it or do anything with it. If the desktop icon for your "C" drive (now known as "sda1" or whatever) doesn't have a colored ball in one corner, or a "mounted" label, or some such thing, then that drive isn't "mounted," i.e., connected to the directory structure. In that event, if you right-click the mnt (pronounced "mount") line in the list below the " / " directory line in WISH File Rusher, and then do the same to the sda1 line (or whatever it is) below the /mnt directory line, the directory /mnt/sda1 will appear to be empty!
But now . . . just click the drive icon. A little ball or something will appear, and so will a ROX-Filer window showing the contents of the /mnt/sda1 directory. (ROX-Filer is Puppy's standard file manager, and it's pretty good in a lot of ways, but I like a two-column file manager with buttons in the middle better.) In WISH File Rusher, right-click sda1 below /mnt again; the same contents will now appear. The drive bone is connected to the /mnt bone--I mean, the drive is now mounted in the Linux filesystem, so you can see its contents and use it to save things. (Just note the caution about using an NTFS filesystem, mentioned above!)
What if you've got a lot of stuff in a remote subdirectory of /mnt, but you want to get at it as easily as if it were right under /root? Simple: create a symbolic link ("s-link" for short) from the remote subdirectory to /root.
Look on the right side of the WISH File Rusher window shown above. You'll see directories listed with "@/initrd/mnt/dev_save" (and more) after the directory names, e.g., "Computing." The "at" sign (@) means the listing is for a symbolic link, and "/initrd/mnt/dev_save" is Puppy-geek-speak for "the directory where your pupsave file is located, also known as /mnt/home." If you were using my computer and you right-clicked the "/root/Computing" line, you'd go straight to /mnt/home/david/Computing, which is in a Linux partition on my hard drive, but isn't included in pupsave. What this means for you is that (after you set up an s-link) you can get at any mounted directory or subdirectory under /mnt as easily as if it were included in your pupsave file--but it's not included in your pupsave file. So, you've pretty much eliminated the danger of overloading your pupsave file--unless you make the mistake of, say, saving some really gigantic things in pupsave instead of a directory under /mnt.
How do you make a symbolic link? With WISH File Rusher, it's superbly simple: just select the listing of the directory you want to be linked (e.g., /mnt/home/david/Computing) in one window; have the contents of the directory you want the link to be in (e.g., /root) displayed in the other window; and click S-Link if you want the link to have the same name as the original directory (e.g., Computing). If you want the link to have a different name, click "S-Link As" and enter the different name on the entry line that will open up. With ROX-Filer, it's only slightly harder: you need to open two ROX-Filer windows, drag and drop the original directory's icon from its window to the window showing the directory where you want the link, and then select "Link" from the pop-up menu.
But what if your mounted drive goes bad without warning? You'll be pretty peeved at yourself if you didn't make backup copies of important files, that's what. Plan ahead, and act wisely, to avoid that sickening event!
Some people make backup copies of their entire pupsave file. If you want to do this, make sure to boot puppy pfix=ram first, meaning your pupsave file won't be loaded, so it won't be in use (and maybe getting changes written to it) when you're trying to copy it. Then (1) locate pupsave on the partition you saved it to; (2) make sure the flash drive or whatever you're copying it to is mounted and has enough capacity; and (3) drag, drop, and click "Copy" with ROX-Filer to copy the massive pupsave file. If you prefer to burn it to a rewritable CD or DVD, select the burning program you want to use (as you might expect, I would use WISH Disc-Writer), and follow the directions.
Me, I just back up files I've added or changed to a flash drive (typically /mnt/sdb1 on my computer) soon after I've added or changed them. (See my page on Backing Up, Upgrading, and Restoring for how to do this automatically and really fast with WISH File Rusher.) Also, I periodically back up important and often-changing directories to rewritable CDs, and I back up directories that aren't likely to change much to CD-ROMs, with WISH Disc-Writer.
This page just gives you the rock-bottom basics you need to get going with filesystems and file management in Puppy. To learn more, take a look at the ROX-Filer manual (click the "lifesaver" icon in any ROX-Filer window), the WISH File Rusher help guide (click the "Help" button in WISH File Rusher), or both. To learn still more, go to the Puppy Forum. Before long, if you're anything like me, you'll find that the Linux filesystem is actually more understandable and easier to use than the Windows filesystem; you'll have no fear that your files will vanish when RAM shuts down; and you'll be confident that the Linux kernel will obey you when you tell it, "Don't panic!"
At that point, you'll be ready to start working Puppy for all it's worth. When that happens, you'll probably want to read about Adding Programs and Enhancements for Puppy Linux.