Header Navigation

Friday, May 13, 2016

Tinycore linux in Unetlab

I think I have to add some server for hosting test in my unetlab testing ecosystem.  So I try Tiny Core Linux.
Tiny Core Linux (TCL) is a minimal Linux operating system focusing on providing a base system using BusyBox and FLTK, developed by Robert Shingledecker.The distribution is notable for its size (11 to 16 MB) and minimalism, with additional functionality provided by extensions. Tiny Core Linux is free and open source software and is licensed under the GNU General Public License version 2. - Wikipedia


In Unetlab, Linux OS just have an option to deploy in live cd nowadays. So I try a little enhancement to deploy tinycore in virtual hardware. From unetlab a virtual hardware just proposed for windows OS. So after learn from many references, I try to make trick how to build  linux qemu and identify in Unetlab, as Windows qemu


Overview
The Core Project is a highly modular based system with community build extensions.
It starts with a recent Linux kernel, vmlinuz, and our root filesystem and start-up scripts packaged with a basic set of kernel modules in core.gz. Core (11MB) is simply the kernel + core.gz - this is the foundation for user created desktops, servers, or appliances. TinyCore is Core + Xvesa.tcz + Xprogs.tcz + aterm.tcz + fltk-1.3.tcz + flwm.tcz + wbar.tcz
TinyCore becomes simply an example of what the Core Project can produce, an 16MB FLTK/FLWM desktop.
CorePlus ofers a simple way to get started using the Core philosophy with its included community packaged extensions enabling easy embedded frugal or pendrive installation of the user's choice of supported desktop, while maintaining the Core principal of mounted extensions with full package management.
It is not a complete desktop nor is all hardware completely supported. It represents only the core needed to boot into a very minimal X desktop typically with wired internet access.
The user has complete control over which applications and/or additional hardware to have supported, be it for a desktop, a netbook, an appliance, or server, selectable by the user by installing additional applications from online repositories, or easily compiling most anything you desire using tools provided. source : tinycorelinux.net

The latest version is 7.0. But I try to build the 5.2 in here. To know how to build in your Virtualbox, you may refer to this link : https://github.com/achyarnuandi/Micro-Core/wiki

Installation Flow


How to Deploy

  1. Upload to unetlab server
  2. Tar the ova file
    do command:
    tar xf ../tmp/TinyCore-1.0.ova 
    verify:
    root@achyarnurandidotnet:/tmp# ls -la
    
    total 18040
    drwxr-xr-x  2 root root    4096 Apr 28 16:28 .
    drwxr-xr-x 24 root root    4096 Apr 27 19:03 ..
    -rw-r--r--  1 root root 9229824 Apr 28 16:12 TinyCore-1.0.ova
    -rw-------  1 root root 9214976 Apr 28 16:12 TinyCore-disk1.vmdk
    -rw-------  1 root root   13355 Apr 28 16:12 TinyCore.ovf
    root@achyarnurandidotnet:/tmp#
    

  3. Convert vmdk file to qcow2 file
    do command:
    /opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 TinyCore-disk1.vmdk hda.qcow2 
    verify:
    root@achyarnurandidotnet:/tmp# ls -la
    
    total 28412
    drwxr-xr-x  2 root root     4096 Apr 28 16:31 .
    drwxr-xr-x 24 root root     4096 Apr 27 19:03 ..
    -rw-r--r--  1 root root 10682368 Apr 28 16:31 hda.qcow2
    -rw-r--r--  1 root root  9229824 Apr 28 16:12 TinyCore-1.0.ova
    -rw-------  1 root root  9214976 Apr 28 16:12 TinyCore-disk1.vmdk
    -rw-------  1 root root    13355 Apr 28 16:12 TinyCore.ovf
    root@achyarnurandidotnet:/tmp# 
  4. This part is tricky, because unetlab just proposed for windows host and linux live cd (not linux host), maybe soon for linux host. It's the trick, I create file with word Win-7-xyz, where the xyz refer to my linux host (in this case I try tinycore)
    do command:
    mkdir /opt/unetlab/addons/qemu/win-7-Tinycore-1
    verify:
    root@achyarnurandidotnet:/tmp# ls /opt/unetlab/addons/qemu/ -l
    
    total 16
    drwxr-xr-x 2 root root 4096 Apr 27 09:34 timos-12.0.R6
    drwxr-xr-x 2 root root 4096 Apr 27 09:36 vmx-14.1.R1
    drwxr-xr-x 2 root root 4096 Apr 28 16:38 win-7-Tinycore-1
    drwxr-xr-x 2 root root 4096 Apr 27 09:37 xrv-k9-5.2.2
    root@achyarnurandidotnet:/tmp#
  5. Move the hda.qcow2 file to folder  /opt/unetlab/addons/qemu/win-7-Tinycore-1
    do command:
    mv hda.qcow2 /opt/unetlab/addons/qemu/win-7-Tinycore-1
    verify:
    root@achyarnurandidotnet:/tmp# ls /opt/unetlab/addons/qemu/win-7-Tinycore-1/ -l
    
    total 10372
    -rw-r--r-- 1 root root 10682368 Apr 28 16:31 hda.qcow2
    root@achyarnurandidotnet:/tmp#
  6. Clean then fix permissions
    do command:
    rm -rf tmp
    /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
    

  7. Try to build lab for testing. In your unetlab web UI
    a. click add newobject, then click node


    b. Choice windows template, then choice image win-7-tinycore-1
  8. Try to running node,
    click more action, then click start all nodes
  9. Double Click the node, the VNC player will appear like below
So Finally, You can use tinycore for testing propose as a server. I do same with centos. so I can make unify LAB for several use case :)

1 comment:

  1. Insightful tutorial. I tried using a linux-tinycore-7.1 folder for my own install and it works fine. No need for win- template anymore

    ReplyDelete