Linux 的 WSL 等效项

Linux 的 WSL 等效项

只需一个 wsl 命令即可将 Fedora 云映像导入到我的 Windows 10 中。

当我使用 Linux 作为基本操作系统时,这相当于什么? VirtualBox 更难。

答案1

现在我明白你并不是在寻找适用于 Windows 的 Linux 子系统,而是一种在 Linux 主机上运行多个 Linux 来宾的方法。有多种方法可以做到这一点,包括:虚拟机、容器、chroot

您已经表示您不喜欢虚拟机,而且我对容器了解不多,但以下是 chroot 的方法:

使用时,chroot您正在将根目录更改为主机系统上的另一个目录。那么你的你chroot /var/chroot/ubuntu/var/chroot/ubuntu/bin便将成为新的你/bin。这意味着当您运行 时/bin/bash,您正在运行 Ubuntu 版本的 bash。如果你运行,/usr/bin/apt install <package>你正在将 Ubuntu 的版本安装到该 chroot。

chroot您可以为大多数发行版设置一个。不同的发行版有不同的设置方式,因此您需要查阅您感兴趣的发行版的文档。对于基于 Debian 的发行版,我使用debootstrap如下方式安装系统:

debootstrap buster /var/chroot/buster http://ftp.debian.org/debian
debootstrap wheezy /var/chroot/wheezy http://archive.debian.org/debian
debootstrap hardy /var/chroot/hardy http://archive.ubuntu.com/ubuntu/
debootstrap kali-rolling /var/chroot/kali http://http.kali.org/kali

更完整的信息在这里:https://wiki.debian.org/chroot

答案2

对于 Linux 主机上的另一个选择,我推荐 Docker。一旦您安装Docker,您可以根据现有的“映像”快速启动新的“容器”,类似于您在 Windows 上使用 WSL所做的wsl --import事情。wsl -d <DistroName>

Docker 实际上远远超出了操作系统映像的范围,因为您可以轻松下载和运行许多不同的应用程序/服务器/编程语言。

例如:

docker pull opensuse/leap # pulls the latest image from the online Docker repository.
# ^^^ Not strictly necessary since the next command will load it from the repo if it isn't found locally
docker run -td --name opensuse opensuse/leap # Starts a container from the image running in daemon mode with a terminal
docker exec -it opensuse bash # Executes bash inside the running container with an interactive terminal

# Exit bash the image (CTRL+D)

# Cleanup
docker stop opensuse # Stops the container
docker rm opensuse # Removes the container
docker rmi opensuse/leap # Removes the image

您需要充分了解的一件事是这些容器本身总是短暂的。对容器或其中创建的文件所做的任何更改会迷路当容器停止时。要保留配置,您可以创建Dockerfiles.要保留文件,您可以在启动容器时安装外部卷(可以是主机上的目录)。

确定特定用例所需的 Docker 选项肯定有一些学习曲线,但是一旦掌握了基础知识(例如上面的命令),就可以轻松尝试不同的映像。

额外好处 - 您可以将 Docker 安装到 WSL2 实例中并享受这些好处。你会发现一个很多甚至是在 WSL 下无法加载的 Docker 镜像。

相关内容