目录 - [VMware](虚拟机.md#vmware) - [Winboat-安装最简单的win虚拟机](虚拟机.md#winboat) - [VirtualBox](虚拟机.md#virtualbox) - [Distrobox](虚拟机.md#distrobox) --- ## VMware 1. 安装缺少的依赖 ```bash yay -S vmware-keymaps ``` 2. 安装本体 ```bash yay -S vmware-workstation ``` 3. 开启服务 ```bash sudo systemctl enable --now vmware-networks.service sudo systemctl enable --now vmware-usbarbitrator.service ``` 4. 重启电脑 ### 卸载 VMware ```bash sudo systemctl disable --now vmware-networks.service sudo systemctl disable --now vmware-usbarbitrator.service yay -Rns vmware-workstation vmware-keymaps ``` ## Docker 1. 安装 ```bash sudo pacman -S docker docker-compose ``` 2. 开启服务 ```bash sudo systemctl enable --now docker.service ``` 3. 添加用户组 ```bash sudo usermod -aG docker $USER ``` 4. 重启电脑 ### winboat > [winboat](https://github.com/TibixDev/winboat) 以 Docker 容器为基础的 Windows 虚拟机,RDP(远程桌面协议)连接,自动化配置 winapps,可以与 Linux 无缝集成,但 beta 版无缝集成的效果不是很好。只是用 Windows 虚拟机做轻量的活的话可以用这个,安装很简单,缺点是资源占用比 KVM/QEMU 虚拟机要高一些。 0. 安装并启用 Docker 1. 安装 ```bash yay -S --needed freerdp winboat-bin ``` 2. 开启 iptables 功能 ```bash echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf ``` 3. 重启电脑 ```bash reboot ``` #### 卸载 winboat 1. 软件内关闭 Windows 后在 configuration 页面选择 reset winboat & remove vm。 2. 删除 winboat ```bash yay -Rns winboat-bin ``` 3. 清理残留文件 ```bash sudo rm -rfv /var/lib/docker /etc/docker ~/.docker /var/run/docker ~/.winboat ~/.config/winboat ``` 4. 重启电脑 ```bash reboot ``` ## VirtualBox ```bash sudo pacman -S virtualbox virtualbox-host-dkms ``` 不同内核需要安装的包不一样,Linux 内核是 virtualbox-host-modules-arch,其他的看 wiki。 ### 卸载 VirtualBox ```bash sudo pacman -Rns virtualbox virtualbox-host-dkms rm -rfv ~/.config/VirtualBox/ ~/VirtualBox\ VMs/ ``` ## distrobox > [distrobox.it](https://distrobox.it/) 我愿称其为"Linux Subsystem for Linux"。可以利用容器创建一个跟主机 Linux 深度集成、共享显卡的 Linux 子系统。比如你想用的软件只提供 DEB 包,那就可以创建一个 Debian 系发行版的盒子安装。比如我最近想用达芬奇剪视频,但是在 Arch 上安装达芬奇需要处理很多依赖和兼容问题,那我可以安装一个 Red Hat 系发行版的盒子专门装达芬奇。 distrobox 是一个在 Linux 上无缝运行其他 Linux 发行版的项目,使用 Podman、Docker 或者 lilipod 创建容器。有了这个项目就可以安装别的发行版的包了。建议使用 Podman,这个更轻量化更简洁。 ```bash sudo pacman -S distrobox podman ``` 选项选 crun,Podman 和 crun 都是红帽主导开发的比 Docker 和 runc 更新更简洁的程序。 ### 创建容器 Podman 兼容 Docker 镜像,可以去 Docker Hub 上搜索镜像对应的字符。 比如说我想装一个 Debian Stable: ```bash distrobox create -n debian -i debian:stable ``` ```bash # distrobox create 创建容器 # -n 指定容器名 # -i 指定镜像 ``` 默认会共享主机的 home 目录,使用 --home(简写是 -H)给容器指定单独的目录存放 home 目录下的文件,避免搞乱本机的 home 目录。 ```bash distrobox create -n debian -i debian:stable --home ~/Distroboxhome/debian ``` 加上 --nvidia 可以共享本机的 N 卡驱动: ```bash distrobox create -n debian -i debian:stable --home ~/Distroboxhome/debian --nvidia ``` 创建之后应用程序里会出现快捷方式,也可以在命令行用 distrobox enter 命令进入。第一次会安装各种基本包。 ```bash distrobox enter debian ``` 创建容器时下载下来的镜像会存放在 `/home/shorin/.local/share/containers/storage` 目录下。 #### 常用的发行版 - Debian Stable ```bash distrobox create -n debian -i debian:stable --home ~/Distroboxhome/debian ``` - Arch Linux ```bash distrobox create -n arch -i archlinux:latest --home ~/Distroboxhome/arch ``` - Fedora ```bash distrobox create -n fedora -i fedora:latest --home ~/Distroboxhome/fedora ``` ### 在主机创建容器内程序的快捷方式 用 distrobox-export --app 命令在主机 `~/.local/share/applications` 目录下创建对应程序的 .desktop 文件,比如我安装了星火应用商店: ```bash distrobox-export --app spark-store ``` 想删除的话加上 --delete: ```bash distrobox-export --app spark-store --delete ``` 删除容器的时候也会连着这个快捷方式一起删除。 ### 删除容器 使用 distrobox rm 命令: ```bash distrobox rm debian ``` 然后手动删除 home 目录下的残留。 ### GUI 安装 BoxBuddy: - AUR ```bash yay -S boxbuddy ``` - flathub ```bash flatpak install flathub io.github.dvlv.boxbuddyrs ``` ## 进阶 如果你需要更深入、性能更强大、功能更多的虚拟机,那就得利用 Linux 内核中的 KVM(Kernel-based Virtual Machine 基于内核的虚拟机)技术了。 下一节:[KVM虚拟机](KVM虚拟机.md)