虽然都是自己写的,还是贴个原文链接吧,如果文章里的图片错乱了,可能就是我贴错了,去看原文吧。

多图警告

WSL2真香?

WSL2相比于WSL1前者更类似于虚拟机,配合上Windoes Terminal的漂亮界面以及通过localhost直接访问,让人直呼真香!

那么WSL2真香吗?

WSL2理所当然的可以运行docker,你可以把一些mysql、redis之类的服务放在docker容器里运行。

当有一天你会发现在使用systemctl命令的时候会报这样的错误:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

出现这个问题是有解决方案的,去google搜索也能找到教程,但是点进教程连接我就默默地离开了页面(完全不想看)。

既然systemctl存在这样的问题,那其他地方也可能存在着问题,不如就直接使用虚拟机了。

Hyper-V方案

1、开启Hyper-V功能

在这里默认为你觉得WSL2有问题才考虑使用虚拟机的,那么你的设备一定开启了Hyper-V功能。

另外的,如果你没有使用过WSL2或者电脑系统为Windows10家庭版(Windows11家庭版),那么你需要参考下面的操作(具体操作方式请自行搜索,下面几步并非全部都是完成)。

  1. 如果你的系统为家庭版,你可以搜索家庭版开启Hyper-V的教程。
  2. 如果你的系统为家庭版,你可以更换系统为专业版或者使用 蓝点网 的系统版本转换工具进行转换(不论是更换系统还是进行转换,都会失去原来的正版系统)。
  3. 如果你的系统是专业版,仅仅需要在控制面板>程序>启用或关闭Windows功能中打开Hyper-V功能就可以。

2、Ubuntu镜像下载

Ubuntu Server 22.04 LTS

写这篇博客时的,最新server lts版本是22.04,目前没有测试18.04。

3、创建虚拟机配置(暂时不安装操作系统)

经过前几步的配置后应该可以在Win菜单中搜索到Hyper-V 管理器,打开后界面如下:

点击右侧操作栏目的新建>虚拟机后会出现配置引导


点击下一步进行配置


在这里需要制指定一下虚拟机的名称和虚拟机的存放位置。

如果是长期使用并且安装较多软件的话尽量选择一个存储空间足够的位置。

设置完成后点击下一步继续。


这里选择第二代,然后下一步。


内存先使用默认的1024MB动态内存,后期可以调整内存大小。


先选择Default Switch,默认的网络连接用来连接互联网,后面装完系统后需要再新增一个网卡来固定虚拟机IP用来SSH连接使用。

选择默认后点击下一步。


暂时选择不添加虚拟硬盘,点击下一步继续。


点击完成等待虚拟机配置创建完成。

4、添加硬盘

点击Hyper-V管理器主界面上前面几步创建的虚拟机


在弹出界面上依次点击SCSI控制器>硬盘驱动器>添加


在点击添加后我们可以看到如下的界面,可以看到能够使用虚拟硬盘和脱机的虚拟硬盘。

当我们有空闲的硬盘时可以考虑使用物理硬盘。

这里先选择创建虚拟硬盘,点击新建按钮


接下来回进入到虚拟硬盘创建引导。

这里可以看到有三种模式。

当想要创建一个长期使用的虚拟机时建议选择固定大小并分配较大容量。

现在做配置演示属于临时性的并且硬盘IO非常低,这里我选择动态扩展。


给硬盘一个名称并指定位置,建议放在创建的虚拟机目录下。


接下来是指定硬盘大小,如果是固定硬盘大小模式,这里指定之后硬盘就会被初始化为指定的大小。

如果是选择的动态扩展,这里创建的虚拟硬盘文件小于这个最大值。

当然可以选择复制物理硬盘或其他虚拟硬盘的内容到新的虚拟硬盘。


磁盘配置完成后会看到如下信息

5、添加系统镜像

再点击SCSI控制器>DVD驱动器>添加>映像文件选择下载好的Ubuntu22.04系统镜像。

6、启动位置

点击固件,调整启动顺序为如图所示:

7、关闭安全启动

点击安全,把启用安全启动去掉勾选,然后点击确定保存。

到这里虚拟机的基本配置已经完成了,接下来就是启动安装系统了。

8、安装系统

在主界面上选中我们创建的虚拟机右击连接,在弹出窗口中点击启动。


等待几秒后会出现选择菜单,这里我们选择第一项安装系统。


经过等待几十秒后出出现语言选择界面,然后选择English


选择正常安装


网络配置我们默认使用DHCP,这里不要修改否则可能安装完成后无法连接互联网。

这个eth0网卡就的Hyper-V的Default Switch,它的IP地址是系统开机自动分配的,我们无法固定这个IP,后面将通过再添加一个网卡的方式实现固定IP连接SSH。


代理设置和源设置默认就可以


硬盘分区选择,第一个方案,继续。想自定义分区可以参考:UbuntuServer2204分区


这是默认提供的分区方案,我们可以看到free space还有60G+的空间。

选择中free space后回车,选择Create Logical Volume

设置如下配置后选择Create继续

设置完成后选择Done继续,会有一个确认提示,选择Continue。


接下来就是常见的用户信息设置了,设置完成后继续。


这里要选择上ssh服务,如图所示。


这一步是Snaps软件安装,一个都不要选,后面自己安装需要的软件。


接下来会进入安装阶段,等待出现Reboot Now选项。

选中reboot now,进行重启,这里一定会出错,不过没有关系,直接强制关机虚拟机就可以了。


接下来我们再次启动虚拟机就可以进入系统了。

9、配置固定IP

在Hyper-V管理器主界面点击右侧的虚拟交换机管理器,点击新建虚拟网络交换机>内部>创建虚拟交换机

按照如图所示的进行配置:


关闭虚拟机的系统,点击选中虚拟机进行设置。

选中添加硬件>网络适配器>添加

虚拟交换选中上面创建的10.10.10.254。

完成后保存虚拟机配置。


控制面板>网络和Internet>网络连接里可以看到上面配置的虚拟网卡。

需要给这个网卡配置固定的IP地址


启动虚拟机的系统,进入系统后切换到root用户

sudo su

更新软件源

apt update

安装net-tools

apt install net-tools

编辑/etc/netplan下的唯一一个yaml文件

vi /etc/netplan/00-installer-config.yaml

文件默认内容为:

# This is the network config written by 'subiquity'
network:
ethernets:
eth0:
dhcp4: true
version: 2

这里的网卡不一定都是eht,也可能是ens

需要添加一个网卡eth1,修改这个文件内容为:

# This is the network config written by 'subiquity'
network:
ethernets:
eth0:
dhcp4: true
eth1:
dhcp4: false
addresses: [10.10.10.1/24]
version: 2

应用配置

netplan apply

如果配置没有错误,在windows实体机器上ssh ubuntu@10.10.10.1就可以连接到虚拟机的Ubuntu了。

10、优化虚拟机访问

修改C:\Windows\System32\drivers\etc\hosts文件,在文件末尾添加

10.10.10.1 vmlinux1

在命令行中ssh ubuntu@vmlinux1就可以连接到系统了。

打开windows terminal,到设置中添加一项配置。

这里我没有设置图标,如果需要的话可以自行设置。

这样每次连接仅输入密码就可以了,如果觉得输入密码比较麻烦可以配置一下RSA密钥。

如果想要像WSL一样在资源管理器里就可以浏览linux文件,可以参考:sftp映射为win磁盘

11、挂载物理硬盘

要挂载物理硬盘必要条件是电脑是双硬盘的,这里要注意挂载的是硬盘不是分区。

首先将要挂载的物理硬盘清空所有分区(推荐使用 DiskGenius 来操作):

右击磁盘选择脱机。

得到如下状态的磁盘:

在虚拟机设置窗口依次点击SCSI控制器>硬盘驱动器>物理硬盘

只有存在脱机的物理硬盘这里才能识别到具体的硬盘

完成后确定保存配置。

需要注意的是挂载了物理磁盘后就不能再使用检查点了,需要关闭检查点后才能启动开机。

需要注意系统安装到物理硬盘上后,如果BIOS的第一启动项是这个硬盘的话,是完全可以启动的。

所以要设置一下BIOS让这个硬盘不会在第一启动位

最终解决方案

Buy a Mac

在hyper-v虚拟机中安装并配置linux的更多相关文章

  1. CentOS 7中安装和配置Promethues

    Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prome ...

  2. VMware 虚拟机图文安装和配置 AlmaLinux OS 8.6 教程

    前言: 这是<VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程>一文的姐妹篇教程,如果你需要阅读它,请点击这里. 2020 年,CentOS 宣布:计划未来将重心从 ...

  3. VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程

    前言 2020 年,CentOS 宣布:计划未来将重心从 CentOS Linux 转移到 CentOS Stream.CentOS 8 的生命周期已于 2021 年 12 月 31 日终止,而 Ce ...

  4. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  5. 在虚拟机中安装CentOS7

    在虚拟机中安装CentOS7 听语音 | 浏览:17352 | 更新:2014-10-31 12:14 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅最快的到家服务,最优质的电脑清灰! 百 ...

  6. 在虚拟机中安装Ubuntu Server 15.04

    学Linux,上红联! 红联Linux门户|Linux通用技术|Linux发行版技术|Linux企业应用|Linux实验室|红联Linux论坛 Linux系统教程 Linux入门 Linux管理 Li ...

  7. 给虚拟机中的CentOS7配置固定ip

    在虚拟机中安装完了CentOS7之后,使用了DHCP来获取ip,vmware的网络连接使用了NAT模式.但是在把Linux设置为固定ip地址后,虚拟机里的linux可以ping通全网段的ip地址,但是 ...

  8. 在VM虚拟机中安装Centos操作系统

    首先我们要下载  Centos https://www.centos.org/ 这个是Centos官方 最新版本 7 https://www.centos.org/download/ 提供有 DVD安 ...

  9. 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南

    How to install Arch Linux on VirtualBox 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南 本文导航 1.Arch Linux 软件仓库2. ...

随机推荐

  1. kali 无线网络渗透测试

    一.无线网络渗透嗅探工具Kismet 如果要进行无线网络渗透测试,则必须先扫描所有有效的无线接入点.在Kali linux中,提供了一款嗅探无线网络工具Kismet.使用该工具可以测量周围的无线信号, ...

  2. UiPathExcel读取操作

    一.Uipath操作Excel的相关基本概念 1.UiPath操作Excel的两组方法 App Integration > Excel   VS  System > File > W ...

  3. HTTP Status 405 - Request method 'GET' not supported?(尚硅谷Restful案例练习关于Delete方法出现的错误)

    哈罗大家好,最近在如火如荼的学习java开发----Spring系列框架,当学习到SpringMVC,动手实践RESTFUL案例时,发现了以上报错405,get请求方法没有被支持. 首先第一步,我查看 ...

  4. 干货 |《2022B2B新增长系列之企服行业橙皮书》重磅发布

    企服行业面临的宏观环境和微观环境已然发生了明显的变化.一方面,消费级互联网成为过去式,爆发式增长的时代结束.资本.媒体的目光已经悄然聚焦到以企服行业所代表的产品互联网身上,B2B企业正稳步走向C位. ...

  5. 编程思想转换&体验Lambda的更优写法和Lambda标准格式

    编程思想转换做什么,而不是怎么做 我们真的希望创建一个匿名内部类对象吗?不,我们只是为了做这件事情而不得不创建一个对象. 我们真正希望做的事情是:将run方法体内的代码传递给Thread类知晓. 传递 ...

  6. 迭代器的实现原理和增强for循环

    Iterator遍历集合--工作原理 在调用Iterator的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位, 指向第 ...

  7. SimpleDateFormat类介绍和 DateFormat类的format方法和parse方法

    使用 SimpleDateFormat格式化日期 SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat 允许你选择任何用户自定义日期时间 ...

  8. cx_Oracle.DatabaseError: ORA-28759: failure to open file

    找了好久这个问题,有人说是tcps的问题,需要自己生成证书什么的,后来才发现原来是 钱包文件路径 的问题,钱包文件解压后必须放在instantclien/network/admin下,在Windows ...

  9. Idea 的Test测试报错:java.lang.IllegalStateException: Failed to load ApplicationContext

    因为在Test里面使用了注解@Autowired 引入来至bean.xml文件的内容 ,而在Test没有没有办法自动引入,需要在Test类上加上注解 @ContextConfiguration(loc ...

  10. Docker详解(上)

    Docker 学习 Docker概述 Docker安装 Docker命令 镜像命令 容器命令 操作命令 ... Docker镜像 容器数据卷 DockerFile Docker网络原理 IDEA整合D ...