I have Ubuntu 13.10 and I am running live image as making an entry in grub as per the tutorial: http://www.tecmint.com/run-linux-live-images-from-hard-disk-in-linux. So is there any way to make the changes persist? I want to save few changes like my wireless drivers, so if I am able to do so, it would save me from installing drivers every time I boot.
Setting Up Your USB Stick
Setting up a device for use as Live CD persistent storage device is fairly simple. We just partition it and format it while giving it a special name that the Live CD recognizes. Although you can use any device visible to the CD for persistent storage, in this example we will discuss using a USB stick since they are pretty common now and are relatively inexpensive. There are no minimum size requirements for your storage device, but naturally, the more storage space you have the more applications you can install and settings you can save.
Plug your USB Stick into your computer and let's get it ready for Live CD persistence.
Note: If you previously followed the instructions on this page for "casper-cow" and it didn't work, that's because it should have read "casper-rw".
Note 2: In the instructions below the ext3 file-system is used. For a memory stick however where space is tight, the ext2 file-system will use up considerably less overhead and is probably good enough for this purpose.
Note 3: The instructions use all terminal commands, many of them looking quite serious. However it can all be done using the graphical Gnome Partition Editor tool you find in the System -> Administration menu. The exception is giving the partition a label, for this you'd still need to go to a terminal and issue the command
sudo e2label /dev/<yourpartition> casper-rw
Determine Which Device Your USB Stick Is
Note: if you prefer, you can use GPartEd to identify and format the usb thumb drive to ext3 (or a different compatible format) and then skip directly to the "Creating the "casper-rw" File System" section.
In order to partition and format your USB Stick, we first need to determine which device your computer recognizes it as and what its mount point is. To find this information run the following command:
The output of df -h should look something like this:
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 187G 4.0G 183G 3% /
varlock 9.3G 507M 8.8G 6% /var/lock
udev 506M 156K 506M 1% /dev
devshm 506M 0 506M 0% /dev/shm
/dev/hdb3 7.5G 1.4M 7.5G 1% /tmp
/dev/hdb2 9.3G 507M 8.8G 6% /var
/dev/sda1 124M 31M 94M 25% /media/USB DISK
As you can see, on my computer, my USB Stick is the last entry in the list and is seen as /dev/sda1 and is mounted and accessible at /media/USB DISK. Now that we know where our USB Stick is, let's go ahead and partition it properly.
Partitioning Your USB Stick
Partitioning your USB Stick is a fairly simple task and only requires a few short steps. To partition your USB Stick we will use the command fdisk so run the following command to start the process (replacing /dev/sda with your device path):
sudo fdisk /dev/sda
Without getting in depth about how to use fdisk (which is outside the scope of this document) here is how you can partition your USB by deleting any existing partitions and creating one new partition.
First type “p” at the command prompt and hit to print the current partition table. The output of this command should look something like this:
Command (m for help): p Disk /dev/sda: 130 MB, 130023424 bytes 16 heads, 32 sectors/track, 496 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 496 126960 6 FAT16
Again, for this example, we will just delete all of the existing partitions so now type “d” at the command prompt. Then enter the number of the partition you wish to delete. Repeat this process for each partition on your USB Stick until they are all deleted. The following is a example of what your session might look like:
Command (m for help): d Partition number (1-4): 1 Command (m for help): d Partition number (1-4): 2 Command (m for help): d Partition number (1-4): 3 Command (m for help): d Selected partition 4 Command (m for help): p Disk /dev/sda1: 130 MB, 130007040 bytes 16 heads, 32 sectors/track, 495 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot Start End Blocks Id System
Command (m for help):
As you can see we have now deleted all of the partitions on our USB Stick. Now we can create one new partition by typing “n” at the command prompt followed by your desired partition number. Once that is done type “w” and hit to write the partition table changes to your USB Stick. Here is the output from my session:
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-495, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-495, default 495): Using default value 495 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
Now that we have our partition table all set let's format it.
Creating the "casper-rw" File System
Formatting your USB Stick is also a very simple task. First we will unmount the device so we can format it, then just format it.
First unmount your USB Stick by running the following command:
sudo umount /dev/sda1
Now that your USB Stick is unmounted we can format it. The only special consideration is that we must give the formatted partition the label “casper-rw”. This is the name the Live CD looks for to store persistent information. You can properly format your USB Stick by issuing the following command:
sudo mkfs.ext3 -b 4096 -L casper-rw /dev/sda1
The output of this command should look something like this:
mke2fs 1.38 (30-Jun-2005) Filesystem label=casper-rw OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 31744 inodes, 31740 blocks 1587 blocks (5.00%) reserved for the super user First data block=0 1 block group 32768 blocks per group, 32768 fragments per group 31744 inodes per group Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
NOTE: This example uses the ext3 file system, but almost any file system should work. Among the file systems which won't work are VFAT and NTFS
Now that we have our partition created and formatted all that is left to do is use it. So let's go use it!
__Using a Loopback File__
Instead of using a USB stick, you can use a file on your hard disk to store persistent information. The file must be named casper-rw and must be on the root of a partition. This partition can be any type that can be mounted automatically (e.g. vfat or ext3). (The persistent mode still works, if the file is created on the root partition of an USB stick.)
The following commands assume that a partition is mounted at /media/hda1. You can use any partition; even / will do fine. A file 128 MB in size will be created on this partition. To change the size, modify the count parameter of the "dd" command.
dd if=/dev/zero of=/media/hda1/casper-rw bs=1M count=128
128+0 records in 128+0 records out 134217728 bytes transferred in 0.947819 seconds (141606919 bytes/sec)
mke2fs 1.38 (30-Jun-2005) /media/hda1/casper-rw is not a block special device. Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 32768 inodes, 131072 blocks 6553 blocks (5.00%) reserved for the super user First data block=1 16 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
That's it! You can now boot the Live CD as described below.
Booting the Live CD in Persistent Mode
Now we get to enjoy the fruits of our labor. Make sure your USB Stick is plugged into your computer and take the Live CD that you downloaded and burned earlier and put it in your CD drive (if it is not already there). Reboot your computer and boot up using this Live CD.
Before you reboot there are only two things that you need to remember. When the Live CD menu gets displayed hit the key to enter “Other Options”. This will display the arguments that the Live CD passes to the kernel. At the end of this argument list just add a space and add the word “persistent”. This will instruct the Live CD to maintain and use persistence. That is all. Go for it!
Note: It appears that with Flight 5, you need to create a new user in the Live CD session (go System -> Administration -> Users + Groups, then press the "Add User" button) for it to save your settings; it does not appear to save most changes to the default user, "ubuntu". When you create the new user, be sure to check the box in the "user privileges" tab that says "executing system administration tasks" or you'll be pretty limited in what you can do Smile :)
When you get back, or better yet, when you boot into your live environment come back to this page and see how you perform a few basic tests to make sure everything is working correctly.
Verifying That Everything Worked
Here are a few simple things you can do to verify that everything is working as expected.
Reboot the Live CD/USB
The first simple thing you can do to verify that persistence is working is install a few applications and change some environment settings (some thing highly visible and easily recognizable) like your theme or add some GNOME panel icons. Then just reboot... Hit , enter in “persistent” on the kernel arguments list and boot into your new custom Live CD environment. Your newly installed applications and your custom settings should all still be there.
If you want to dig a little deeper you could always inspect the contents of your USB Stick. This will also give you deeper insight into how this great system works.
(you can do this from the Live CD by going System -> Administration -> Disks, selecting the appropriate drive, setting the access path to /mnt and pressing the Enable button followed by the Browse button)
Investigating What Is Now On Your "casper-rw"
Another relatively simple thing you can do to verify that everything is working and to learn more about how everything works is to just inspect what is now on your USB Stick in isolation. Reboot back into your regularly installed system, plug in your USB Stick and just have a look around. The contents of your USB Stick is what makes your custom environment your own.
By using reconstructor a CD can be remastered and an additional menu item (Persistent Mode) added on boot. The persistent mode was added as the default. No changes were made to the CD except for adding the persistent menu item. This may be best described in another how-to. If there is a place where a persistent ISO can be uploaded I'd be glad to share
The new Ubuntu Live CD persistence is an excellent capability and in addition to current Live CD uses, this will certainly make Live CDs very much more viable, useful and important. Now you can carry around your own custom Ubuntu environment on a CD and USB Stick that all just fits in your pocket. Now go gloat to your friends and co-workers about how much Ubuntu ROCKS!
If you encounter the problem of booting without persistence on on UEFI pc. See what Ubfan (ubfan1) wrote on 2013-04-29 here: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1159016
Create a file named casper-rw with ext3 file system in root directory of a partition with FAT32 file system.
Create a partition with ext3 filesystem and label casper-rw
Then edit the grub menu and add option persistent. For example
linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed noprompt boot=casper persistent iso-scan/filename=/ubuntu-12.10-desktop-i386.iso quiet splash --
It's OK to use existing partition with above specification in a HDD or USB or any writeable storage. I recommend HDD as using slower USB devices will lead to reduced speed of OS. Storing casper-rw file in other file system like EXT2/EXT3/NTFS/exFAT seems not working. (Does anyone has success ? I'm very happy to hear that. )
Let us arrogantly suppose that someone gives up to make a different FAT32 or ext2 partition just to place "cheap" combo of iso and extra partition for sake of this persistence magic. Well, it's also good idea to enable
persistence on your Live USB.
To do this you can act in either
Startup Disk Creator or
Startup Disk Creator