Wednesday, December 10, 2014

Creating a persistent live cd (ubuntu or linux mint) using a loopback file

This technique will require the use of the live cd, and a usb stick, as a vessel for the persistent file. Two requirements: the partition of the live cd must be in a format that can be mounted automatically, for example: vfat, ext3 or ext4 and the loopback file must be in the root of the partition

  1. Boot your machine using live cd
  2. Once boot up, insert your usb stick
  3. Check whether your usb stick is already mounted
    $ df -lh
    Filesystem      Size  Used Avail Use% Mounted on
    /cow            3.9G   59M  3.9G   2% /
    udev            3.9G  4.0K  3.9G   1% /dev
    tmpfs           798M  1.4M  796M   1% /run
    /dev/sr0        1.2G  1.2G     0 100% /cdrom
    /dev/loop0      1.2G  1.2G     0 100% /rofs
    none            4.0K     0  4.0K   0% /sys/fs/cgroup
    tmpfs           3.9G   24K  3.9G   1% /tmp
    none            5.0M     0  5.0M   0% /run/lock
    none            3.9G  700K  3.9G   1% /run/shm
    none            100M   12K  100M   1% /run/user
    /dev/sdb1         8G    1G    7G  12% /media/mint/backup 
  4. In this case, your usb stick is already mounted to /media/mint/backup
  5. Create a 1GB loopback file (or whatever size you desire)
    $ dd if=/dev/zero of=/media/mint/backup/casper-rw count=1000 bs=1M
  6. Format the file as ext3:
    $ mkfs.ext3 -L casper-rw /media/mint/backup/casper-rw 
    mke2fs 1.42.9 (4-Feb-2014)
    casper-rw is not a block special device.
    Proceed anyway? (y,n) y
    Discarding device blocks: done                            
    Filesystem label=casper-rw
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    64000 inodes, 256000 blocks
    12800 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=264241152
    8 block groups
    32768 blocks per group, 32768 fragments per group
    8000 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
  7. The file is done
  8. To set your live cd to use the loopback file, after your live cd booted up, add a space followed by word "persistent" without the quotes, at the end of your kernel parameter. This can be achieved in linux mint by pressing tab in the kernel list menu, add the parameter, and enter to boot from that kernel. 
    For ubuntu, 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. 
  9. That's all folks, test your persistent live cd by saving a few files in your home, and restart to see whether the files survived a reboot.

No comments: