Example: default vmlinuz initrd=initrd.gz pmedia=usbflash
Boot Loader's files. GRUBand GRUBforDOS use the 'menu.1st' file.
title Puppy Linux 525
kernel (hd0,0)/vmlinuz pmedia=atahd psubdir=puppy525
Here is a list of the parameters/arguments you can set, note these don't apply to early versions of Puppy.
(Applies to Puppy 2x and later).
- pfix=ram will run Puppy totally in RAM and ignore saved sessions/storage file(s)
- pfix=<n> where <n> is the number of saved sessions to ignore for a multisession-CD
- pfix=rdsh will exit to initial ramdisk commandline (do not pivot_root)
- pfix=usbcard for booting from USB flash drive via USB 2.0 to PCMCIA adapter
- pfix=clean will force a simulated version upgrade (for Puppy 2.13 and later)
- pfix=purge will force an even more radical file cleanup (to fix broken system) (for Puppy 2.14 and later)
- pfix=#debug may help with debugging
- pfix=copy or nocopy controls if main sfs file is loaded (copied) to RAM
If using multiple pfix options, separate them with a comma, e.g. pfix=rdsh,usbcard
PCMCIA (PC card) drivers and card manager to be started during the boot process.
Barry's recent blog post for more on this.
ReiserFS partition (in that order) to use; that is, to create the file on.
The format is "PFILE=name-password-size", for example "PFILE=pup0-none-131072". The most common names of PFILE are pup001 (used by the LiveCD), pup100 (which is used for USB), pup1 (with a hard drive install). One can also use PFILE=ask or PFILE=no or PFILE=cd. When using PFILE=ask then Puppy Linux will ask you where you want the file to be (should be same location as PHOME if used), what name you want to use, and will default to a size of 256 MB. Starting with 1.0.7, a parameter of "no" will have Puppy only use a ramdisk and, if possible, a Linux swap partition. Specifying "cd" should only be done with a multisession formatted CD-R/DVD-R (usually burned from Puppy) to tell Puppy to enable using the multisession specific features. A password of "none" means no password and the filesystem is not encrypted. A password of "ask" will ask you for a new password at first boot and thereafter. The size of the filesystem in this example is 131072 KB, which is 128MB.
The example for PFILE shown above is the setting for the live-Puppy v0.7.6 CD. At the least, all the 1.x versions use a pup001 file without a password at 262144 KB (256 MB).
The filesystem for the file ("pup0" in example) will be ext2 unless PROOTFS is specified. If you want a password, that is, an encrypted filesystem, do not use a journaled filesystem (ext3 or ReiserFS). If you use minix for the file, it must be no bigger than 64MB. Either way make sure to keep it under 1GB.
root=/dev/ram0 because Puppy normally loads into a ramdisk.
Beginning with Puppy 2.11, loglevel=3 is used by default, which reduces the onboot display of messages to be limited to noncritical & critical errors. With Puppy 2.11 and later, the detailed boot messages are logged to /tmp/bootkernel.log, /initrd/tmp/bootinit.log, /tmp/sysinit.log. Detailed ongoing messages are logged to /tmp/xerrs.log (X) and /var/log/messages (kernel).
Using loglevel=4 would show everything mentioned before and warning conditions that should be taken care of.
Normally, without this parameter being specified, the log level would be set to 5, which would display everything mentioned before and normal but significant events. Recent versions of (Puppy 2.10 or later?) have the log level set to 3 in the kernel.
Using loglevel=7 would show all the messages during boot including kernel debugging messages, and would be recommended to use for troubleshooting problems during booting.
ACPI is available. Now if the BIOS is dated 2000 or earlier for Puppy 1.x or 2001 or earlier for Puppy 2.x then ACPI won't be used. But if you are sure that your BIOS has ACPI support anyways then use acpi=force to enable it. Now, also, using ACPI may cause problems with some computers, so you can outright disable it by using acpi=off. But some other options would be to use acpi=noirq to specify to not use ACPI for IRQ routing, add acpi=strict option to be less tolerant of platforms that are not strictly ACPI specification compliant (i.e. disable platform workarounds), and acpi=ht to run only enough ACPI to enable Hyper-Threading.
APM should be used if ACPI is not available. To enable/disable APM yourself, use apm=on or apm=off.
CompactFlash and other drives need this: ide=nodma
Do not use ACPI for IRQ routing or for PCI scanning. Doesn't disable as much as acpi=off does so try this instead if ACPI is causing problems.
Force the use of the PCI BIOS by not accessing the hardware directly. This means that the kernel should trust the BIOS, which is not the standard thing to do (as BIOSes are known to lie more often than they are known to be valid). Use this only if your machine has a nonstandard PCI host bridge and the normal boot method is not working properly.
Do not use the PCI BIOS, but access the hardware directly instead. This is the default method of probing for PCI devices in all kernels after 2.6.13 (which includes Puppy 2.x).
Use PCI BIOS calls to get the interrupt routing table. These calls are known to be buggy on several machines and hang these machine when used, but on other machines they are the only way to get the interrupt routing table. Try this option if the kernel is unable to allocate IRQs or discover secondary PCI buses on your motherboard.
Plug and Play (PnP) BIOS settings. pnpbios=on enables the PnP BIOS subsystem. pnpbios=off disables the PnP BIOS subsystem. pnpbios=curr tells the PnP BIOS subsystem to use the current static settings and pnpbios=no-curr tells the subsystem to probe for dynamic settings if possible.
There are some additional arguments for SCSI peripherals and old CD-ROMs (Non-SCSI/ATAPI/IDE). Also you can try ide1=0x180,0x386 or ide2=0x180,0x386 if your PCMCIA IDE CD-ROM is not being detected.
See Barry's old notes on configuring Puppy.
This page is suggested by http://www.murga.org/~puppy/viewtopic.php?p=8550#8550.
See also from Barry, for newer puppies Extended help at bootup
See The Linux BootPrompt-HowTo for a detailed explanation of most of the Linux boot prompt arguments.
The book, Linux Kernel in a Nutshell, specifically Chapter 9: Kernel Boot Command-Line Parameter Reference, is freely available online and is very helpful for more on this subject, as well.
For a more complete list, see the documentation in kernel-parameters.txt included with kernel source that you're Puppy is using. For example, kernel 2.4.22 is similar to the version used with Puppy 1.x or the one included with kernel 188.8.131.52 which would be similar for Puppy 2.x.
bootparam - Introduction to boot time parameters of the Linux kernel
I used the same PC, the same HDD and all the distros had a similar load of applications installed, with the exception of Windows XP which was lightly loaded.
All Puppys were Frugal installs except for one Full install where noted.
I measured the time between selecting the distro from the grub boot screen and when the desktop had loaded and I could start loading an application.
Also for the distros that needed a user-name and password to be entered I had to judge the time it took to do this and subtract from the timing.
Before anyone says it I am aware that some distros (eg Windows) offer a full desktop and can start loading apps even when a lot of activity is still happening "under the surface". I had no way to judge this so have had to ignore it." davesurrey
AMD Athlon XP 1700 1GB DDR
Ram, FX5200 (256MB) graphics card
i7, 8gb RAM, 1Gb video
These are Full Installs
Puppy 412 frugal install ......57secs
Puppy 420v2 frugal install ......57secs
Puppy 431 frugal install ......44secs
Puppy 431.1 frugal install ......43secs
Pup 214X16 frugal install ......38secs
Ubuntu 9.04 ......60secs
Ubuntu 9.10 ......65secs
Debian 5 ......57secs
Fedora 12 ......88secs
Slitaz Cooking ......21secs
TinyCore 2.5 ......37secs
Puppy 431 Full ......19secs
Windows XP ......41secs