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?"
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.
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 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.
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.
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.
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
Let's be serious about this here: download Portable Virtualbox, install it on a thumb drive, install whatever distro makes sense for the class (given A+, probably CentOS, Fedora, Debian, or Ubuntu) on the drive's VBox, and dd is your friend. Finished. Anyone who hoses the VM can get a fresh load.
Put identity in the browser.