VirtualBox/Preparing a disk image
LiveOS image
Below are instructions for preparing a VirtualBox disk image from a SoaS iso image file. The process parallels the compressed LiveOS image used on Live CD and Live USB installations.
- (Taken from Dave Bauer's posting at http://schools.sugarlabs.org/mod/forum/discuss.php?d=27.)
- Updated 16 August 2010 with VirtualBox 3.2.8 and 32-bit Fedora.
(Note: The SoaS .iso distribution also contains an installer for full, uncompressed, hard disc images of Fedora with the Sugar graphical interface. See Uncompressed, hard disc image below for instructions.)
Installing SoaS .iso image
- Create a new VM, choose a name, such as Mirabelle
- Choose Linux for the Operating System and Version Fedora (use 64 bit, if available)
- Choose Base Memory Size: 256 MB to match an XO-1, 512 or 1024 MB to match an XO-1.5
- Create a new virtual hard disk image with dynamically expanding storage of 2 GB
- Finish.
- Download the lastest SoaS, http://spins.fedoraproject.org/soas/#downloads, for Fedora 13.
- Mount the SoaS .iso image file as a CD-ROM in the newly created VM.
- Change the Network Attached to: Bridged Adapter (This allows for networking with the host computer.)
- Start the VM
- Enter an account name and startup Sugar.
- Open Terminal.
su -
parted
mklabel msdos
- This makes a partition table.
mkpart primary ext2 0 2048
- You will receive this message:
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? - Enter (I)gnore
- You will receive this message:
toggle 1 boot
quit
mke2fs /dev/sda1
/LiveOS/livecd-iso-to-disk --overlay-size-mb 1024 --home-size-mb 200 --delete-home --unencrypted-home /dev/sr0 /dev/sda1
(for earlier versions of SoaS- Blueberry - use /media/soas-2-blueberry/LiveOS/livecd-iso-to-disk
Strawberry - use /mnt/live/LiveOS/livecd-iso-to-disk)
- Blueberry - use /media/soas-2-blueberry/LiveOS/livecd-iso-to-disk
- the --overlay-size-mb NNN and --home-size-mb NNN options creates space for persistence of changes on the disk; otherwise, a liveOS disk is read-only. See LiveOS image.
The following optional parameters seem to be incompatible with soas-1-strawberry and soas-2-blueberry released versions. (The script completes successfully, but the virtual machine startup process has trouble finding the home directory and fails to complete.)- the --home-size-mb NNN option creates space for file storage in the /home/liveuser folder. (In the case where you you want to update the LiveOS image while keeping the user files, skip the new disk creation and parted steps, leave out the --home-size-mb NNN option at this step, and continue on.)
- the --unencrypted-home option prevents password protection and encryption on the /home/liveuser folder. This releaves the overhead on the compressed SquashFS, and should be more robust to file system failures (outside of security).
- 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 (with --unencrypted-home). (You wouldn't use this option for the LiveOS upgrade case.)
[root@localhost ~]# parted GNU Parted 2.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel msdos (parted) mkpart primary ext2 0 2048 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I (parted) toggle 1 boot (parted) quit Information: You may need to update /etc/fstab. [root@localhost ~]# mke2fs /dev/sda1 mke2fs 1.41.10 (10-Feb-2009) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 125184 inodes, 500000 blocks 25000 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=515899392 16 block groups 32768 blocks per group, 32768 fragments per group 7824 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~]# [root@localhost ~]# /LiveOS/livecd-iso-to-disk --overlay-size-mb 1024 --home-size-mb 200 --delete-home --unencrypted-home /dev/live /dev/sda1 Verifying image... /dev/sr0: 0ce28e3947106fd37bab9317abf09938 Fragment sums: a3c6e5fd5fba11d2b4da71771e8732b63bcb62b841971f7f39ab5c187f64 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 0+0 records in 0+0 records out 0 bytes (0 B) copied, 0.000150187 s, 0.0 kB/s Initializing persistent /home 0+0 records in 0+0 records out 0 bytes (0 B) copied, 0.0039562 s, 0.0 kB/s Formatting unencrypted /home mke2fs 1.41.10 (10-Feb-2009) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 51200 inodes, 204800 blocks 10240 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67371008 25 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 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. tune2fs 1.41.10 (10-Feb-2009) Setting maximal mount count to -1 Setting interval between checks to 0 seconds Installing boot loader /media/usbdev.XB8shz/syslinux is device /dev/sda1 USB stick set up as live image!
-
shutdown -h now
Installing VirtualBox Guest Additions
The VirtualBox Guest Additions requires installing DKMS and compiling virtual device drivers for the Linux kernel.
- Unmount CD/DVD in VirtualBox settings, select 'Empty' for the CD/DVD device under 'Attributes'
- Start the virtual machine
- Open Terminal
su -
- Determine the kernel version,
uname -a
Linux localhost.localdomain 2.6.33.3-85.fc13.i686 #1 SMP Thu May 6 18:44:12 UTC 2010 i686 i686 i386 GNU/Linux
- For SoaS-Mirabelle, the kernel is Linux-2.6.33.3-85.fc13, so specific kernel-headers and kernel-devel are needed:
yum install kernel-headers-2.6.33.3-85.fc13 kernel-devel-2.6.33.3-85.fc13 dkms gcc
- (Other dependencies will be called into the installation.)
<Successful Terminal log from 16 Aug 2010 with Fedora 32 bit>[root@localhost ~]# yum install kernel-devel-2.6.33.3-85.fc13 kernel-headers-2.6.33.3-85.fc13 dkms gcc Loaded plugins: presto, refresh-packagekit Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package dkms.noarch 0:2.1.0.1-1.fc12 set to be updated ---> Package gcc.i686 0:4.4.4-10.fc13 set to be updated --> Processing Dependency: cpp = 4.4.4-10.fc13 for package: gcc-4.4.4-10.fc13.i686 --> Processing Dependency: libgomp = 4.4.4-10.fc13 for package: gcc-4.4.4-10.fc13.i686 --> Processing Dependency: libgcc >= 4.4.4-10.fc13 for package: gcc-4.4.4-10.fc13.i686 --> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.4-10.fc13.i686 --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.4.4-10.fc13.i686 ---> Package kernel-devel.i686 0:2.6.33.3-85.fc13 set to be installed ---> Package kernel-headers.i686 0:2.6.33.3-85.fc13 set to be updated --> Running transaction check ---> Package cloog-ppl.i686 0:0.15.7-1.fc12 set to be updated --> Processing Dependency: libppl.so.7 for package: cloog-ppl-0.15.7-1.fc12.i686 --> Processing Dependency: libppl_c.so.2 for package: cloog-ppl-0.15.7-1.fc12.i686 ---> Package cpp.i686 0:4.4.4-10.fc13 set to be updated ---> Package glibc-devel.i686 0:2.12-3 set to be updated --> Processing Dependency: glibc = 2.12-3 for package: glibc-devel-2.12-3.i686 --> Processing Dependency: glibc-headers = 2.12-3 for package: glibc-devel-2.12-3.i686 --> Processing Dependency: glibc-headers for package: glibc-devel-2.12-3.i686 ---> Package libgcc.i686 0:4.4.4-10.fc13 set to be updated ---> Package libgomp.i686 0:4.4.4-10.fc13 set to be updated --> Running transaction check --> Processing Dependency: glibc = 2.12-1 for package: glibc-common-2.12-1.i686 ---> Package glibc.i686 0:2.12-3 set to be updated ---> Package glibc-headers.i686 0:2.12-3 set to be updated ---> Package ppl.i686 0:0.10.2-10.fc12 set to be updated --> Running transaction check ---> Package glibc-common.i686 0:2.12-3 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size ================================================================================================= Installing: dkms noarch 2.1.0.1-1.fc12 fedora 95 k gcc i686 4.4.4-10.fc13 updates 8.1 M kernel-devel i686 2.6.33.3-85.fc13 fedora 6.3 M kernel-headers i686 2.6.33.3-85.fc13 fedora 760 k Installing for dependencies: cloog-ppl i686 0.15.7-1.fc12 fedora 81 k cpp i686 4.4.4-10.fc13 updates 3.4 M glibc-devel i686 2.12-3 updates 960 k glibc-headers i686 2.12-3 updates 599 k ppl i686 0.10.2-10.fc12 fedora 1.1 M Updating for dependencies: glibc i686 2.12-3 updates 4.3 M glibc-common i686 2.12-3 updates 14 M libgcc i686 4.4.4-10.fc13 updates 103 k libgomp i686 4.4.4-10.fc13 updates 109 k Transaction Summary ================================================================================================= Install 9 Package(s) Upgrade 4 Package(s) Total download size: 40 M Is this ok [y/N]: y Downloading Packages: Setting up and reading Presto delta metadata updates/prestodelta | 87 kB 00:18 fedora/prestodelta | 414 B 00:00 Processing delta metadata Package(s) data still to download: 40 M (1/13): cloog-ppl-0.15.7-1.fc12.i686.rpm | 81 kB 00:06 (2/13): cpp-4.4.4-10.fc13.i686.rpm | 3.4 MB 01:47 (3/13): dkms-2.1.0.1-1.fc12.noarch.rpm | 95 kB 00:09 (4/13): gcc-4.4.4-10.fc13.i686.rpm | 8.1 MB 04:06 (5/13): glibc-2.12-3.i686.rpm | 4.3 MB 01:50 (6/13): glibc-common-2.12-3.i686.rpm | 14 MB 04:43 (7/13): glibc-devel-2.12-3.i686.rpm | 960 kB 00:22 (8/13): glibc-headers-2.12-3.i686.rpm | 599 kB 00:15 (9/13): kernel-devel-2.6.33.3-85.fc13.i686.rpm | 6.3 MB 03:25 (10/13): kernel-headers-2.6.33.3-85.fc13.i686.rpm | 760 kB 00:24 (11/13): libgcc-4.4.4-10.fc13.i686.rpm | 103 kB 00:05 (12/13): libgomp-4.4.4-10.fc13.i686.rpm | 109 kB 00:04 (13/13): ppl-0.10.2-10.fc12.i686.rpm | 1.1 MB 00:26 ------------------------------------------------------------------------------------------------- Total 32 kB/s | 40 MB 21:10 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : kernel-devel-2.6.33.3-85.fc13.i686 1/17 Installing : kernel-headers-2.6.33.3-85.fc13.i686 2/17 Updating : libgcc-4.4.4-10.fc13.i686 3/17 Installing : dkms-2.1.0.1-1.fc12.noarch 4/17 Updating : glibc-2.12-3.i686 5/17 Updating : glibc-common-2.12-3.i686 6/17 Updating : libgomp-4.4.4-10.fc13.i686 7/17 Installing : ppl-0.10.2-10.fc12.i686 8/17 Installing : cloog-ppl-0.15.7-1.fc12.i686 9/17 Installing : cpp-4.4.4-10.fc13.i686 10/17 Installing : glibc-headers-2.12-3.i686 11/17 Installing : glibc-devel-2.12-3.i686 12/17 Installing : gcc-4.4.4-10.fc13.i686 13/17 Cleanup : libgomp-4.4.4-2.fc13.i686 14/17 Cleanup : glibc-common-2.12-1.i686 15/17 Cleanup : glibc-2.12-1.i686 16/17 Cleanup : libgcc-4.4.4-2.fc13.i686 17/17 Installed: dkms.noarch 0:2.1.0.1-1.fc12 gcc.i686 0:4.4.4-10.fc13 kernel-devel.i686 0:2.6.33.3-85.fc13 kernel-headers.i686 0:2.6.33.3-85.fc13 Dependency Installed: cloog-ppl.i686 0:0.15.7-1.fc12 cpp.i686 0:4.4.4-10.fc13 glibc-devel.i686 0:2.12-3 glibc-headers.i686 0:2.12-3 ppl.i686 0:0.10.2-10.fc12 Dependency Updated: glibc.i686 0:2.12-3 glibc-common.i686 0:2.12-3 libgcc.i686 0:4.4.4-10.fc13 libgomp.i686 0:4.4.4-10.fc13 Complete!
- In the VirtualBox Guest 'Devices Menu', select 'Install Guest Additions...'
-
mkdir /mnt/cdrom
-
mount /dev/sr0 /mnt/cdrom/
-
cd /mnt/cdrom/
-
./VBoxLinuxAdditions-x86.run
You may check the consumption status of the overlay by executing,dmsetup status
- reveals that 953440/2097152 (512-byte sectors) or 448 MB of the 1024 MB overlay file has been consumed by the installation process
- If upgrading from one VirtualBox version to another, start with fresh virtual disks and machines built with the new versions to avoid breakage.
-
reboot
<Terminal log:>[root@localhost ~]# mkdir /mnt/cdrom/ [root@localhost ~]# mount /dev/sr0 /mnt/cdrom/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# cd /mnt/cdrom/ [root@localhost cdrom]# ./VBoxLinuxAdditions-x86.run Verifying archive integrity... All good. Uncompressing VirtualBox 3.2.8 Guest Additions for Linux........ VirtualBox Guest Additions installer Building the VirtualBox Guest Additions kernel modules Building the main Guest Additions module [ OK ] Building the shared folder support module [ OK ] Building the OpenGL support module [ OK ] Doing non-kernel setup of the Guest Additions [ OK ] Starting the VirtualBox Guest Additions [ OK ] Installing the Window System drivers Installing X.Org Server 1.8 modules [ OK ] Setting up the Window System to use the Guest Additions [ OK ] You may need to restart the hal service and the Window System (or just restart the guest system) to enable the Guest Additions. Installing graphics libraries and desktop services componen[ OK ] [root@localhost cdrom]# dmsetup status live-osimg-min: 0 8388608 snapshot 2344/2344 24 live-rw: 0 8388608 snapshot 953440/2097152 3720
Configure Screen
If you want to match the 16 bpp XO screen and a particular display size, you may
- Edit /etc/X11/xorg.conf to match the following section:
- 832x624 - matches default XO display proportions
- 1200x900 - XO reflective resolution
# VirtualBox generated configuration file # based on /etc/X11/xorg.conf. Section "Monitor" Identifier "Monitor[0]" ModelName "VirtualBox Virtual Output" VendorName "Sun Microsystems Inc" EndSection Section "Device" BoardName "VirtualBox Graphics" Driver "vboxvideo" Identifier "Device[0]" VendorName "Sun Microsystems Inc" EndSection Section "Screen" Identifier "Screen[0]" Device "Device[0]" Monitor "Monitor[0]" DefaultDepth 16 SubSection "Display" Depth 16 Modes "832x624" "1200x900" "1024x768" "800x600" EndSubSection EndSection
Clear user data
Finally,
- Open Terminal
- Terminal
- rm -rf ~/.sugar (if distributing image)
- su -
- shutdown -h now
- Now you can share the VDI file.
Backup discs
It would be wise to maintain a clone of your virtual disk image to restart if the working copy is damaged:
- From host command line (Windows cmd, or Linux terminal) See VirtualBox Help section 8.14.
- VBoxManage clonehd <uuid>|<filename> <outputfile> [-format VDI|VMDK|VHD|RAW|<other>] [-remember]
- Reclone any virtual hard disks you would like to archive.
SSH connections
To enable SSH communications, we need to permit no passwords (to match the default Sugar configuration) in the ssh daemon configuration:
- in Terminal,
- su -
- vi /etc/ssh/sshd_config
- [add] PermitEmptyPasswords yes
- :wq <Enter>
- service sshd restart
One may also supply a password for the root user:
- su -
- passwd
- Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- Changing password for user root.
Uncompressed, hard disc image
- Start VirtualBox (version 3.2.10 used here).
- Click NEW "Welcome to New Virtual Machine Wizard"
- <Next> fill out: Name (soas-i386-20101025) ; Operating system(Linux); Version (Fedora)
- <Next> Base Memory Size
- <Next> Create new hard disk
- <Next> Storage Type (Dynamically expanding storage)
- <Next> Size (8.00 GB)
- <Finish>
- Back on main Oracle VM VirtualBox screen
- Settings/Storage (CD Image0)CD/DVD Device: (Select your CD Host Drive-(sr0) with CD inserted
- <OK>
- Start
- SoaS will boot and run Sugar SoaS
- Enter Name color
- Enter Password ONE TIME then cancel next 6 times
- Start Sugar-Terminal
su liveinst
- (Anaconda starts) Do normal HD install: Basic Storage Devices/ Reinitalize all/Host/TZ/Root Password/Use all Space/ Write Changes to Disk/ Install works to Completion.
- "Congratulations, your Fedora Installation is complete" <Close> Quit sugar-terminal; Shutdown.
- Back on main Oracle VM VirtualBox screen
Firstboot of new Virtual Machine
- Settings/Storage; Host Drive: change to empty (You can also change boot order in Systems, if needed.)
- Start HD goes to firstboot (Answer questions); then to gdm login, then to Sugar. Click to Change Color_____ (hit <Back> to change name)
Export your Appliance
- File/Export Appliance (select soas-i386-20101025)<next> fill in Settings if you want to; <next> Export settings <Finish>
Congratulations, you have just created an importable/exportable appliance.