Good, Portable "Virtual" Linux Distro?
Prof. Nix writes "I have been given the opportunity to redesign the Linux course for the community college I work for. This course will be taking students from the 'What's Lee-nux?' stage to (hopefully) Linux+ Certifiable in about three to four months. However, one issue I haven't solved is finding a semi-stable, highly portable, and readily accessible platform the students may pound on, and have root access, independently of their peers. The powers-that-be have already vetoed any sort of server environment accessible from off campus. We've already tried live USB drives, but we ran into many issues with non-supported hardware on students' home computers. So I'm left with the idea of virtual machines run from flash drives. My ultimate goal is to have some sort of portable system that students can use with equal ease on lab systems and personal laptops — regardless of hardware. Preferably this system would be installable on a 4GB flash drive and run an Ubuntu- or Fedora-derived OS. So I ask the people who have been in the trenches a lot longer than I — what distros should I look at?"
You can fully "undress" it, down to the bare basics, and it is incredibly stable. You'll definitely run it from a 4 Gb USB stick - and your students, most importantly, will LEARN from it.
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
Can't you put the virtual disk image for as a regular file on a USB stick, then load it into Virtual Box from there? That way, no purchase necessary with regards to software to run the VM, and you can issue a standardized appliance image to start with. Of course, you need to make sure that everyone has a thumb drive of sufficient size.
Is this what you're looking for? http://portableubuntu.demonccc.com.ar/en/download
You could think about running 'Ubuntu on Ubuntu' - as both the main desktop OS, and another copy in a VM running VirtualBox. Anything they're trying for the first time, or that has the possibility to go wrong, they can do on the VM and snapshot + remove it as required. Once they are more capable, maybe they can start to perform tasks on the Desktop copy. If anything goes wrong and the workstation needs to be re-imaged, there's a chance the VM could be be backed up (so the work is not lost) and it's also portable, so it can be used at home.
Look at Virtualbox: http://www.virtualbox.org/ and there are portable (current) versions out there. On there, you can install Ubuntu, Fedora, what-have-you.
Easy customisation to your needs, has few virtual machines as targets.
http://susestudio.com/
http://en.wikipedia.org/wiki/SUSE_Studio
One that hath name thou can not otter
I run an instance of XP (Ubuntu host) from an SD card no problem. It shouldn't matter what OS the image is, it should run fine.
I teach at the community college myself, and find that installing the OS is a really important part of learning to use it (creating partitions, mount points, swap, etc...) and is one of the first part that makes it very different from most Windows installation processes. Doing the install on a USB stick could result in students killing the Windows partition on the disk if they botch the install and accidentally put it on the hard disk. (I've had it happen).
Using a VM host on the lab computers (either MS Virtual PC or VMWare; assuming that your lab PCs are Windows) and then allowing them to create the virtual disk on their 4GB (or larger) flash disks will give them the install experience (without risk of damaging the host system), and allow their install to be fairly hardware independent (assuming they have the same VM host on their home PC.)
This also allows them to use a normal, general purpose distro than a stick-oriented one, that is also likely to have better textbooks available. I know any text should be good enough for derived distributions, but for students having an out-of-the-box or off-the-iso experience can alleviate a lot of first-week frustrations, and gives them a better (vanilla) resource to consult when bad things happen.
Forgive my spelling from time to time. I'm often posting during short breaks.
Unless I totally misunderstood your post, Fedora Core *is* a free distro.... If I totally misunderstood your post, it's *still* a free distro, but then that information is irrelevant.
You can mod your friends, you can mod your nose, but you can't mod your friend's nose.
DSL works well. It's 50 MB, can boot off a USB flash stick, and comes with its own virtual environment for running within MS Windows. It's probably missing a few features you will want for teaching a course in Linux, though.
I also like Puppy Linux. I was able to make an MP3 player out of a small thin client computer and this OS. I just had to modify a few shell scripts, and plug the TC into my home stereo.
Look at vmware's site, they have a link to a second site they run which has nothing but
"virtual appliances" which are pre configures VMs ready to run for various purposes.
Included therein are VMs of popular LINUX / UNIX OSs. Most of those are of course free, though
they also have various commercial VMed applications of various sorts too. Generally the VM images
lag a few months behind the very latest releases since they're made by 3rd parties and aren't generally part of the official distribution release.
Also look at SUSE Studio, the susestudio.com (IIRC) web site has a way to make a "custom" OpenSusE
distribution using their online toolkit for customizing what you want in it. You probably can make
some kind of easily virtualized ready to run system image with whatever you want in it in the 2GB
or 1GB or 700MBy CD image or 4.7GBy DVD image size ranges.
I believe that some distributions have a XEN enabled paravirtualized DomU image which you can use as a standard installation option, though you might have to repackage that in the form of something that includes the hypervisor itself. Look at the Xen Live CD, that has the hypervisor and some kind of UNIX OS as well if I recall correctly. xensource.org / xen.org IIRC.
LinuxMint is a LiveCD based on Ubuntu that is pretty portable across lots of machines, though not obviously all possible hardware, but it may be worth a look.
The problem with a virtualized system is that the hypervisor itself may not be portable to all machines either depending on the kinds of peripherals and chipsets / CPUs the hypervisor supports. Most Hardware Virtual Machines require basic VM extensions being enabled in the CPU to work, though some virtual machine platforms don't require it when you're running a 32 bit guest OS. IIRC
you can run XEN, Virtualbox, Virtual PC VM software with 32 bit guest OSs without needing VM CPU extensions, though of course there are still only certain physical hardware types they support.
XEN based VM hypervisors with a paravirtualized LINUX guest is probably best in a slight way for performance since the guest OS itself is compiled to be very efficiently virtualized even without HVM CPU extensions, though I can say that even without HVM extensions and a paravirtualized guest OS still some VM systems do a pretty goog job virtualizing a guest in real time.
The last resort would be you could run a VM on a server running XEN or KVM or VirtualBox and give the students RDP or VNC remote desktop access to the VM's root, so they can be root and do whatever they want on their particular image, but not cause a security or functionality problem for the server or other VMs. Benefits of snapshotting / backup / deployment / resetting to a known good state apply. You could even provice some EC2 or other cloud hosted VM instances for people to play with at fairly low cost and fairly high performance if you need to scale up beyond the few dozen PV DomU VMs your local lab PCs could probably easily accommodate. Maybe Amazon or whatever has a academic pricing rate for their hosting, or someone else might.
http://susestudio.com/ allows you to make your own. This can then be done as USB stick, CD/DVD, VMware and what not. You can decide if you want it to be installable or not, add your own specific software and almost anything else you like.
How far you go to make things special is up to you.
However, you will always have non-supported hardware. Happens with any OS, except for the one that was pre-installed and then hope people have not added hardware.
Don't fight for your country, if your country does not fight for you.
What's /dev/sda1comes?
:)
I kid, I kid.
In all seriousness, however, what version of Linux would that *not* apply to? If you have root access, by definition, you have the ability to hose your system. Personally, I have found Knoppix to be a great Linux distro that does not require you to install it to use it. The Ubuntu LiveCD is pretty good, also. Then, of course, there is DSL and several others (although I have never personally used DSL).
And does it need to be a one-size-fits-all solution? I have a desktop at work from which I cannot access USB thumb drives because the mobo chipset is flawed. I also have a personal laptop that has a failed CD-ROM drive, but that has working USB ports. If you choose either of those media, I have a computer that it won't work with. However, if you provide Linux on a USB stick for those who can use USB sticks and Linux on a CD for those who can use a LiveCD, you'll have *something* that works for everyone. For the one guy at the university who can only boot from a floppy...well, he will just have to buy a new computer
MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
"420" has a meaning that you seem to be missing...
It is pitch black. You are likely to be eaten by a grue.
I'm a strong believer in immersion as the best way to instruct people how to do things.
Probably the best way to go about it would be a VM disk image file sitting on the flash drive itself. Dealing with the actual flash drive might be problematic due to compatibility.
For the virtualization, I'd probably just go with the Open Source version of Virtualbox. It can be run as a server for the lab (if need be - though not advised),
The biggest problems with going with USB flash drives are speed and compatibility, in that order. Flash drives are still very, very slow compared to a hard disk: it will jade their opinion of the operating system due to very sluggish writes (particularly due to the virtual disk allocation on top of the flash). There are also a number of limitations with the flash drive standardization themselves, as many are utter crap. Best to verify the make/model of flash drive you pick works. (Caveat: note that vendors -very frequently- change the underlying chips in the flash drives within a single model. Expect to have to buy them in lots.)
Honestly, given the cost of external hard disks, the lack of flash drive consistency, and your stated apparent requirements of them being able to use their own systems as well as the school lab, you might want to make a USB hard disk a class requirement instead of a flash drive.
But: why stop there? Honestly. When I was in school, we had a lab. I had a laptop. I brought my laptop and did almost everything on my laptop in the lab - and this was way before virtualization became commonplace (VMWare existed, but just barely). There were very few classes where I needed to have anything other than what was on the laptop - Debian Linux. Students could come and use the labs at any time (though most did not, as they had their own computers which were better).
Seriously. This is 2010, not 1998. Assuming you're not offering this as an entry-level course (you shouldn't) and you'll have at least 2nd-semester CS students taking it, there's no reason to coddle them. Just set up a CentOS or Debian system and allow students to connect to it from the campus.
On top of that, encourage them to install Linux themselves and configure it from scratch. It'll be good for them. Make obscene recommendations, like Gentoo or (god forbid) Slackware. A certification isn't going to mean jack shit in the long run (except for maybe taking a job from someone more qualified who doesn't have the cert) if they're not intimately familiar with the material.
This, like the virtualization question the other day, is yet another instance of "virtualization is cool so I want to apply it". It's not appropriate for every scenario (and I'd argue this is one of them, due to the added complexity and potential for outside cases).
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
I would definitely recommend that you use Virtualbox (as many other have recommended) as it is a fully featured desktop virtualization environment and is free as opposed to vmware workstation which offers similar features. This would also allow the more adventurous of your students to create their own virtual machines and try out different distributions. To me, part of learning linux lies in learning the differences and quirks of each of the popular distributions. Obviously learning how to use bash and use the core linux kernel is going to be the most important, but learning the difference between apt and yum, etc. are also important. As for the best distribution to use for such a class, I would have to go with ubuntu as it is definitely the most popular growing linux distribution available, this would also allow for a massive amount of information and documentation online in order for students to do their own troubleshooting, etc.
Grab a copy of Geexbox if all you want is a linux media player. Boot it, remove it, and it plays almost everything you can throw at it. It may be a DMCA violation in your local as it does play DVD's without the DVD consortium's blessing or license. The only downside is it is keyboard navigation. The mouse is a paperweight in the program.
http://geexbox.org/en/index.html
The truth shall set you free!
Here's a link to the "lernstick" - this is what is actively being used in schools here (Switzerland) with an English description at: http://www.imedias.ch/lernstick/lernstick_en and downloadable at: http://www.imedias.ch/dateien/lernstick-testversion/
It's based on Debian and meant to be used in schools and at home; There even is a boot-cd for those olden machines that cannot boot off USB.
Additionally they have a stripped down version (lernstick pruefungsumgebung) designed to be used for exams (No Internet).
[[ iMedias is not a company but the name of an institute of the "Fachhochschule Nordwestschweiz". The institutes charter is to support schools in using IT for educational purposes. I'm not affiliated with them, but happen to now some people there;-) ]]
according to Bill Gates you need 640k maximum ..
I know I can install Linux on almost any PC hardware made after 2001 with at least 256 megs of ram
So how do you actually get things done with Linux on a computer with an unsupported video card and an unsupported network card?
Studio is a great place to start. Dead simple to manage, and easy to churn out revisions. You can even include the Suse virtualization stack, which provides most of the functionality of Xen's 'official' server release. Put OpenXencenter http://www.openxencenter.com/ in the live release, and you're set.
If hardware support is an issue, have them generate a support email with a basic hardware profile. Add appropriate packages to the Live DVD, and repeat.
Caveat: It's invite only, and it make take some time to get one through the site.
In any case, virtualization is a great way to go, especially if you're arming these students with life skills. The physical disk (heads, cylinders, sectors, tracks) is all but abstracted, as is the concept of IRQ, bus mastering, and most of the day-to-day of ten to fifteen years ago.
A focus on mass implementations and the real-world fallout from those applications is something I would like to see in a class. Forget about baby steps, let's get this whole awesome thing in motion and leap some real hurdles - SAN concepts, multi-homing, foundations of capacity concerns, network-scale monitoring, and configuration management should shed enough practical exposure to the real aspects of implementation (shell access, users/files, networking, filesystems, hardware, etc.) as to keep it relevant and entertaining.
Good luck.