The Internet Suspend/Resume® (ISR) project
   Pocket ISR: OpenISR® client on a bootable USB device


License and disclaimer

All software below is experimental in nature, and is provided "as is" with no warranties of any kind. The software in Pocket ISR is distributed under a variety of open-source licenses; see the individual software packages for details. The Pocket ISR compilation is distributed under the terms of the GNU General Public License, version 2.


Recent changes

Changes in version 0.10.1-1 include:
  • Update OpenISR client to version 0.10.1
  • Update VirtualBox to 4.0.2
Changes in version 0.10.0-1 include:
  • Update OpenISR client to version 0.10.0
  • Update base operating system to Generic 14
  • Update VirtualBox OSE to 3.2.10
Changes in version 0.9.10-1 include:
  • Update OpenISR client to version 0.9.10
  • Update VirtualBox OSE to 3.2.8
  • Allow SSH host keys to be provided on the boot device in .ssh-known-hosts
  • Fixes for recent Generic 13 updates
Changes in version 0.9.9-3 include:
  • Update base operating system to Generic 13
  • Add support for KVM
  • Don't prompt to create GNOME keyring when joining a password-protected wireless network
For older changes, see the CHANGES file.

About Pocket ISR

Pocket ISR lets you convert any borrowed PC into an ISR client in less than a minute, with no advance planning and without installing any software. All you have to do is boot Pocket ISR, resume your parcel, work or play, check in your parcel, and leave. Once you're done, Pocket ISR leaves no trace behind.

Pocket ISR is a live Linux distribution that can easily be installed to a USB flash drive or burned to a CD. Use it to boot any modern PC, and a fully-featured ISR client and virtual machine monitor are available at your fingertips.

Pocket ISR includes the following major features:

  • Pocket ISR can be installed on any USB flash drive with at least 350 MB free, without disturbing existing data on the drive. Installation is automated and can be performed from a Linux or Windows system. The remaining space on the USB key is available for other uses.
  • Pocket ISR performs well even with low-cost USB flash devices. Parcel data is stored not on the flash drive, but in free space borrowed from the computer's internal hard disk. Space can be borrowed from Linux swap partitions and NTFS, ext2, ext3, and ext4 filesystems, including volumes stored in Linux RAID or LVM. Existing data and metadata stored on these volumes is never altered. All parcel data in transient storage is encrypted for security.
  • If you have a high-performance USB device such as a hard disk or SSD, Pocket ISR can store parcel data directly on the device rather than in transient storage.
  • Pocket ISR will notify you at startup if a newer version is available, and can automatically update itself to the latest version.
  • Pocket ISR includes the VirtualBox and KVM virtual machine monitors.

More information about Pocket ISR is available here.


GPG key

Pocket ISR images and Git release tags are signed with GPG. The public key for isr@cs.cmu.edu is:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)

mQGiBEX5u28RBADyIe4k/TTVn2R+syOCcA6KtN0hdxGmN0VABvF9ZHmqIPcGoZx3
sxgDrch+PLm5b782smtbnpuzz8NgH4lAGtrYJnT+c1ak2hURXI6+GXlqG8mSMTyo
WzqgbRp0XVI56Fccx7hqI9qvC2YOixM6dB9WtI1iiyd3hlTNcxYgT4lZqwCgt9Ty
BDAjDIDIw/hij/WO5iaXM40D/j7tZB5DuR2bZh5EZF9Rvwqc9oRxn0+Q90MCYtNJ
WDYY5MbhRl9+TyqoEcSBxghAVrQ501p/d5e/5+QmxqJNbYQsEimsk8AtqGPV5xAp
+joqY+0TuByFTQ05DxN/eQLM9Rj0yE+7GaI6aVBck8uXF+H1BDtrnYCcxYT90Le6
Q2YNA/sGBFuBg/QX2gT4ovzX6r6fY++nGcMbeB3+S/CKeTekx3aoC5RjSXVUbpf/
5maJWSScQX5U2K8Gk7zsPTg8Yy7LjikuRbNfCqYxK/9Xm0CworEQr0u0aZWuCSvI
iqFh2yQQ3EtDoN4hF64s/flNFpUoj2PpH2fm1IFfUISdRiIY6rQoSW50ZXJuZXQg
U3VzcGVuZC9SZXN1bWUgPGlzckBjcy5jbXUuZWR1PohmBBMRAgAmAhsDBgsJCAcD
AgQVAggDBBYCAwECHgECF4AFAk9ruuMFCRLYAPAACgkQdL7DVyG5dryLgACdHlNu
FzHaLvnhGHg6y+vvZ5JrwegAnA2oaK2mzs+B7FFcTjfOyXdLGII7
=gWAP
-----END PGP PUBLIC KEY BLOCK-----

