Sugar on a Stick/Linux
Introduction
This page provides additional detail for loading Quandong, the most stable, released version of Sugar on a Stick (SoaS), available at Sugar on a Stick/Downloads, onto a USB/SD flash storage device using GNU/Linux.
- To explore a variety of experimental options for putting a Sugar image on a USB or SD flash drive under GNU/Linux, see the following pages:
- SoaS test builds | OLPC XO-1 | openSUSE | Trisquel | VirtualBox | VMware | non-compressed Fedora | Live USB: (all known portable Sugar distributions)
If you have questions, trouble, or feedback, please let us know on the discussion page. If you can improve these instructions, please edit the page and do so!
- See this reference for more background details: fedora:How to create and use Live USB
Load SoaS onto a stick using Fedora or Ubuntu
This is known to work in Fedora and Ubuntu.
First, download a SoaS .iso
image from http://spins.fedoraproject.org/soas/#downloads, then return here.
- Make sure you have the syslinux package installed on the operating system that you will use to prepare the Live USB image. It is recommended that you also have the isomd5sum package installed. The cryptsetup package is another option potentially used by the "livecd-iso-to-disk" installation script. (On Ubuntu,
sudo apt-get install syslinux isomd5sum cryptsetup
will install the packages. They are also available through the Synaptic Package Manager.)
- (On Gentoo, one needs to uncomment 'SAMPLE FILE' in /etc/mtools/mtools.conf to make syslinux work.)
- syslinux is needed to set up booting on the FAT file system of the USB disc or Live CD.
- isomd5sum is needed for the recommended verification step, which checks that the .iso file is complete after its travels. If there is a problem with the .iso file, the script will exit and provide a failure message. The verification step can be bypassed by using the
--noverify
option. - cryptsetup is only needed for the option to provide password protection and encryption for the persistent /home/liveuser folder. It is not necessary if one applies the recommended
--unencrypted-home
option. The--unencrypted-home
option is preferred because the reduced overhead improves robustness with the compressed SquashFS file system employed by the Live USB deployment.
- Plug in a 2 GB or larger USB stick into your computer.
- Mount the 'SoaS.iso' image to reach the onboard livecd-iso-to-disk installation script:
sudo mkdir /media/soas/
sudo mount /path/to/Fedora-17-x86_64-Live-SoaS.iso /media/soas/
- (mount: warning: /media/soas/ seems to be mounted read-only.)
- Change the working directory to the LiveOS folder on the SoaS.iso mount:
cd /media/soas/LiveOS
- Execute
./livecd-iso-to-disk --help
for usage details. (The file is already executable.)
- Check the USB device node name on your system. In the example below, the scsi device is /dev/sdc and filesystem partition on that device is /dev/sdc1:
$ df -Th Filesystem Type Size Used Avail Use% Mounted on rootfs rootfs 20G 12G 7.5G 61% / udev devtmpfs 1.6G 0 1.6G 0% /dev tmpfs tmpfs 1.6G 904K 1.6G 1% /dev/shm tmpfs tmpfs 1.6G 788K 1.6G 1% /run /dev/sda2 ext4 20G 12G 7.5G 61% / tmpfs tmpfs 1.6G 0 1.6G 0% /sys/fs/cgroup tmpfs tmpfs 1.6G 0 1.6G 0% /media /dev/sda2 ext4 20G 12G 7.5G 61% /tmp /dev/sda2 ext4 20G 12G 7.5G 61% /var/tmp /dev/sda2 ext4 20G 12G 7.5G 61% /home /dev/loop0 iso9660 509M 509M 0 100% /media/soas /dev/sdc1 vfat 3.8G 4.0K 3.8G 1% /run/media/MyAccount/MyUSBdiscMountPoint
Another way to find out the USB device node name on your system is issuing the command
sudo fdisk -l
and looking in the output for the disk that corresponds to the USB device, e.g., a disk described with a stanza like
Disk /dev/sd?: 1939 MB, 1939865600 bytes 150 heads, 42 sectors/track, 601 cylinders, total 3788800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000e14bf Device Boot Start End Blocks Id System /dev/sd?1 * 2048 3784703 1891328 c W95 FAT32 (LBA)
where ? in /dev/sd? is (usually) a letter of the alphabet.
If you have only one storage device with 2 GB of nominal capacity, it will be easy to recognize the USB device in the fdisk output by looking at which device has (about) 2 GB of capacity. In the example above, "Disk /dev/sd?" reports to be as large as 1939 MB, that is almost 2 GB.
If you have more than one disk with about 2 GB of capacity, consider moving to a situation where you'll have only one device with 2 GB of capacity, because this will help out a lot in recognizing the drive correctly.
- Unmount the drive,
sudo umount /run/media/MyAccount/MyUSBdiscMountPoint
- (The
/run/media/MyAccount/
path is the new, Fedora 17 standard mount point. Other operating systems may use/media/MyMountPoint
.)
- (The
- Check the disk partition table for a device, such as
/dev/sdc
,
sudo fdisk -l /dev/sdc
<----that's a lowercase letter 'L' for the list option.
parted /dev/sdc
toggle 1 boot
quit
$ sudo fdisk -l /dev/sdc Disk /dev/sdc: 4012 MB, 4012900352 bytes 124 heads, 62 sectors/track, 1019 cylinders, total 7837696 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000a9c7 Device Boot Start End Blocks Id System /dev/sdc1 * 62 7834071 3917005 c W95 FAT32 (LBA)
The asterisk, * , under the Boot column indicates that the partition is bootable.
- Run
livecd-iso-to-disk
as the root user, making sure to pass the correct USB device node name and to set overlay and home size appropriately, depending on the target USB device storage capacity.
- ./livecd-iso-to-disk --reset-mbr --overlay-size-mb 500 --home-size-mb 900 --delete-home --unencrypted-home /path/to/downloaded.iso /dev/sd?1
- If the command fails telling you that /dev/sd?1 does not exist, try using the command for /dev/sd? (the name of the device) and not for /dev/sd?1 (the name of the partition), like this:
- ./livecd-iso-to-disk --reset-mbr --overlay-size-mb 500 --home-size-mb 900 --delete-home --unencrypted-home /path/to/downloaded.iso /dev/sd?
- If the command fails returning a complaint about the filesystem not being mounted, and you can afford to loose all data on the USB device, you can try reformatting the USB device filesystem:
- mount the USB device (e.g., by unplugging and re-inserting it),
- repeat the steps for learning its device name (there can be situations when the device name has changed!)
- issue the command with the
--format --msdos
options, like this:
- ./livecd-iso-to-disk --reset-mbr --format --msdos --overlay-size-mb 500 --home-size-mb 900 --unencrypted-home /path/to/downloaded.iso /dev/sd?
- /run/initramfs/live/LiveOS/livecd-iso-to-disk --reset-mbr --overlay-size-mb 500 --home-size-mb 900 --delete-home --unencrypted-home /run/initramfs/livedev /dev/sd?1
- The livecd-iso-to-disk installation method has other advantages over the liveusb-creator method by allowing the creation of a separate, persistent /home/liveuser folder with the --home-size-mb NNN option. This feature avoids consumption of the write-once persistent overlay for Activity storage (see LiveOS image) and allows one to update the OS image while keeping the user files (by running the script against your existing installation but leaving out the --home-size-mb NNN option).
- The
--delete-home
option is used to avoid an error message while requesting both a new home (with--home-size-mb
) and a persistent home (indirectly with--unencrypted-home
). You wouldn't use the --delete-home option on an upgrade of the operation system only.
- The
- Depending on the size of your USB stick, you may have to decrease
--overlay-size-mb
and--home-size-mb
values (for example, for a 2 GB stick, use 500 for the overlay and 900 for the home folder).- If you have sufficient capacity on your target device, and format it with an ext[234] filesystem to overcome the 2048-MB fat32 file size limit, you may avoid the SquashFS compression by including the
--skipcompress
option in the script command line.
- Watch out for errors in the output of the script, the script seems to ignore them! (and say all is fine on the last line).
- If you have sufficient capacity on your target device, and format it with an ext[234] filesystem to overcome the 2048-MB fat32 file size limit, you may avoid the SquashFS compression by including the
livecd-iso-to-disk transcript
[LiveOS]$ sudo ./livecd-iso-to-disk --reset-mbr --overlay-size-mb 500 --home-size-mb 900 --delete-home --unencrypted-home /media/SoaS/Fedora-17-x86_64-Live-SoaS.iso /dev/sdc1 Verifying image... /media/SoaS/Fedora-17-x86_64-Live-SoaS.iso: 470134baa7e48085595243e53b55d41e Fragment sums: 7de3e14f3d5aa991343fa35bdfe3a1db59d578db95a844a63d22de789de1 Fragment count: 20 Press [Esc] to abort check. Checking: 100.0% The media check is complete, the result is: PASS. It is OK to use this media. Copying live image to target device. squashfs.img 512344064 100% 43.04MB/s 0:00:11 (xfer#1, to-check=0/1) sent 512406681 bytes received 31 bytes 44557105.39 bytes/sec total size is 512344064 speedup is 1.00 osmin.img 8192 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1) sent 8265 bytes received 31 bytes 16592.00 bytes/sec total size is 8192 speedup is 0.99 Updating boot config file Initializing persistent overlay file 500+0 records in 500+0 records out 524288000 bytes (524 MB) copied, 5.1728 s, 101 MB/s Initializing persistent /home 900+0 records in 900+0 records out 943718400 bytes (944 MB) copied, 152.195 s, 6.2 MB/s Formatting unencrypted /home mke2fs 1.42.3 (14-May-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 57600 inodes, 230400 blocks 11520 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=239075328 8 block groups 32768 blocks per group, 32768 fragments per group 7200 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 tune2fs 1.42.3 (14-May-2012) Setting maximal mount count to -1 Setting interval between checks to 0 seconds Installing boot loader Target device is now set up with a Live image!
What's next?
After you've created your stick, it's time to boot your stick and test it out. Please also report your observations.