multisession live-DVD (and CD)

Install
steps at
bottom
of this
page

PAGE UPDATED: 29 March 2008

IDE CD/DVD-burner drive and 256M RAM required, no hard drive needed!

Do you run an Internet Cafe? Imagine never having to maintain the PCs, ever again. Imagine cheap PCs without hard drive, no operating system. Imagine no more viruses, no security problems at all ...am I dreaming?
Give each of your customers a Puppy live-DVD, they insert it at bootup, you have it preconfigured to connect to your DHCP server, and that's it. They can do whatever they want, everything is saved to their own personal DVD -- or shirt-pocket-size 2G mini-DVD.
Do you want to use the PC at work and not leave a trace? Bootup a live-DVD, the hard drive will not be touched. Take all your personal files between work and home. Keep a full private audit trail.

Okay, I can think of more reasons why the Puppy multisession live-DVD is a good idea, but let's start this page by introducing the concept...

This is a world-first (or rather, a "world-second", as the guys from the Morphix project let me know that they already had something similar developed! My understanding though is that Puppy's multisession system is by far the most sophisticated -- so, it is a world first for this level of sophistication and practical usefulness).
Live-CDs have become popular, but none save your personal data and settings back to the CD. Most of them can't anyway, as they are too big, at least for a CD. As Puppy is only about 50M - 70M, there is about 600M free space on the CD, so why not put it to use?

And then there is the DVD... over 4G storage on a single-layer DVD. In fact, we have found DVD to be superior to CD in other ways: saved sessions do not suffer the approximate 12M wasted space in each saved CD session, and DVD incremental session burning is more refined ...meaning, it just works better.
So, the rest of this page will focus on the DVD, but you can still use a CD if you wish.

To get going with Puppy multi-session live-DVD is quite easy. There is nothing complicated to do to set it up, it just works. After you have downloaded the live-DVD ISO file, the only slight difficulty is that you need to use the right software to burn it to a DVD -- detailed install steps are given at the bottom of this page.

So, how does it work? What you have to do is boot the PC with the multi-session DVD inserted in the DVD-burner drive -- thus, Puppy automatically knows which drive is the DVD-burner, in case you have more than one CD/DVD drive. Then you use Puppy in the normal way.

At first shutdown, you are offered the choice of saving the session back to the DVD, and you just reply in the affirmative. All new and changed files in your home directory are then saved back to DVD. That's it. Next time you boot, all the personal files are restored.

Runs totally in ramdisk, DVD drive freed for other uses

Simple, but there's more to it of course. Each session is saved as a "track" (well, except for a DVD+/-RW in overwrite mode), and it is space-efficient as only changed files are saved each time. At bootup, the tracks are read in reverse order, copying the latest version of each file to the ramdisk. Yes, that's another thing -- Puppy still runs totally in ramdisk, so after bootup you can remove the live-DVD and use the drive for other purposes -- you will be asked to re-insert it at shutdown.

So, when you boot Puppy, if tracks are read in reverse order and the latest version of each file copied to your home directory in the ramdisk, what about deleted files? Say you delete a file during one session, that has previously been saved to DVD at the last session, won't it come back again next time you boot? No, Puppy has a mechanism that keeps track of deleted files and this won't happen. However, that does raise an interesting point ... the deleted file is still on the DVD, meaning that every single file that ever existed will be recorded on the DVD, meaning that you have a perfect audit trail of past activity.

Of course, the DVD is going to fill up eventually, so what then? No problem, at shutdown Puppy will automatically ask you to insert a new blank DVD and will place a fully working bootable Puppy on it, create a first data track, and off you go again.
Note that that "first data track" will have all the files from the last session saved in it, so your new DVD carries on with all your personal files from before.

The rest of this page is organised as a FAQ...

How do I upgrade to a later version of Puppy?

When you shutdown, you are asked to insert the DVD. The normal thing would be to insert the multisession DVD that you are currently using. However, if you have previously downloaded and burned the latest Puppy onto a DVD-R, and you insert that at shutdown, Puppy will save to it and you just use the new DVD from then on.

What about backup?

In fact, Puppy is even more clever. If you insert a new blank DVD at shutdown, Puppy will burn the complete Puppy system onto the DVD as well as the session -- real handy if the current DVD is getting a bit "iffy".

Puppy even has "rollback". At the initial boot menu you can type "puppy pfix=n" where "n" is a number, to rollback "n" sessions. Those sessions are permanently blacklisted. Real handy if the last session stuffed things up and you need to recover. In fact, it is possible to specify any session as blacklisted.

If everything runs in ramdisk, that's not much space!

That's right. I recommend a PC with at least 256M RAM. However, Puppy will use a Linux swap partition if it exists on the hard drive, which will make the effective size of the ramdisk approximately half-size-of-RAM + size-of-swap-partition. For example, a PC with 128M of RAM and a 400M swap partition would have an effective ramdisk size of about 60+400 = 460M.
If no swap partition, then a 128M PC is not adequate! For a PC with 256M RAM, no swap partition, the ramdisk is about 120M. About 70M of that is taken up by the Puppy files, mostly pup_xxx.fs, leaving only 50M free ...not much!!!

So, if the ramdisk gets full, what happens then?

At the end of each session, Puppy tries to archive files to the DVD, so that they won't be reloaded into the ramdisk next time you bootup. Folder /archive/ is a special folder -- anything placed in this folder gets saved to DVD but not reloaded at next boot.
Another special directory is "tmp", in fact, any directory which has "tmp" as its first three letters, for example "tmp1" and "tmp-z". The contents of such directories is not saved to DVD at end of session.
Also, when Puppy is booting, he loads files into ramdisk, latest first, but if the ramdisk becomes nearly full, loading stops.
So, what you have in the ramdisk is a snapshot of latest files, not necessarily all the personal files. Obviously, this is potentially a compromise.

If many files are left behind on the DVD, how do I access them?

Deleted files, any files in /archive/, older files that would have over-filled the ramdisk, these three categories of files are on the DVD but not loaded into ramdisk.
However, they are still there, which is actually quite fascinating -- you could be using multi-session Puppy for years and have a collection of DVDs -- when you start a multi-session live-DVD you write the start-date on it, when it becomes full you write the close-date on it -- so you have this set of DVDs nicely organised by date. These DVDs are a complete audit path of all past activity, in fact each DVD is individually bootable -- so you can "go back in time" to an earlier configuration. Simply by booting an earlier DVD, you can access the files on that DVD.
Or, when a DVD becomes full, run it through Gwhere (or Gtkcat on puppies prior to v4.00), the CD/DVD cataloger program -- this is a great little program, and you can have a database of what is in all past DVDs.

I download huge music files. How do I avoid cluttering up the ramdisk?

Well, you could store them on a hard drive partition.

At shutdown, anything inside /archive/ folder will be saved to DVD and won't come back. That is, won't be reloaded into the ramdisk, but it's easy enough to mount the DVD and access the files.

If you are like me, a habitual downloader, then just get into the habit of downloading to /archive/.

Another way to remove a large file is simply to delete it -- if it existed in the previous session, then it will already be saved on DVD so it isn't lost.

How do I create a Linux swap partition?

If you have ever installed a Linux distribution, chances are it created a swap partition.
Otherwise, it is easy to create one in a Windows-only PC (but of course I take no liability if you modify the partitions on the hard drive and something goes wrong!)...

  1. Running Windows, run Scandisk, thorough test.
  2. Still in Windows, run disk defragmenter.
  3. Make sure that you shutdown properly from Windows, no abnormal reboots.
  4. Running Puppy, choose "Control Panel -> GParted partition manager" -- this is a simple GUI tool and it will even allow you to shrink a NTFS partition to make room for a Linux swap partition.

Are there any bugs in multisession-Puppy?

One problem is the limitation in the size of the ramdisk. Obviously, if older files are left behind on the DVD, not loaded into ramdisk, they are not immediately available. Will this mess up any applications? This is something that we have yet to determine. For a database management system that has index files that list the files of the database, if older files "go missing", it could stuff up the database management.

The multisession-CD will spit out error messages at bootup and shutdown. The reason seems to be that the Linux ide-cdrom driver has a problem reading from a multi-track CD. Despite the error messages, it works. Note, I setup things so that these error messages do not display on the screen, so the user is unaware of them!
The multisession-DVD does not have these error messages.

The multisession-CD seems to be less reliable at saving sessions at shutdown than the DVD. The cdrecord program is used for the CD, and the growisofs program used for the DVD.

Can I boot both "normal" live-CD and multisession live-DVD on the same PC?

Yes. The multisession CD/DVD first looks at itself to see if there are any saved folders -- if yes, then it loads those. The normal live-CD will not have any saved folders, so will then look for the personal storage file "pup_save.2fs" on the hard drive, failing that any USB drives.

What type of CD or DVD media should I use?

If your PC does not have a DVD burner drive, only a CD burner drive then you will have to use a CD-R.
I do not recommend a CD-RW simply because it isn't necessary. A CD-R is "write-once", but in multisession mode, tracks can be written one after the other, up to 99 tracks or the CD-R becomes full.
I recently purchased a bulk pack of 100 CD-Rs for $22 Australian (about US$15), so they are pretty cheap.

Multisession-Puppy works better with a DVD-R, and if your PC does not have a DVD-burner, consider buying one. I purchased a double-layer DVD burner for A$60 (October 2005), and it was reported on the Puppy Forum that they can be purchased in the USA for US$40.
I recently purchased a pack of 50 single-layer DVD-Rs for A$17.50.

I strongly recommend that you use a single-layer DVD-R. Do not use a DVD+R, DVD-RW or DVD+RW, as each of these seems to have particular problems. But then, if you find that a DVD+R works for you, fine.

Do not use a double-layer DVD-R either. A single-layer DVD-R can store about 4.3G, but there is a software limitation that restricts the last directory to 4G. So, a double-layer DVD will just be a waste.

A DVD+RW could be used, but there may be unresolved issues ...stay tuned. But why? For experimenting with multisession-Puppy, yes, but otherwise, use a DVD-R -- it costs you just 35 cents (25 cents in the US) and will last for ages.

Can I access the live-DVD files from Windows?

Yes, no problem. The files are saved on the DVD as normal files, not encrypted or compressed. If you run Windows Explorer and look at the DVD, you will see folders, each named with a date, for example "2005-03-06-17-45", which has the format year-month-day-hour-minute. Each folder is one track on the DVD, but all you see is folders. Same thing if you mount the DVD in Linux. Each folder has the files that were backed up for that session. Deleted files are stored as a link back to a previous folder where the file actually resides.

A report on the Forum is that Windows was only able to see the first track of a DVD+RW, but was able to see all the tracks of a DVD-R.

UPDATE: I changed the shutdown script so that Joliet extensions are turned off. This was due to unreliability that sometimes caused a session not to save. The downside is that all directories and files in the CD/DVD will appear to Windows in the old DOS 8.3 format -- that is they will all be truncated. The full directory and filenames are still there when running Linux however.

What if the power goes off while I'm working?

Yeah, that's a problem. The current session is running in ramdisk, so is only saved back to DVD at end of a session, so a power loss means that you lose your work. There are various ways to work around this. One is to save files in a hard drive partition, or, configure an application like a wordprocessor to save a backup copy in a hard drive, and mount the h.d. partition everytime Puppy boots.

Another possibility is to save a session without rebooting -- Puppy has a "Save" button on the desktop, and whenever you want, click it, new and changed files are saved to DVD.

An interesting thought -- you could deliberately not save a session -- it is optional at shutdown. You might want to do this if you had messed around on the Internet and not downloaded any files that you want to save. That would save some space on the DVD.

How can I customise a multisession live-DVD?

I mentioned at the top of this page that you could customise a live-DVD to automatically connect with a DHCP server at bootup -- the default live-DVD does not connect to a network, you have to run one of the network Wizards. Anyway, yes, you can customise Puppy in any way you want, and then create another ISO file. The easiest way to do this is by using "Remaster Puppy live-CD", available in the "Setup" menu.

I'm interested, how do I get it?

Go to the Puppy download page, and download the live-CD ISO file, which you will recognise as the filename will have the format "puppy-x.xx-xxxxx.iso". Burn it to DVD, but be careful to use the right software.

Burn to DVD

If you already have a running Puppy, this is the easiest way to burn the ISO. Just choose from the menu:
"Start -> Multimedia -> Burniso2cd burn iso file to CD/DVD"

Burniso2cd doesn't need any instructions, it is so simple.

To burn to DVD, you will need a running Linux distribution, as you absolutely must use the growisofs program to perform the burn. The Burniso2cd program in Puppy uses growisofs, as do other CD/DVD burner programs used in Puppy (Pburn, Graveman and TkDVD). It is also important that growisofs be used with the correct "commandline options", something that Burniso2cd takes care of.

Anyway, getting to the point. Any Linux distro will have growisofs installed, so the easiest method is to burn the ISO file direct from the commandline:

# growisofs -speed=4 -Z /dev/hdc=puppy-x.xx-xxxxxxx.iso

where /dev/hdc is the device name of the DVD burner drive.

There may be Windows burner programs that will work, but I don't know of any. In fact, I doubt that any of them will do it right.

Burn to CD

To burn the ISO file to CD is different! You need different burner software, and in this case there are Windows tools.

If you have a running Puppy, once again this is the easiest. Just run Burniso2cd.

For any other CD burner program, Windows or Linux, be careful that "multisession" burn is chosen -- unfortunately, some Windows burner programs do not have this option.
....well, if you only have such a crappy Windows burner program, just burn a normal non-multisession-Puppy and then you will have a normal Puppy live-CD -- run Puppy and then you will have access to Burniso2cd and many other lovely Linux burner programs.

For Windows users:
"GuestToo" a Puppy enthusiast and active contributor on the Forum and Wiki, has posted a HOWTO to burn a multi-session CD using Nero6. Note that it appears Nero version 5 is lacking the options for this. Here is GuestToo's HOWTO:

http://www.puppylinux.org/wikka/GuestTooNeroPics

More ways to do it from a working Puppy:

Note that Gcombust is not built-in to the official live-CD, it is a PET package. Gcombust is designed for burning to scsi-emulated IDE CD drives, which Puppy no longer uses. Note, do not use Gcombust to burn DVDs. So, Gcombust is now slightly awkward to use, but still popular, hence the procedure is described here:

Steps to install with Gcombust:
  1. Run the "CD/DVD drive Wizard" (Setup menu) to choose your burner drive.
  2. Download the live-CD ISO file, which has a name like puppy-4.00-seamonkey.iso.
  3. Then run Gcombust, the CD-burner program,
    (i)    Read the purple-colored help window that also pops up,
    (ii)   go to the "Burn" tab, click "Choose image location" button to choose the ISO file,
    (iii)  untick "Dummy test run", leave "Pad" ticked,
    (iv)  tick "Multi session" and "Use data" in the Multisession section.
    (v)   Enter the correct values for "Device:" and "Driver:" (ex: /dev/hdd and mmc_cdr).
    (vi)  If you need to erase a CD-RW, be sure to choose "All" then hit "Blank CD" button.
    (vii) When ready to burn, click the "Burn" tab.
 Or, it can be done entirely from the commandline:
  1. Download ISO file.
  2. Run "CD/DVD drive Wizard" to choose which drive is the burner drive.
  3. This will find the device numbers, for example 0,0,0:
    # cdrecord -scanbus -dev=ATAPI
    This will burn the iso to CD (substitute device numbers for 0,0,0):
    cdrecord -multi -data -eject -v speed=4 dev=ATAPI:0,0,0 puppy-4.00-seamonkey.iso
    Alternatively, if you know the device name in /dev/hdx format, this also works:
    cdrecord -multi -data -eject -v speed=4 dev=ATAPI:/dev/hdd puppy-4.00-seamonkey.iso 



(c) Copyright 2005,2006,2008 Barry Kauler http://www.puppylinux.com/
No part of this page is to be reproduced anywhere else. I have found that there is a problem where parts of my web pages are being inserted at other sites, then not updated, whereas I am updating my pages regularly. This is not a desirable situation, so please just link to my pages.