Skip to content

Add WSL2 setup tutorial [Docs]#661

Open
abhaygoudannavar wants to merge 1 commit into
urunc-dev:mainfrom
abhaygoudannavar:docs/wsl2-tutorial
Open

Add WSL2 setup tutorial [Docs]#661
abhaygoudannavar wants to merge 1 commit into
urunc-dev:mainfrom
abhaygoudannavar:docs/wsl2-tutorial

Conversation

@abhaygoudannavar

Copy link
Copy Markdown
Contributor

Add a tutorial describing how to set up and run urunc on WSL2, covering KVM verification, snapshotter configuration (overlayfs vs devmapper), and nerdctl usage.

Refs: #643

Description

Add a new tutorial (docs/tutorials/Running-urunc-on-wsl2.md) that guides Windows/WSL2 users through running urunc on their environment. The tutorial covers:

  • Verifying KVM availability and enabling nested virtualization
  • Why nerdctl is recommended over Docker Desktop on WSL2
  • Using the overlayfs snapshotter since WSL2 lacks the dm_thin_pool kernel module
  • Running a sample unikernel container end-to-end

The tutorial links back to the main installation guide for standard steps to avoid documentation drift, as discussed in #643.

Also updates docs/tutorials/index.md to list the new tutorial.

Related issues

How was this tested?

Verified the tutorial steps manually on a WSL2 (Ubuntu) instance running on Windows 11 with KVM enabled. Confirmed that the markdown renders correctly and all links resolve properly.

LLM usage

no LLM usage.

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

@netlify

netlify Bot commented May 12, 2026

Copy link
Copy Markdown

Deploy Preview for urunc ready!

Name Link
🔨 Latest commit 72ee084
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/6a2c1db4f45a3f0009b5485f
😎 Deploy Preview https://deploy-preview-661--urunc.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@abhaygoudannavar

Copy link
Copy Markdown
Contributor Author

@cmainas referd 1c9c720 ,any changes needed?

@cmainas cmainas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @abhaygoudannavar ,

thank you for the PR. The tutorial looks good. I have left some comments.

Comment thread docs/tutorials/Running-urunc-on-wsl2.md Outdated

### Verify KVM support

`urunc` requires KVM for hardware-accelerated virtualization. On WSL2,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should change this to: "Some of urunc supported monitors require KVM" or something similar.

Comment thread docs/tutorials/Running-urunc-on-wsl2.md Outdated
lsmod | grep dm_thin
```

If the output is empty, you must use the `overlayfs` snapshotter

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the blockfile snapshotter should work as well.

Comment thread docs/tutorials/Running-urunc-on-wsl2.md Outdated

## Using `nerdctl` instead of Docker

On WSL2, **Docker Desktop** manages its own containerd instance, which

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of docker desktop, an installation of docker inside ubuntu should work fine.

Comment thread docs/tutorials/Running-urunc-on-wsl2.md Outdated
Install `nerdctl` and the required CNI plugins by following the official
[nerdctl documentation](https://github.com/containerd/nerdctl#install).

Make sure the CNI plugins (`bridge`, `portmap`, etc.) are installed

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not have to be that pedantic with the checks.

Comment thread docs/tutorials/Running-urunc-on-wsl2.md Outdated
# Running `urunc` on WSL2

In this tutorial, we describe how to set up and run `urunc` on
**Windows Subsystem for Linux 2 (WSL2)** using **QEMU** as the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not see any reason for other monitors not to work.

@abhaygoudannavar

Copy link
Copy Markdown
Contributor Author

@cmainas i have made some changes.

@abhaygoudannavar abhaygoudannavar requested a review from cmainas June 3, 2026 05:48
@cmainas

cmainas commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Thank you @abhaygoudannavar for the changes. Have you verified that blockfile works as expected?

@abhaygoudannavar

Copy link
Copy Markdown
Contributor Author

@cmainas I tested the blockfile snapshotter on WSL2. As shown in the screenshot, containerd skips loading the blockfile plugin (skip status), and running a container with --snapshotter blockfile fails with snapshotter not loaded: blockfile: invalid argument.
Screenshot 2026-06-12 200714

i have updated the tutorial to only recommend overlayfs as the alternative snapshotter and remove the blockfile reference.

Add a tutorial describing how to set up and run urunc on WSL2,
covering KVM verification, snapshotter configuration (overlayfs),
and nerdctl/Docker usage.

The blockfile snapshotter was tested and confirmed not to work on
WSL2 (containerd skips it with 'no scratch file generator' error),
so only overlayfs is recommended.

Refs: urunc-dev#643
Signed-off-by: Abhay Goudannavar <abhaysgoudnvr@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add WSL2 setup guide — urunc works on WSL2 but is completely undocumented [Docs]

2 participants