Changes

Jump to navigation Jump to search
7,573 bytes added ,  12:10, 26 February 2015
no edit summary
Line 1: Line 1: −
{{TOCright}}
+
<noinclude>
 +
[[Category:HowTo]]
 +
</noinclude>
 
== Introduction ==
 
== Introduction ==
   −
This page is designed to help you to put your [[Sugar on a Stick]] image under Linux on a thumbdrive. If you have questions, trouble or feedback, please let us know on the [[Talk:Sugar on a Stick|SoaS talk]] page. If you can improve these instructions, please edit the page and do so!
+
The page [[Sugar on a Stick/Linux/Installation]] provides up-to-date and concise instructions for loading  the most recent released version of [[Sugar on a Stick]] (SoaS) onto a USB/SD flash storage device using GNU/Linux.
== [[Sugar on a Stick/Installation/OLPC | SoaS on an OLPC XO-1]]==
+
 
* See [[Sugar on a Stick/Installation/OLPC]] for booting an OLPC XO-1 with SoaS images.
+
==livecd-iso-to-disk tool==
 +
 
 +
Before experimenting beyond the instructions in the link above, please read [[fedora:How to create and use Live USB]] for more background details. That page starts with Direct Write methods of creating a (non-persistent) Live USB system, and further down the page describes using the livecd-iso-to-disk tool which is the prefered method of making persistent Sugar on a Stick.
 +
 
 +
The reader should be aware that Ubuntu/Debian use a method to create a live USB system which is fundamentally different to Fedora's method, used by Sugar.
 +
 
 +
:''Quote from the above Fedora page''
 +
 
 +
: '''Issues using other Linux distributions'''
 +
 
 +
: Ubuntu and derivative Linux distributions have a usb-creator program similar to Live USB Creator. This does not work with Fedora ISO images, it silently rejects them. usb-creator requires the ISO to have a Debian layout, with a /.disk/info file and a casper directory. Do not attempt to use this utility to write a Fedora ISO image.
 +
 
 +
: The livecd-iso-to-disk script is not meant to be run from a non-Fedora system. Even if it happens to run and write a stick apparently successfully from some other distribution, the stick may well fail to boot. Use of livecd-iso-to-disk on any distribution other than Fedora is unsupported and not expected to work: please use an alternative method, such as the "direct write" methods described above.
 +
:''end Quote''
 +
 
 +
=== Persistence ===
 +
Persistence in the context of a live USB system, is the ability to save both system changes, including Software updates, and the user's work between sessions, that is after shutdown and reboot.
 +
 
 +
==Linux users, suggested methods ==
 +
 
 +
Linux users might consider reading the following pages for supported methods to install SoaS.
 +
 
 +
'''Users of Fedora and Red Hat derivitives:'''
 +
:[[Sugar on a Stick/Linux/Installation]]
 +
 
 +
'''Debian, Ubuntu, and derivitives, and other distros:'''
 +
 
 +
:Make your SoaS from within a Sugar Live OS environment, which is itself a Fedora system.
 +
 
 +
: '''Either''' Burn a Sugar.iso and follow the section of [[Sugar on a Stick/Installation]] entitled
 +
 
 +
:: "1. Burn a CD-ROM disc, boot from it, then run the script, ''livecd-iso-to-disk''"
 +
 
 +
: '''or''' create a Sugar image by dd or any of the methods on [[ Testing/Reports/Sugar_on_a_Stick_Persistence|this page]]. Then boot into the Live OS, to create SoaS from the running Live OS image.
 +
 
 +
 
 +
If you have questions, trouble, or feedback, please let us know on the [[{{TALKPAGENAMEE}}|discussion]] page. If you can improve these instructions, please edit the page and do so!
 +
 
 +
==Experimental==
 +
 
 +
To explore a variety of experimental options for putting a [[What is Sugar?|Sugar]] image on a USB or SD flash drive under GNU/Linux, see the following pages:
 +
 
 +
[[Sugar on a Stick/Beta|SoaS test builds]] | [[Sugar on a Stick/Installation/OLPC|OLPC XO-1]] | [[Sugar on a Stick/Linux/openSUSE|openSUSE]] | [[Trisquel On A Sugar Toast|Trisquel]] | [[VirtualBox]] | [[VMware]] | [[Sugar on a Stick/Linux/Non-compressed Fedora|non-compressed Fedora]] | [[:Category:Live USB|Live USB: (all known portable Sugar distributions)]]
   −
