Before You Spiral:
A Sane Guide to Organizing Lab Files and VMs

Here’s something nobody tells you when you start building a home lab: the technical part is almost never the problem. You can follow a tutorial perfectly, get pfSense running, spin up Kali, and get your network segmented. Then six weeks later you have twelve ISO files with names like kali-v2-new.iso, kali-v2-new-COPY.iso, and kali_THIS_ONE.iso – and you’re not sure why you downloaded multiple copies and you genuinely cannot tell which one is current.

Yep, I’ve been there. I’ve accidentally deleted snapshots I needed, lost VM configs I spent way too long on, and even worse, I’ve done it more than once (maybe twice). Let’s face it, sometimes learning a lesson doesn’t happen on the first go-round.

This isn’t a perfection post. It’s a survival post. Something in your lab will break – the only question is whether you’re ready when it does. A solid backup system means you’re never rebuilding from scratch.


Why This Matters More Than You Think

When you’re learning, your brain is already at capacity. You’re troubleshooting network configs, reading man pages, trying to remember what half the tools actually do. The last thing you need is having to excavate your own file system to figure out which version of a VM is the clean one.

Good organization within your lab is about reducing the number of decisions you have to make when you’re already frustrated. A clear structure means less cognitive overhead, faster recovery when things go sideways, and a lab you can return to after a week away and still understand.

As an added bonus, this is a portfolio-worthy lab you’re building here. A well-documented, logically organized lab environment demonstrates something real to an employer about how you work.


Start With Your Folder Structure

Before you download anything, before you spin up your first VM, set up a folder structure to fit your workflow and what you’re actually building. The point is to have a place for everything before things start piling up.

Spending ten minutes now will save you hours later. Here’s a starting point:

🙌 Already deep in the lab chaos? No judgment here. I built the mess first and figured out the system later too. Restructuring after the fact is absolutely doable, but it’s not as simple as just drag-and-drop. Moving your VMs to a new location means updating their paths in VMware so nothing breaks. It’s not the end of the world, just an additional step to be aware of beforehand. Pick a quiet afternoon, go in with a plan, and take snapshots before you start moving anything.

HomeLab/
├── ISOs/
│   ├── kali-linux-2024.2-amd64.iso
│   ├── ubuntu-22.04-server.iso
│   └── win-server-2022-eval.iso
│
├── VMs/
│   ├── kali-attacker/
│   ├── metasploitable2/
│   ├── win-server-ad/
│   └── pfsense-firewall/
│
├── Snapshots/    # if not managed in VMware
│
├── Configs/
│   ├── pfsense-backup.xml
│   ├── network-diagram.png
│   └── ip-address-map.md
│
├── Notes/
│   ├── setup-log.md
│   ├── troubleshooting.md
│   └── lab-goals.md
│
└── Scripts/
    ├── lab-start.sh
    └── cleanup.sh

💡 Keep your ISOs folder clean and version-specific. When you download a new version, move the old one to an archive subfolder or delete it if you’re tight on space. ISOs are like gremlins – not a big deal at the start, but don’t let them multiply.


Name Your Files for Future You

Speaking from experience: at 1am, three hours deep in a troubleshooting spiral, the last thing you want to be doing is playing the game of “which config file is the current one.” Future you will be grateful, so be kind to that person.

File Naming Rules That Will Save You

  • Use dates in YYYY-MM-DD format so files sort chronologically: pfsense-config-2024-11-03.xml
  • No spaces. Use hyphens or underscores. Spaces in filenames cause problems in the terminal and in scripts.
  • Be specific. kali-clean-baseline.vmdk tells you something. kali-new2.vmdk tells you nothing.
  • If you version things, be consistent: -v1, -v2 — not -new, -final, -FINAL2.
  • All lowercase where possible results in fewer surprises across operating systems.

💡 Naming example (a good one): kali-linux-2024.2-amd64.iso
You know exactly what this file is from the name alone – file type, the version, and the architecture. You don’t need to open it to find out. Goals!


VM Naming and Organization

Your VMs need the same treatment. When you have six machines running and you’re trying to figure out which one is your clean Windows Server vs. your compromised one from a lab exercise, you will be grateful you named them properly.