and is available for download here.

Obtaining Pocket ISR

The current release of Pocket ISR is version 0.10.1-1 ( MB). The GPG signature is available.

Setting up Pocket ISR

If you have a USB storage device with at least 350 MB free, you can install Pocket ISR. Existing data on your USB key will be preserved, and you can continue to use extra space on the USB key to store other data.

Most users will want the Linux or Windows installation instructions. You can also burn Pocket ISR to a CD. If you have an older PC that refuses to boot from a USB key created with the standard installation procedure, try following these instructions. If you have a large and fast USB storage device (such as an SSD or portable hard drive) and want to store parcel data directly on the device, follow the instructions here. To upgrade an existing Pocket ISR installation, see the instructions here.

Creating a bootable USB key from Linux

You will need:

  • A copy of Pocket-ISR-0.10.1-1.iso, available here.
  • A USB key with at least 350 MB free, formatted with the FAT or ext2/3/4 filesystem. Existing data on the USB key will be preserved.
  • The livecd-iso-to-disk script. On Fedora, this can be found in the livecd-tools package. On other systems, you can get a copy of livecd-iso-to-disk from the LiveOS directory inside the ISO image itself.
  • syslinux, generally available in the syslinux package.
  • Optional: checkisomd5 from the isomd5sum package. livecd-iso-to-disk will use this to verify the downloaded ISO image.

Follow these steps:

  1. Ensure that the USB key is plugged in and unmounted.
  2. Determine the path to the device node for the filesystem, e.g. /dev/sdz1. Make sure you get this correct!
  3. As root, run "sfdisk -A /dev/sdz 1" to set the bootable flag on the partition. Note the space between sdz and 1.
  4. As root, run "livecd-iso-to-disk Pocket-ISR-0.10.1-1.iso /dev/sdz1"
  5. Optional: Create an .openisrrc file in the top directory of the USB key. This is an OpenISR client configuration file that can be used to configure your preferred OpenISR server and userid. For example:
    server = isr.example.com
    userid = bovik
    

Creating a bootable USB key from Windows

You will need:

  • A copy of Pocket-ISR-0.10.1-1.iso, available here.
  • A USB key with at least 350 MB free, formatted with the FAT filesystem. Existing data on the USB key will be preserved.
  • LiveUSB Creator.

Follow these steps:

  1. Ensure that the USB key is plugged in.
  2. Start LiveUSB Creator.
  3. Click the "Browse" button and select the Pocket ISR ISO image you downloaded earlier.
  4. Ensure the USB key is selected in the "Target Device" field.
  5. Ensure the "Persistent Storage" slider is set to zero.
  6. Click the "Create Live USB" button.
  7. Optional: Create an .openisrrc file in the top directory of the USB key. This is an OpenISR client configuration file that can be used to configure your preferred OpenISR server and userid. For example:
    server = isr.example.com
    userid = bovik
    

Creating a bootable CD from any operating system

It is also possible to burn the Pocket ISR ISO image directly to a CD with standard CD recording software. Consult the documentation for your CD recording tool for instructions.

Note that booting Pocket ISR from CD is slower than booting it from a USB key, since the entire CD is read at boot.

Getting it to work with older BIOSes

The instructions above assume that your PC's BIOS supports USB keys in USB-HDD mode. Some older BIOSes only support so-called USB-ZIP mode. In order for the USB key to boot correctly on such systems, you need to perform some additional setup. This is a destructive operation, in that any existing contents of the USB key will be lost. However, it only needs to be done once per USB key.

You will need:

  • A USB key at least 350 MB in size.
  • A Linux system.
  • syslinux, generally available in the syslinux package.

Follow these steps:

  1. Ensure that the USB key is plugged in and unmounted.
  2. Determine the path to the device node for the disk device, e.g. /dev/sdz. Make sure you get this correct!
  3. As root, run "mkdiskimage -Fz4 /dev/sdz". This will take a while to complete.
  4. Continue with the standard installation instructions above. Note that the FAT filesystem is now stored in partition 4 rather than partition 1.