== Linux instructions ==
+
=== Load SoaS further insight ===
   −
This is known to work in Fedora and Ubuntu and should work in other Linux distributions.
+
This is known to work in Fedora and has been reported to work in Ubuntu.
   −
* Make sure you have the ''isomd5sum'', ''cryptsetup'', and ''syslinux'' packages installed in your distribution, as they will be needed by the "livecd-iso-to-disk" installation script. (On Ubuntu, <code>sudo apt-get install isomd5sum cryptsetup syslinux</code> will install the packages.)
+
First, download a SoaS {{Code|.iso}} image from http://spins.fedoraproject.org/soas/#downloads, then return here.
**''isomd5sum'' is only needed for the recommended verification step, which checks that the .iso file is complete after its travels. The script will exit and provide a failure message if there is a problem with the file. Verification can be bypassed by using the <tt>--noverify</tt> option.
  −
**''syslinux'' is needed to set up booting on the FAT file system of the USB disc or Live CD.
  −
**''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 <tt>--unencrypted-home</tt> option. The <code>--unencrypted-home</code> 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://people.sugarlabs.org/sdz/livecd-iso-to-disk.sh (09 April 2009)
     −
* Check the USB device. In the example below the device is /dev/sdb:
+
* 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, {{Code|sudo apt-get install syslinux isomd5sum cryptsetup}} will install the packages. They are also available through the Synaptic Package Manager.)
: <tt>'''df -h'''</tt>
+
:: <small>(On Gentoo, one needs to uncomment 'SAMPLE FILE' in /etc/mtools/mtools.conf to make syslinux work.)</small>
Filesystem            Size  Used Avail Use% Mounted on
+
:*''[[wikipedia:Syslinux|syslinux]]'' is needed to set up booting on the FAT file system of the USB disc or Live CD.
/dev/sda1              19G 7.0G  11G  40% /
+
:*''[[wikipedia:md5sum|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 <code>--noverify</code> option.
tmpfs                1.5G    0  1.5G  0% /lib/init/rw
+
:*''[[wikipedia:dm-crypt|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 {{Code|--unencrypted-home}} option. The {{Code|--unencrypted-home}} option is preferred because the reduced overhead improves robustness with the compressed ''[[wikipedia:SquashFS|SquashFS]]'' file system employed by the Live USB deployment.
varrun                1.5G  96K  1.5G  1% /var/run
+
* Plug in a 2 GB or larger USB stick into your computer.
varlock              1.5G    0  1.5G  0% /var/lock
+
* Mount the 'SoaS.iso' image to reach the onboard livecd-iso-to-disk installation script:
udev                  1.5G  2.9M  1.5G  1% /dev
+
: {{Code|sudo mkdir /run/soas/}}
tmpfs                1.5G  104K  1.5G  1% /dev/shm
+
: {{Code|sudo mount /path/to/Fedora-Live-SoaS-x86_64-20-1 /run/soas/}}
lrm                  1.5G  2.0M  1.5G  1% /lib/modules/2.6.27-11-generic/volatile
+
:: (mount: /dev/loop0 is write-protected, mounting read-only)
/dev/sdb1            996M  913M  84M  92% /mnt/myUSBdisc
+
* Change the working directory to the LiveOS folder on the SoaS.iso mount:
 +
: {{Code|cd /run/soas/LiveOS}}
 +
* Execute {{Code|./livecd-iso-to-disk --help}} for usage details. (The file is already executable.)
   −
* Then check to see that the partition is marked as bootable,<br>
+
* Check the USB device node name on your system. In the example below, the <abbr title="small computer system interface">'''s'''csi</abbr> '''d'''evice is /dev/sdc and filesystem partition on that device is /dev/sdc1:
: <tt>sudo fdisk '''-l'''</tt> ''<----that's a lowercase letter L for the List option.''
+
<pre>
You should see output that looks like this:
+
$ df -Th
Disk /dev/sdb: 1047 MB, 1047265280 bytes
+
Filesystem    Type    Size Used Avail Use% Mounted on
255 heads, 63 sectors/track, 127 cylinders
+
rootfs      rootfs    20G  12G 7.5G  61% /
Units = cylinders of 16065 * 512 = 8225280 bytes
+
udev     devtmpfs    1.6G    0  1.6G   0% /dev
  Disk identifier: 0x0008325f
+
tmpfs        tmpfs    1.6G 904K  1.6G  1% /dev/shm
  .  
+
tmpfs        tmpfs    1.6G 788K  1.6G  1% /run
  Device Boot     Start        End      Blocks   Id System
+
/dev/sda2    ext4    20G   12G  7.5G  61% /
  /dev/sdb1   *          1         127     1020096   6 FAT16
+
tmpfs        tmpfs    1.6G     0  1.6G  0% /sys/fs/cgroup
The '*' under the Boot column is what you want to see.
+
tmpfs        tmpfs   1.6G    0 1.6G  0% /media
: If not, then
+
/dev/sda2    ext4    20G  12G  7.5G  61% /tmp
:* For Ubuntu 8.10, menu: System -> Administration -> Partition Editor (GParted).
+
/dev/sda2    ext4    20G  12G  7.5G  61% /var/tmp
::# Select your USB device (/dev/sdb in your case),
+
/dev/sda2    ext4    20G  12G  7.5G  61% /home
::# then your partition (/dev/sdb1),
+
/dev/loop0 iso9660    668M  668M    0 100% /run/soas
::# then menu: Partition -> Manage Flags,
+
/dev/sdc1    vfat    3.8G  4.0K  3.8G  1% /run/media/MyAccount/MyUSBdiscMountPoint
::# check the boot box,
+
</pre>
::# and Close to mark the partition as bootable.
     −
:* For Fedora,
+
Another way to find out the USB device node name on your system is issuing the command
::#  <tt>parted /dev/sdb</tt>
  −
::# toggle 1 boot
  −
::# quit
     −
* Also, check to see that you do not already have an existing bootloader (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:
+
    sudo fdisk -l
: <tt>dd if=/dev/zero of=/dev/sdb bs=446 count=1</tt>
+
 
* (Actually, that didn't work for me. But this did:
+
and looking in the output for the disk that corresponds to the USB device, e.g., a disk described with a stanza like
: <tt>lilo -M /dev/sdb</tt>
+
 
:It put in a standard MBR that boots whichever partition has been called bootable. It does not install LILO as such.)
+
    Disk /dev/sd'''?''': 1939 MB, 1939865600 bytes
* Unmount the drive,<br>
+
    150 heads, 42 sectors/track, 601 cylinders, total 3788800 sectors
: <tt>sudo umount /dev/sdb1</tt>
+
    Units = sectors of 1 * 512 = 512 bytes
* Change mode to make the script executable.
+
    Sector size (logical/physical): 512 bytes / 512 bytes
: <tt>chmod +x livecd-iso-to-disk.sh</tt>
+
    I/O size (minimum/optimal): 512 bytes / 512 bytes
* 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.
+
    Disk identifier: 0x000e14bf
: <tt>sudo ./livecd-iso-to-disk.sh --overlay-size-mb 300 --home-size-mb 160 --delete-home --unencrypted-home soas-beta.iso /dev/sdb1</tt>
+
   
The ''livecd-iso-to-disk'' installation has the advantage over the ''liveusb-creator'' installation method by allowing a persistent /home/liveuser folder with the <tt>--home-size-mb ''NNN''</tt> 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 <u>leaving out</u> the --home-size-mb NNN option).
+
    Device Boot      Start        End      Blocks  Id  System
* The <code>--delete-home</code> option is used to avoid an error message while requesting both a new home (with <code>--home-size-mb</code>) and a persistent home (indirectly with <code>--unencrypted-home</code>). You wouldn't use the --delete-home option on an upgrade of the operation system only.
+
    /dev/sd'''?'''1  *        2048    3784703    1891328    c  W95 FAT32 (LBA)
Depending on the size of your usb stick, you may have to decrease <code>--overlay-size-mb</code> and <code>--home-size-mb</code> values (example, for 1 GB stick, use 200 for each).
+
 
 +
where '''?''' in /dev/sd'''?''' is (usually) a letter of the alphabet.
   −
== Alternative installation methods ==
+
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.
   −
=== UNetbootin ===
+
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.
   −
UNetbootin (Universal Netboot Installer) is a cross-platform utility that can create Live USB systems.
+
* Unmount the drive,<br>
 +
: {{Code|sudo umount /run/media/MyAccount/MyUSBdiscMountPoint}}
 +
:: <small>(The {{Code|/run/media/MyAccount/}} path is the new, standard Fedora mount point. Other operating systems may use {{Code|/media/MyMountPoint}}.)</small>
 +
{{:Sugar on a Stick/Linux/bootable device}}
    +
* Run {{Code|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.
 +
:<div style="padding: 1em; border: 1px dashed #2F6FAB; background-color: #FBFBFB; margin: 1em 0px 1em 0em; font-family: Courier;">./livecd-iso-to-disk --reset-mbr --overlay-size-mb '''500''' --home-size-mb '''800''' --unencrypted-home '''/path/to/downloaded'''.iso /dev/sd'''?'''1</div>
 +
: 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:
   −
:*http://unetbootin.sourceforge.net/
+
:<div style="padding: 1em; border: 1px dashed #2F6FAB; background-color: #FBFBFB; margin: 1em 0px 1em 0em; font-family: Courier;">./livecd-iso-to-disk --reset-mbr --overlay-size-mb '''500''' --home-size-mb '''800''' --unencrypted-home '''/path/to/downloaded'''.iso /dev/sd'''?'''</div>
   −
* Choose the Diskimage ISO option.
+
: 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:
* Select the downloaded .iso image file.
  −
* Press OK and wait for your USB stick to be created.
     −
----
+
:* mount the USB device (e.g., by unplugging and re-inserting it),
''Notes:''
+
:* repeat the steps for learning its device name (there can be situations when the device name has changed!)
*Keep in mind that UNetbootin doesn't support persistent overlays, so you won't be able to save files using the Journal.
+
:* issue the command with the '''{{Code|--format --msdos}}''' options, like this:
*Under soas gives errors
+
{{Note/warning|Warning|The command described here will ask for a confirmation and will '''destroy''' all pre-existing data on your USB device.<br>
----  
+
See also [[olpc:How_to_Damage_a_FLASH_Storage_Device|How to Damage a FLASH Storage Device]] for a discussion of why using the factory format is preferred.}}
 +
::<div style="padding: 1em; border: 1px dashed #2F6FAB; background-color: #FBFBFB; margin: 1em 0px 1em 0em; font-family: Courier;">./livecd-iso-to-disk --reset-mbr '''--format --msdos''' --overlay-size-mb '''500''' --home-size-mb '''800''' --unencrypted-home '''/path/to/downloaded'''.iso /dev/sd'''?'''</div>
   −
=== Fedora Live USB Creator ===
+
: {{Highlight|In the above examples, the {{Code|'''/path/to/downloaded'''.iso}} may be substituted with {{Code|/dev/loop0}}, as this is the loop device that the mount command chose.}}
(This section is under construction.)
     −
Fedora's ''liveusb-creator'' (see [[Sugar on a Stick/Windows | windows install section]] above for how to use).
+
{{Note/note|Note| Additional USB or SD devices may be loaded from a running ''Sugar on a Stick'' image that was loaded with the livecd-iso-to-disk script (but not those installed by other methods) by running this command in the Terminal Activity as a root user:}}
Needs to be loaded from Synaptic Package Manager
+
:<div style="padding: 1em; border: 1px dashed #2F6FAB; background-color: #FBFBFB; margin: 1em 0px 1em 0em; font-family: Courier;">/run/initramfs/live/LiveOS/livecd-iso-to-disk --reset-mbr --overlay-size-mb '''500''' --home-size-mb '''800''' --unencrypted-home /run/initramfs/livedev /dev/sd'''?'''1</div>
   −
Has persistence, easy to use.
+
: 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 <tt>--home-size-mb ''NNN''</tt> option. This feature avoids consumption of the 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 <u>leaving out</u> the --home-size-mb NNN option).
 +
::* A {{Code|--delete-home}} option is available to avoid an error message while requesting both a new home (with {{Code|--home-size-mb}}) when there is already a persistent home on the device). You wouldn't use the --delete-home option on an upgrade of the operating system only.
 +
:Depending on the size of your USB stick, you may have to decrease {{Code|--overlay-size-mb}} and {{Code|--home-size-mb}} values (for example, for a 2 GB stick, use 500 for the overlay and 800 for the home folder).
 +
:: If you have sufficient capacity on your target device, and format it with an ext[234] filesystem to overcome the 4096-MB fat32 file size limit, you may avoid the SquashFS compression by including the {{Code|--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).
   −
Instructions are at http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Getting_Involved/Testing/Soas-F11b_Sugar0.84.2
+
===livecd-iso-to-disk transcript===
   −
-On full installs of Fedora 11 Preview can add sugar desktop and make a Soas version with a Full Gnome desktop plus a
+
<pre>
Sugar Desktop on one USB Stick or SD Card (Wireless WPA works with EeePC900)
+
[LiveOS]$ sudo ./livecd-iso-to-disk --reset-mbr --overlay-size-mb 500 --home-size-mb 800 --unencrypted-home /home/MyAccount/Downloads/Fedora-Live-SoaS-x86_64-20-1.iso /dev/sdc1
 +
Verifying image...
 +
/home/MyAccount/Downloads/Fedora-Live-SoaS-x86_64-20-1.iso:    b0a9414ff7eb79b680d5c86440e19587
 +
Fragment sums: 9bfe23577651c88dcfb78c76ac3a28a5c53eead4561e3bdc5921b8b2e748
 +
Fragment count: 20
 +
Press [Esc] to abort check.
 +
Checking: 100.0%
   −
-see for details :
+
The media check is complete, the result is: PASS.
   −
++++PREPARATORY WORK : use Partition Editor to erase existing partition on sdb? (CHECK THIS CAREFULLY!);then make NEW partition as a fat16 primary partition LABELED FEDORA then set boot flag.++++
+
It is OK to use this media.
 +
Copying live image to target device.
 +
squashfs.img
 +
    630,784,000 100%    1.96MB/s    0:05:06 (xfr#1, to-chk=0/1)
 +
osmin.img
 +
          8,192 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)
 +
Updating boot config file
 +
Initializing persistent overlay file
 +
500+0 records in
 +
500+0 records out
 +
524288000 bytes (524 MB) copied, 216.717 s, 2.4 MB/s
 +
Initializing persistent /home
 +
800+0 records in
 +
800+0 records out
 +
838860800 bytes (839 MB) copied, 344.643 s, 2.4 MB/s
 +
Formatting unencrypted /home
 +
mke2fs 1.42.8 (20-Jun-2013)
 +
Filesystem label=
 +
OS type: Linux
 +
Block size=4096 (log=2)
 +
Fragment size=4096 (log=2)
 +
Stride=0 blocks, Stripe width=0 blocks
 +
51296 inodes, 204800 blocks
 +
10240 blocks (5.00%) reserved for the super user
 +
First data block=0
 +
Maximum filesystem blocks=209715200
 +
7 block groups
 +
32768 blocks per group, 32768 fragments per group
 +
7328 inodes per group
 +
Superblock backups stored on blocks:
 +
32768, 98304, 163840
   −
-to label the partition FEDORA on Fedora, use <pre>dosfslabel devicename FEDORA</pre> dosfslabel comes with the "dosfstools" rpm package.
+
Allocating group tables: done                           
 +
Writing inode tables: done                           
 +
Creating journal (4096 blocks): done
 +
Writing superblocks and filesystem accounting information: done
 +
 
 +
tune2fs 1.42.8 (20-Jun-2013)
 +
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!
 +
</pre>
    
== What's next? ==
 
== What's next? ==
   −
After you've created your stick, it's time to [[Sugar_on_a_Stick#Boot|boot your stick]] and [[Sugar on a Stick/Getting Involved | test]] it out.  Please also [[Sugar on a Stick/Getting Involved/Testing | report]] your observations.
+
After you've created your stick, it's time to [[Sugar on a Stick/Boot|boot your stick]] and [[Sugar on a Stick/Getting Involved | test]] it out.  Please also [[Sugar on a Stick/Getting Involved/Testing | report]] your observations.
 
  −
[[Category:HowTo]]
 

Navigation menu