Sugar on a Stick/Linux

< Sugar on a Stick
Revision as of 22:51, 29 October 2009 by FGrose (talk | contribs) (redirect VMware section to VMware)

Introduction

This page explores a variety of experimental options for putting a Sugar on a Stick image on a USB flash drive under GNU/Linux. Look at the page Contents box to the right to select a suitable option.

For a more stable, released version, see v1 Strawberry.

If you have questions, trouble, or feedback, please let us know on the discussion page. "Sugar on a Stick" is provided in a number of variants. If you can improve these instructions, please edit the page and do so!

Soas03 Beta

Download

  • Help save our bandwidth. Please download via BitTorrent, if possible.
Tracker Link
LegalTorrents.com http://www.legaltorrents.com/torrents/780-sugar-on-a-stick-v2-beta

Alternatively, you can download via http:

Soas03 Installation on USB/SD

(Don't forget to chmod +x tools_livecd-iso-to-disk.sh after you download the script.)
  • The .iso file may be burnt to a CD-ROM and booted on your PC (or mounted in a virtual machine to boot it):

Note:

  • See this announcement for more information (noting the changes and notes below).
  • To install the .iso disc image, execute the shell script as the root user in one command with arguments as follows:
sudo ./tools_livecd-iso-to-disk.sh --overlay-size-mb 400 --delete-home --extra-kernel-args selinux=0 ./SoaS3-200909271154.iso /dev/sd*1
  • (*) be sure of your USB/SD storage device name (such as sda, sdb, etc.) and partition (such as 1, 2, etc.), yielding, for example, /dev/sdb1. Use the mount command or the partition manager to confirm it before executing the script.
  • The --format --reset-mbr arguments for the shell script were in the example script, but may be excluded to preserve the existing disc format and data. See olpc:How to Damage a FLASH Storage Device for a discussion of why you might want to try to keep your factory format on a flash storage device.
  • If you do use the format and reset master boot record arguments, you'll want to specify the target device name and not a partition, that is /dev/sd* with no partition number, instead of /dev/sd*1 as in the example above used to specify an existing partition. As noted above, confirm your target disc device name—in this case, it is VERY DANGEROUS to your other discs if this is entered wrong, as the whole disc will be reformatted and a new master boot record written causing all previously written data on that disc to be lost.

zyx-liveinstaller

  • zyx-liveinstaller is a method for installing SoaS *from* either a USB device or LiveCD media *to* a system or external disk. It is known to work best with the most recent snapshot build - soas03.iso.[2]
  • To use, start the root terminal activity, type 'zyx-liveinstaller', then press enter.
  • start the partitioner,
recommend 4GB USB/SD formatted as follows:
200 /boot ext2
3000 / ext3
(no swap needed)

Exit the partitioner by hitting the X in the top corner of window. Then read and follow the simple wizard, choosing destination volumes/partitions for boot, root, and swap. root must be at least 2GB(not currently checked for by the installer). boot may be the same as root, and swap is optional.

  • This is a *destructive* install, meaning that the contents of the disks or partitions you choose will be overwritten entirely.
  • During installation, you are free to use other activities.
  • After installation completes, you may remove the LiveUSB or LiveCD, and continue using the newly installed system - *without rebooting*!!!. This means that anything done with the system before, during, or after installation persists into the installed system.

use dd command

on this hybrid image to make a bootable USB/SD (NOT RECOMMENDED) Makes bootable USB from soas03.iso

  • If you use dd command to write a USB or SD image, there will be no persistence. The SCRIPT method detailed above should be used.

In Root Terminal:

dd if=soas03.iso of=/dev/sd(?) bs=4M
  • Be sure your USB/SD is /dev/sd? check with partition manager to be sure.

CAUTION: ** You can destroy you Hard Disk if you enter it wrong! **


Put SoaS on an OLPC XO-1

Put SoaS onto a stick using Fedora and Ubuntu

This is known to work in Fedora and Ubuntu.

First, start downloading a SoaS .iso image from the download locations section, then return here.

(A program called UNetBootin available at http://unetbootin.sourceforge.net/ does all this magic for you... or you can do the magic yourself:)
  • 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 1GB or larger USB stick into your computer.
  • Download the installation script: http://download.sugarlabs.org/soas/releases/livecd-iso-to-disk.sh (23 June 2009).
    (You will execute this script several steps below.)
  • Check the USB device name. In the example below, the storage device is /dev/sdb and filesystem partition on that device is /dev/sdb1:
df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              19G  7.0G   11G  40% /
tmpfs                 1.5G     0  1.5G   0% /lib/init/rw
varrun                1.5G   96K  1.5G   1% /var/run
varlock               1.5G     0  1.5G   0% /var/lock
udev                  1.5G  2.9M  1.5G   1% /dev
tmpfs                 1.5G  104K  1.5G   1% /dev/shm
lrm                   1.5G  2.0M  1.5G   1% /lib/modules/2.6.27-11-generic/volatile
/dev/sdb1             996M  913M   84M  92% /mnt/myUSBdisc
  • Unmount the drive,
sudo umount /dev/sdb1
  • Then check to see that the partition is marked as bootable,
sudo fdisk -l <----that's a lowercase letter 'L' for the list option.

You should see output that looks like this:

Disk /dev/sdb: 1047 MB, 1047265280 bytes
255 heads, 63 sectors/track, 127 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0008325f
. 
 Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         127     1020096    6  FAT16

The '*' under the Boot column is what you want to see.

If not, then
  • For Ubuntu 8.10, menu: System -> Administration -> Partition Editor (GParted).
  1. Select your USB device (/dev/sdb for the rest of these instructions),
  2. then your partition (/dev/sdb1),
  3. then menu: Partition -> Manage Flags,
  4. check the boot box,
  5. and Close to mark the partition as bootable.
  • For Fedora,
  1. parted /dev/sdb
  2. toggle 1 boot
  3. quit
  • Also, check to see that you do not already have an existing boot loader (such as GRUB) in the MBR of your stick. (If you have not previously used this stick as a live boot, you can skip this step.) To be sure that the USB stick's MBR is wiped clean, overwrite it completely using:
dd if=/dev/zero of=/dev/sdb bs=446 count=1
(Actually, that didn't work for me. But this did:
lilo -M /dev/sdb
It put in a standard MBR that boots whichever partition has been called bootable. It does not install LILO as such.)
  • Change mode to make the script executable.
chmod +x livecd-iso-to-disk.sh
  • Run it as root, making sure to pass the correct USB device and to set overlay and home size appropriately, depending on the stick size.
sudo ./livecd-iso-to-disk.sh --overlay-size-mb 300 --home-size-mb 160 --delete-home --unencrypted-home soas-strawberry.iso /dev/sdb1
The livecd-iso-to-disk installation has the advantage over the liveusb-creator installation method by allowing a persistent /home/liveuser folder with the --home-size-mb NNN option. This feature would allow you 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.
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 1-GB stick, use 200 for each).
  • If you get an error about udevinfo, you have the new version of udev where "udevadm info" is the proper command. :Create an executable file called udevinfo somewhere in your path with the following contents:
#!/bin/bash
udevadm info $*
  • 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).

livecd-iso-to-disk.sh transcript

$ sudo ./livecd-iso-to-disk.sh --overlay-size-mb 300 --home-size-mb 160 --delete-home --unencrypted-home Soas2-200906211228.iso /dev/sdb1
Verifying image...
/home/walter/Desktop/Soas2-200906211228.iso:   9f1aa3c7a19dd9c68d1047d681f703c6
Fragment sums: f5ddb7deb26b6474bd59be9f57b6c7abcd624e1ccc682ddf664ba73da4ed
Fragment count: 20
Checking: 100.0%

The media check is complete, the result is: PASS.

It is OK to use this media.
Copying live image to USB stick
Updating boot config file
Initializing persistent overlay file
300+0 records in
300+0 records out
314572800 bytes (315 MB) copied, 88.7551 s, 3.5 MB/s
Initializing persistent /home
160+0 records in
160+0 records out
167772160 bytes (168 MB) copied, 48.1191 s, 3.5 MB/s
Formatting unencrypted /home
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
40960 inodes, 163840 blocks
8192 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
20 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 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
tune2fs 1.41.4 (27-Jan-2009)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
Installing boot loader
USB stick set up as 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.