Creating a bootable USB device with persistent storage

If you have a large and fast USB storage device, you can create a Pocket ISR installation that supports persistent mode. When you boot Pocket ISR in persistent mode, parcel data is stored directly on your USB device, rather than on the hard disk of the host computer. As a result, you aren't required to check in your parcel before shutting down Pocket ISR. You also get a persistent hoard cache, allowing you to avoid downloading parcel chunks from scratch each Pocket ISR session.

You must have a fast storage device for persistent mode to work effectively. Garden-variety USB keys have poor write throughput and will not provide adequate performance. A fast drive, such as a professional-grade digital camera flash card in a USB card reader, a USB hard disk, or an SSD, is required. Higher throughput (or higher RPM in the case of rotating media) is better.

Your storage device should have at least 16 GB free, depending on the size of the parcels you want to use with it.

You will need:

  • A Linux system.
  • A copy of Pocket-ISR-0.10.1-1.iso, available here.
  • A fast USB storage device with a minimum of 4 GB free, formatted with the ext2/3/4 filesystem. Persistent mode cannot be used with a USB key formatted with the FAT filesystem. Existing data on the USB key will be preserved.
  • The livecd-iso-to-disk script. On Fedora, this can be found in the livecd-tools package. On other systems, you can get a copy of livecd-iso-to-disk from the LiveOS directory inside the ISO image itself.
  • syslinux, generally available in the syslinux package.
  • Optional: checkisomd5 from the isomd5sum package. livecd-iso-to-disk will use this to verify the downloaded ISO image.

Follow these steps:

  1. Ensure that the USB key is plugged in and unmounted.
  2. Determine the path to the device node for the filesystem, e.g. /dev/sdz1. Make sure you get this correct!
  3. As root, run "sfdisk -A /dev/sdz 1" to set the bootable flag on the partition. Note the space between sdz and 1.
  4. Decide how much space you want to allocate to persistent storage. If you will not be using your USB storage device for other purposes, the recommended size is 400 MB less than the size of the storage device.
  5. As root, run "livecd-iso-to-disk --home-size-mb persistent-storage-size-in-MB --unencrypted-home Pocket-ISR-0.10.1-1.iso /dev/sdz1".
  6. Optional: Create an .openisrrc file in the top directory of the USB key. This is an OpenISR client configuration file that can be used to configure your preferred OpenISR server and userid. For example:
    server = isr.example.com
    userid = bovik
    

When upgrading Pocket ISR, note these tips:

  • When Pocket ISR is booted in persistent mode, Pocket ISR Update will notify you of newer versions but will refuse to update the system. You must reboot into transient mode for Pocket ISR Update to automatically update the system.
  • If you update Pocket ISR manually (i.e., without using Pocket ISR Update), you must use the regular Linux installation instructions, not the instructions in this section.

Upgrading Pocket ISR

When Pocket ISR starts up and obtains an Internet connection, it will check whether a newer version is available and display a message if so. You can click the "Update" button in the notification popup or the update icon on the taskbar to automatically update your USB key to the latest version.

If the automatic updater does not work for you, you can also follow the Linux or Windows installation instructions to update your USB key.


Using Pocket ISR

Follow these steps:

  1. Plug in the USB key and boot from it. This may require pressing a key at the BIOS boot screen and requesting that the system boot from a USB device. To ensure sufficient performance, make sure you plug into a USB 2.0 port; USB hubs on some monitors and keyboards have only a slower USB 1.1 port.
  2. A Pocket ISR boot menu will appear. Choose "Boot" to boot Pocket ISR using transient parcel storage on the internal hard disk. Choose "Boot using persistent parcel storage" if you created a boot device with persistent storage and want to use persistent mode.
  3. Wait for the desktop to appear. Unless you chose to boot using persistent storage, you can now unplug the USB key.
  4. Click the Terminal icon on the toolbar to launch a terminal. You can now use ISR in the usual manner.
  5. If you are using transient parcel storage, be sure to check in your parcels once you have finished your ISR session. Once you shut down Pocket ISR, any data still in transient parcel storage will be lost and cannot be recovered.
  6. Click the Logout button on the toolbar, then click Shutdown in the resulting dialog box to shut down the system.

Development repository

The Pocket ISR source code repository is available on GitHub.