You all meet in a tavern...
I'm a sucker for Tabletop Role-Playing Games (TTRPGs). Ever since dipping my feet in, I've been enchanted by the different settings, characters, magic, and tools that you can create in your story. Particularly I've been deep into the setting of Pathfinder, which is a spiritual successor to Dungeons and Dragons 3.5 Edition.
While we obviously don't live in such magical as Golarion, we can still take some inspiration from some of their more interesting tools like the "Traveler's Any-Tool":
This implement at first seems to be nothing but a 12-inch iron bar lined with small plates and spikes. It can be folded, twisted, hinged, and bent, to form almost any known tool. Hammers, shovels, even a block and tackle (without rope) are possible. It can duplicate any tool the wielder can clearly visualize that contains only limited moving parts, such as a pair of scissors, but not a handloom. It cannot be used to replace missing or broken parts of machines or vehicles unless a mundane tool would have done the job just as well.
Obviously, having such a tool in your bag gives you a wide degree of flexibility without having the need to carry around a large amount of equipment. A traveler's dream.
But how can we, as IT professionals, imitate this in our toolkits? In my case, we're going to build a flash drive that contains pretty much any piece of software that you might need for work in the field.
Your journey begins...
Getting started with a project like this, we want to make sure to have a plan before jumping into action. My goals for building this tool included:
- Convenience: I want a small drive that will fit on my keychain, so I don't have to think about carrying it with me; I'll just always have it.
- Space: Since we need a ton of tools on us at the same time, we need to have enough space to carry everything on. Thankfully, flash storage these days is always getting smaller and more accessible.
- Compatibility: Many devices these days aren't coming with the older standard USB-A connectors, however they're still quite prevalent out in the wild. The newer USB-C is taking over on devices these days, so to make sure we can plug in to older devices and new, we're going to need to interface with both options.
- Speed: We're going to be loading software on this drive to install operating systems and run live systems, so we want to get a speedy drive so we don't have to wait too long for large software to boot.
- Price: And, because I'm cheap, we need to find these at a price that makes sense.
Thankfully, it wasn't too hard to find something that fits the bill. I settled on a SanDisk 512GB Ultra Dual Drive Luxe. I figured that if I use half the drive for chunky 8GB ISO images for operating systems, I can get 32 images onto a single boot partition and then have the other 200ish GB available for any other tools that I might want to use.
The Brains
Before we get started on this, we'll want to make a couple small considerations before starting to install any kind of software on the drive. Namely, we have to think about partitioning.
Because we need to have this drive work on a wide range of operating systems, we'll need to make sure that the drive uses a file system that is widely compatible. FAT32 is the easiest to ensure compatibility, however it does have the distinct weakness of being unable to store files larger than 4GB. Many ISO images jump past this limit pretty quickly, so we won't be able to use FAT32 exclusively. In my implementation I'm going to be keeping a single FAT32 partition just in case I run into the odd system that can't use our other choice system...
exFAT is the next-generation equivalent of FAT32, which helps with dealing with the weaknesses of FAT32. Our maximum single file size increases to a massive 16EB (or 16,000,000,000GB), which is much larger than any modern use needs. It's also compatible with modern Windows, macOS, and Linux systems, so we're in good shape there. Many proprietary and embedded systems can't touch exFAT though, so we can't 100% rely on it.
Since we have a 512GB flash drive, I've split it up into 3 partitions:
- I used a 32GB FAT32 partition for our compatibility space. I chose 32GB a bit arbitrarily honestly; from what I remember that ended up being the limit of space that Microsoft let you allocate for a FAT32 partition before forcing you to use NTFS. I'm not sure if there's a specific limit for that otherwise, but I felt it was as good a reason as any.
- For the next partition, I set aside 256GB of exFAT space for the heavy hitting ISOs that we might need. This will become our primary boot partition. With that, we should have plenty of space to hold almost any tools we could think of.
- I then made the last partition for the remaining 200GB-ish space formatted as exFAT as well. This one is going to be set up for general file storage, along with portable applications that don''t need to be installed for use.
With this plan in mind, we should what we need to get started with implementation.
The Utility
Easy2Boot is the big player in our software tool kit. This gives us a multiboot environment that most people familiar with GRUB will feel mostly at home with. It gets even easier with being able to drop ISOs into labeled directories and being able to boot from them by selecting them from a menu. We can boot Linux systems from this easily, along with Windows installation ISOs. A quick rundown of some of the better toolkit ISOs that I've chosen:
- Fedora Workstation: My Linux distribution of choice. Having a copy of Fedora always on hand means that I can run a good live system (or installation) whenever the need arises.
- Kali Linux: The penetration tester's toolkit. Kali Linux is a live Linux distribution meant to test the limits of a network that you're attached to. All from ethical standpoints, of course. Never run Kali Linux or its tools on a network that you do not have the authorization to do so on.
- AntiX: AntiX is one of the most compatible Linux distributions out there, even supporting processers as old as the Pentium 3 line. Having it handy definitely doesn't hurt.
- DBAN (Darik's Boot and Nuke): DBAN is one of the most widely used hard drive erasing tools. Simply boot the ISO image from the drive, point it at whatever hard drive you want to wipe out, and in a few minutes you'll have a drive that's wiped so clean that government agencies will even have a hard time recovering data from. If you're like me and work in an industry where data privacy is an important consideration, then DBAN is a tool you'll be glad to have.
- RescueZilla: Hard drive partitioning and cloning. Useful for when you need to make backups of drives that you have internally in a system and don't want to pull them out to put them into a dock.
- Windows 11: Working in IT, you'll probably be working in an environment where Windows is the standard OS of choice. To that end, you'll want to be able to reinstall Windows at almost any time.
- Windows 10: Related to the above, you'll also want to keep Windows 10 on hand since Windows 11 is a bit restrictive on some hardware that isn't even all that aged. Mostly with the requirement of running a processor 8th Generation Intel or roughly equivalent. Hell, I'm writing this post on an i7-5820K that's still running like a champ.
Of course, sometimes you'll need to work on a system that's also already running. You don't necessarily want to have to install applications each time you're on a new system either, so I take heavy advantage of programs found in the PortableApps project. I'll be marking them with a [PA] down below.
- [PA] - Notepad++: Arguably one of the best text editors for Windows. It'll support pretty much any programming language you might think of, along with any kind of format of plaintext files out there.
- [PA] - GIMP: The GNU Image Manipulation Tool. You never know when you'll need to make some edits to photos out there, and the GIMP will get you most of the edits that you might need in a pinch.
- [PA] - FileZilla: FTP client. Being that I have a web presence, I sometimes have a need to make uploads to FTP servers out there. FileZilla just ends up being one of the best options for doing it, and having it in a portable format is just icing on the cake.
- [PA] - PuTTY: PuTTY is one of the widest known SSH and Telnet clients on Windows. It's small and gets the job done, which is oftentimes all you need when connecting to a server or other network equipment that you need to remotely manage.
- [PA] - Transmission: Open source BitTorrent client. Make sure that you're using this for legal purposes and on networks that don't mind you using P2P services. Assuming that you're doing that all, then you'll not find a better tool to quickly grab all those Linux ISOs listed above.
- [PA] - VLC Media Player: I've yet to find a media file format that I've thrown at it that VLC hasn't been able to handle. It being lightweight, yet powerful, makes VLC my media player of choice.
- [PA] - LibreOffice: Probably the most overkill option on this list, especially when online equivalents like Google Docs/Sheets/etc and Office 365 exist, but having a fully featured office suite available is always nice to have.
- [PA] - Evince: No-frills, FOSS PDF viewer software. Not much more to be said about it.
- [PA] - Eraser: Secure file deletion on the go. If you're needing to able to keep data private ehile you're working on a system, this is a good way to make sure you don't leave a trace of potentially sensitive data behind.
- [PA] - 7-Zip: For all the same reasons I like VLC for supporting every media file under the sun, I also like 7-Zip for supporting every archive format.
- [PA] - WinDirStat: One of the easiest ways to help visualize your drive space and find out what's clogging up your disk.
- PatchMyPC: PatchMyPC is a nice little tool that allows you to install from a wide list of programs that are free and commonly installed on Windows machines. It also has the ability to update already installed apps, with just a click or two. Getting your system up-to-date hasn't been this easy in a while. Bonus: If you want something a bit lighter-weight and have a very specific list of apps that you want to keep updated or installed, you can look at Ninite. It's a handy tool for imaging since you can make a list of all the applications you want just once, and then run to immediately get everything updated and installed.
There's plenty of other tools out there that I'm sure that I've missed or neglected to mention that you might find useful; your use case will be different than mine. With these, however, I'm sure you can find a good foundation for many of the common (and some of the uncommon) tasks that you might have to do within IT.