在hyper-v虚拟机中安装并配置linux
虽然都是自己写的,还是贴个原文链接吧,如果文章里的图片错乱了,可能就是我贴错了,去看原文吧。
多图警告
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家庭版),那么你需要参考下面的操作(具体操作方式请自行搜索,下面几步并非全部都是完成)。
- 如果你的系统为家庭版,你可以搜索家庭版开启Hyper-V的教程。
- 如果你的系统为家庭版,你可以更换系统为专业版或者使用 蓝点网 的系统版本转换工具进行转换(不论是更换系统还是进行转换,都会失去原来的正版系统)。
- 如果你的系统是专业版,仅仅需要在
控制面板>程序>启用或关闭Windows功能中打开Hyper-V功能就可以。
2、Ubuntu镜像下载
写这篇博客时的,最新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让这个硬盘不会在第一启动位
最终解决方案
在hyper-v虚拟机中安装并配置linux的更多相关文章
- CentOS 7中安装和配置Promethues
Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prome ...
- VMware 虚拟机图文安装和配置 AlmaLinux OS 8.6 教程
前言: 这是<VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程>一文的姐妹篇教程,如果你需要阅读它,请点击这里. 2020 年,CentOS 宣布:计划未来将重心从 ...
- VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程
前言 2020 年,CentOS 宣布:计划未来将重心从 CentOS Linux 转移到 CentOS Stream.CentOS 8 的生命周期已于 2021 年 12 月 31 日终止,而 Ce ...
- Linux环境搭建-在虚拟机中安装Centos7.0
最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...
- 在虚拟机中安装CentOS7
在虚拟机中安装CentOS7 听语音 | 浏览:17352 | 更新:2014-10-31 12:14 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅最快的到家服务,最优质的电脑清灰! 百 ...
- 在虚拟机中安装Ubuntu Server 15.04
学Linux,上红联! 红联Linux门户|Linux通用技术|Linux发行版技术|Linux企业应用|Linux实验室|红联Linux论坛 Linux系统教程 Linux入门 Linux管理 Li ...
- 给虚拟机中的CentOS7配置固定ip
在虚拟机中安装完了CentOS7之后,使用了DHCP来获取ip,vmware的网络连接使用了NAT模式.但是在把Linux设置为固定ip地址后,虚拟机里的linux可以ping通全网段的ip地址,但是 ...
- 在VM虚拟机中安装Centos操作系统
首先我们要下载 Centos https://www.centos.org/ 这个是Centos官方 最新版本 7 https://www.centos.org/download/ 提供有 DVD安 ...
- 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南
How to install Arch Linux on VirtualBox 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南 本文导航 1.Arch Linux 软件仓库2. ...
随机推荐
- 《Java基础——IO流》
Java基础--IO流 一.字节流: 1.输入流 (InputStream) 规则: 此处用于读取txt文件中的内容. 代码: import java.io.*; public c ...
- 实现领域驱动设计 - 使用ABP框架 - 什么是领域驱动设计?
前言: 最近看到ABP官网的一本电子书,感觉写的很好,翻译出来,一起学习下 (Implementing Domain Driven Design) https://abp.io/books DDD简介 ...
- SAP Picture Control(图片加载)
Screen display 效果 源代码 program sap_picture_demo. set screen 200. TYPE-POOLS cndp. ******************* ...
- django--ORM表的多对一关系
多对一关系是什么 Django使用django.db.models.ForeignKey定义多对一关系. ForeignKey需要一个位置参数:与该模型关联的类 class Info(models. ...
- 【RPA之家转载】苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据、合同处理自动化
[RPA之家转载]苏桦 华为RPA 企业财务实践:RPA与AI结合,实现百万级票据.合同处理自动化 看到大会的主题,说每一位开发者都了不起,说白了我也非常的感触,因为我自己本身也是一个开发者,我从01 ...
- 阿里云体验有奖:使用PolarDB-X与Flink搭建实时数据大屏
体验简介 场景将提供一台配置了CentOS 8.5操作系统的ECS实例(云服务器).通过本教程的操作带您体验如何使用PolarDB-X与Flink搭建一个实时数据链路,模拟阿里巴巴双十一GMV大屏. ...
- 【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
问题描述 创建一个Java Console程序,用于使用Azure Key Vault Secret.在VS Code中能正常Debug,但是通过mvn clean package打包为jar文件后, ...
- # Vue3 toRef 和 toRefs 函数
Vue3 toRef 和 toRefs 函数 上一篇博文介绍了 vue3 里面的 ref 函数和 reactive 函数,实现响应式数据,今天主要来说一下 toRef 函数和 toRefs 函数的基本 ...
- Trie 树进阶学习笔记
前言 没脑子选手发现自己什么都不会 ... \(\text{More and more vegetables, What should I do?}\) 正文 Trie 树简介 大概是人类的话都知道吧 ...
- pytorch 基础内容
一些基础的操作: import torch as th a=th.rand(3,4) #随机数,维度为3,4的tensor b=th.rand(4)print(a)print(b) a+b tenso ...