A Consistent VM Naming Pattern

  • [OS]-[role]-[state] for example: kali-attacker-clean, win-server-ad-prod, ubuntu-victim-compromised
  • If you’re running multiple instances of the same OS for different purposes, the role should differentiate them – not a number.
  • Add notes directly in VMware’s description field. Use it to write down what the VM is for, what’s installed, and any quirks.

Snapshots: Your Most Underused Safety Net

A snapshot is a saved state of your VM at a specific moment in time. If you break something (and you will break something) you can simply roll back to that snapshot instead of rebuilding the machine from scratch. Capturing snapshots along the way is critical – it’s basically load-bearing infrastructure for your sanity.

When to Take a Snapshot

  • After initial OS install, before you install anything else
  • After a clean, fully configured baseline (this is your golden image)
  • Before any major change: installing a tool, changing network settings, starting a lab exercise
  • After something works the way you want it to

How to Name Your Snapshots

The same rules apply: be specific, include a date, describe the state. Examples:

  • 2024-11-03: clean install, no tools
  • 2024-11-10: baseline with Kali tools installed
  • 2024-11-15: pre-lab metasploit exercise

⚠️ Don’t skip naming your snapshots. A snapshot named “Snapshot 1” three months from now tells you absolutely nothing. It’s unlikely you’ll remember the state of your VM from just two weeks ago – much less three months from now. Name your snapshots as if you won’t remember the state of the VM, because you won’t.

Also: snapshots are not backups. They live inside VMware alongside your VM. If your whole machine has a problem, snapshots go down with it. Export important VMs periodically as a separate backup.


Keep a Lab Log – Yes, an actual log

Oh, the conversations I’d have with my earlier self about this one.

Honest disclaimer: note-taking was initially very hard for me – not because I didn’t see the value, but the pursuit of perfection got in the way. If the app wasn’t right, if the formatting was off, if my handwriting wasn’t neat enough – the whole thing would stall. Notebooks have been left half-finished and apps have been abandoned because the system wasn’t perfect. Ironically, in those moments I perceived that an imperfect system felt worse than having no system at all. This all-or-nothing sabotage trap is both counter-productive and exhausting – a feeling that is hard to explain unless you’ve experienced it.

If that sounds familiar: screenshots and screen recordings may be a good starting point for you. Lower friction means you’re more likely to do it. Be sure to apply good naming conventions as you capture and save each screenshot – it will save tons of time later in recreating your steps and adding notes to your log.

The goal isn’t a perfect documentation system. It’s about building a habit, any habit, until capturing what you did becomes second nature. This is something people tend to skip because it feels like busywork – it’s not. A simple running log of what you did, what worked, and what broke is one of the most useful habits you can build.

It doesn’t need to be fancy. A markdown file in your Notes folder is fine. Something like:

## 2024-11-10

Installed Kali tools (metasploit, nmap, burpsuite).
Took snapshot: "baseline with Kali tools installed"

Had issues with VMware network adapter
  switched from NAT to bridged, fixed the connectivity problem.
Note: bridged mode requires the host machine to be on the network.

## 2024-11-15

Started Metasploitable2 lab.
Snapshot taken before starting: "pre-lab metasploit exercise"
Got a meterpreter session on port 1099: documented in metasploit-lab-notes.md

That’s it. Date, what you did, what you learned, any issues, and how you fixed them. When something breaks three weeks later and you can’t remember what you changed, this log will be the difference between a five-minute fix and an hour of confusion.

It’s also excellent material you can use for talking through your experience in interviews.


The Short Version

  • Set up your folder structure before you download anything
  • Name files specifically, with dates, no spaces
  • Name your VMs by OS, role, and state – not by number
  • Take snapshots before and after anything significant
  • Name your snapshots descriptively as you go – seriously, you won’t remember what they are
  • Keep a lab log – even a basic log is better than no log

None of this takes long to set up and all of it will save you time when something goes sideways. Start with the structure, build good habits as you go, and make adjustments as your lab grows. Your lab is worth protecting. A little structure up front goes a long way toward keeping it that way.


Share:

More Posts

Discussions

Subscribe
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments