Where I work, we have a strong policy about what should go on a PC. Although most people doesn't respect it fully (we have a schedule to respect, at the end), I try to comply by using non-intrusive programs like PortableApps. With the price of a 4G USB Key still dropping to below 60$, I was wondering what I can do with it.
So, last week, I just ended up some stores to buy CDRW and decided to also get an USB key, so I can be policy compliant. I first install my latest backup of my PortableApps configuration, which also included XAMPP and EmacsW32 and wondered if I can setup a nice DebianLive System for be more confortable when I need to debug some hardware. It would even be more nicer if I can setup an emulator for it like qemu for example (I currently would have prefer something like CoLinux but the qemu option allow me to run a stock kernel, either under Windows, Linux, Solaris or Mac, which is quite nice).
The experience I made happens to have some very interesting moment, and so I decided to talk about it here, in multiple setup. I will maybe one day make the full system online, for download, but I will need a way to either clean it up or build it nicely for a Windows or Unix system, which is not trivial.
But to start first, here my requirements for what should go on my policy-compliant-key:
-
Functionnality first: Size is not really important this day, unless you run a Microsoft Operating System. My home system take a little more than 2 Gb, if I doesn't count my home directory, and can easily work with less. I aim the system for a 4Gb USB key, but I would like it to not take much more than 1 Gb of size, so that I can stick it on smaller cheaper key. There is however no question to squeeze it on a normal CD, not even a business card CD.
-
Windows Readable: The primary use of this key will be on Windows system. Linux apps are far easier to make portable (most of them are portable by default) and I really want to use it for my job first. So, I want both the partitions and most of the data to be readable from Windows. However, Linux only have to run in either native mode or full virtualization mode, and that's what important.
-
No Encryption Base: My opinion on encryption is encrypt only the stuff you need to protect. This reduce the surface of attack and keep you on your toe when it's time to access sensible data. However, I will probably look for having some encrypted partition for such data one day, but certainly not the whole system.
-
Run PortableApps: PortableApps are very useful for my job. Although it limits the functionnality of some tools (like Firebird), I really love to be sure to leave no trace when I just remove the application. This is something very difficult to acheive on Windows and I'm quite happy with the good job that the guys there made.
-
Have EmacsW32: Emacs is my favorite environment for all kind of development whenever it get over a few file edition and simple shell command. It's especially invaluable when it came to complex file formats and build environment like XML applications and Nant scripting. It's extensibility and flexibility is also unsurpassed, and running it as a server make the question of the long startup time smooth (and it's still nothing compare to Visual Studio). However, EmacsW32 is not PortableApps compliant (it used some registry key and have HOME set to the user Documents and Settings directory), and I would really like to port it to this platform when I got more time.
-
Persistent DebianLive: The key can boot on a persistent Debian Live system. By persistent, I mean I can write, and update the system from the system itself easily, without having to rebuild it each time. If I can have a kind of snapshot going on, that's even better.
-
Can Install Debian: Debian is my distro of choice and having it able to install from a USB Key is always a good thing. A netinst is sufficient for this purpose. However, if I can install it as easily and safely from a Live instance, maybe I will safe some space by keeping just the later.
-
Can run Debian in Virtualization: Virtualization can be a time saver when time to come to debug stuff. Being able to run my linux distro either from a Windows or a Linux host can be both effective and provide a nice demo to show to linux unbelievers.