虚拟机篇-01 win10/11使用Hyper-V搭建Ubuntu虚拟机

01 搭建虚拟机

  • 1. 动机、虚拟机简介
  • 2. 准备
  • 3 安装ubuntu
    • 3.1 步骤
    • 3.2 问题
      • 3.2.1 没有hyper-v
      • 3.2.2 安装ubuntu失败
    • 3.3 为后续的一点准备
  • 4. 安装linux-vm-tools,增强会话
    • 4.1 安装git、配置使用github
    • 4.2 安装linux-vm-tools,连接虚拟机
    • 4.3 在powershell中连接vm,查看vm情况
  • 5. 使用WinSCP连接ubuntu虚拟机
    • 5.1 步骤
    • 5.2 问题
      • 5.2.1 查看ip
      • 5.2.1 连接报网络错误
      • 5.2.2 WinSCP无法登录root用户
  • 6 后续

1. 动机、虚拟机简介

我是国庆前两天的周四晚上,开始弄虚拟机的,因为第二天周五,上完就放国庆假,我也就磕磕碰碰到了四点才睡,可以说是印象深刻了。想来动机有几个方面:

  1. 出于实习中被安排的任务的需要。我需要用java写一个pulsar的生产者给消息队列发送消息。在粗略的查看网上pulsar教程后,发现几乎都是基于linux的。其实我电脑有双系统,但是这两个是完全独立的,如果在开机时候选择了ubuntu,就无法进入windows,很不方便。这时候,虚拟机貌似是很不错的选择;
  2. 出于想探索一下虚拟机;
  3. 认识到自己在linux系统上相关知识和实践的不足。我之前在项目中有浅浅地接触过linux服务器,甚至上了一学期地操作系统实践课,但是面试的时候问到相关的问题,尤其是关于linux系统内核之类的,还是答不上来。所以觉得或许可以利用这个机会,增加对linux的认识,真的确实有效。

综上,我决定探索一番,经过了4天,所有问题都解决了。在这个过程中,我一直在遇到问题,解决问题…很幸运网上有这么多的程序员分享自己的经验,因此想记录一下这个过程中,我参考的博客,以下都是能成功帮助我解决问题的。

回到正题,首先,什么是虚拟机呢?以下摘自百度百科:

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

我的理解就是,虚拟机其实没有这么高大上,操作系统是软件,用来调度硬件资源,使他们工作起来。就如一台机器上可以有多个软件一样,一台计算机上同样可以拥有多个操作系统,只要给这些操作系统分配可供他们调度的,独立的硬件环境,比如硬盘空间、内存、网卡等,那么这些硬件环境加上管控它的操作系统就构成一个虚拟机。

只是虚拟机是由宿主机上的驱动程序启动的,像是一种内嵌关系,虚拟机是宿主机上一个特殊的交互软件。

2. 准备

我在搭建虚拟机前,安装了傲梅分区助手,对电脑上的磁盘空间进行调整,划出了一个E盘存放VM;
如果有诸如c盘空间不够,想新建盘符等需要调整磁盘的需求的小伙伴也很推荐使用,很容易使用。

傲梅分区助手的下载地址

这是我现在的空间分布:
虚拟机篇-01 win10/11使用Hyper-V搭建Ubuntu虚拟机_第1张图片

3 安装ubuntu

Linux发行版中,除了Ubuntu,CentOS也是不错的选择,还有其他的。
但出于不需要这么强的专业性加上流行度第一,我选择Ubuntu。

3.1 步骤

安装ubuntu的步骤主要是以下:

  • Windows开启Hyper-V 服务(Vmware似乎也是很好的选择,但是基于win下,使用Hyper-V会更直接)
  • 下载,选择ubuntu映像
  • 启动、连接虚拟机

详细参考博客:Windows 10利用虚拟机安装Linux图文教程

3.2 问题

3.2.1 没有hyper-v

  • 解决> 如何在 Windows 11 Home 上下载和安装 Hyper-V

3.2.2 安装ubuntu失败

  • 问题描述:
    在启动后连接虚拟机的时候,会卡在只有一个光标在左上角闪烁,其他都黑屏的画面。

  • 原因:
    版本问题,建议不要选择ubuntu20以上的版本!!!
    因为后续在使用增强会话的时候,发现最高支持到18.04的版本。

  • 解决 :
    使用ubuntu18.04的映像

    我推断是引导的问题,首先尝试用命令行解决,但是需要登录用户密码,由于我的系统都没安装成功,显然这个方式不可行;
    于是我尝试进入grub界面,但是进去后到处看了发现啥也做不了。
    最后我才判断可能是版本不兼容,于是从ubuntu22.10降到ubuntu20.04,到最后的18.04,最后的18.04成功启动、连接后进入系统设置界面。
    虚拟机篇-01 win10/11使用Hyper-V搭建Ubuntu虚拟机_第2张图片

  • 总结:
    个人感觉版本的问题对我来说是最费时间的,虽然解决起来只要换个版本就好,但是我有一种最新版本情节,除非磕到最后没点子了,不然都不会去换版本。只希望以后能更敏锐些,毕竟也不是第一次碰到版本问题了。

至此,ubutun系统成功安装好啦!

3.3 为后续的一点准备

  • 打开终端:Ctril+Alt+t

  • 修改默认中文目录名“桌面”"文档"等为英文
    由于系统设置时选择的语言是汉语,但是发现这样作为路径名使用终端进入非常的不和谐。
    参考博客: Ubuntu /home下中文目录如何修改成英文

  • 更新apt-get
    apt-get 命令是Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本。

sudo apt-get update

4. 安装linux-vm-tools,增强会话

安装好虚拟机并且能正常时候后,发现在虚拟机内复制的内容到主机上粘贴不起作用,反过来也是一样。

这是因为虚拟机和宿主机是独立的两个部分,不共用剪切板。

显然这样很不方便,因为安装虚拟机的一大优点就是可以在外部使用windows学习,然后在虚拟机中直接实践,比如一些命令、文本肯定是能直接复制的好。
因此需要实现虚拟机中的ubuntu与宿主机之间可以实现复制粘贴;

除此之外,增强会话还可以带来更好的交互体验,例如鼠标滑动更加流畅等,类似的工具有VMware Tools、linux-vm-tools,前者可以在VMware中安装得到,后者则常与与hyper-v搭配使用。所以我们安装linux-vm-tools

4.1 安装git、配置使用github

首先,我们需要安装git,再拉取linux-vm-toos的仓库。

为了之后能在虚拟机中使用git提交代码到github仓库等,我按照以下教程配置好git:

  • 如何在ubuntu下使用Github?
  • 在Ubuntu Linux上安装和使用Git和GitHub

4.2 安装linux-vm-tools,连接虚拟机

参考博客:

  • Hyper-V虚拟机实现复制粘贴
  • Hyper-V内的虚拟机复制粘贴

4.3 在powershell中连接vm,查看vm情况

参考博客: win10系统下Hyper-V基本(网上资源整合)3

如果进展顺利的话,可以实现虚拟机与宿主机共享剪切板了,但是要按照以下的规则才可以复制、粘贴成功:

ubuntu系统的复制粘贴 鼠标选中即复制 按鼠标中间即粘贴
window系统的复制粘贴 Ctrl+C Ctrl+V
ubuntu->window 右键复制 Ctrl+V粘贴
window->ubantu CtrlV复制 右键粘贴
window<->ubutun 鼠标右键复制、粘贴

5. 使用WinSCP连接ubuntu虚拟机

如果我们需要把宿主机上的文件传输到虚拟机中,可以使用WinSCP。

百度百科中对于WinSCP的介绍如下:

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。 同时支持SCP协议。 它的主要功能就是在本地与远程计算机间安全的复制文件。 .winscp也可以链接其他系统,比如linux系统。

5.1 步骤

WinSCP的下载地址

参考博客: windows上虚拟机与Winscp如何连接起来

5.2 问题

在这个过程我遇到的几个问题以及解决方法如下:

5.2.1 查看ip

  1. 安装net-tools
$ sudo apt install net-tools

2.显示网络设备

$ ifconfig -a

可以看到有很多个网络地址,找到eh0的ip即可。eh0代表网卡一,lo代表localhost
虚拟机篇-01 win10/11使用Hyper-V搭建Ubuntu虚拟机_第3张图片

5.2.1 连接报网络错误

虚拟机篇-01 win10/11使用Hyper-V搭建Ubuntu虚拟机_第4张图片

  • 原因是没有安装sshd

  • 解决> winscp 服务器拒绝了SFTP连接,但它监听FTP连接。 想要用FTP协议来代替SFTP吗?最好是用加密的。

5.2.2 WinSCP无法登录root用户

  • 解决> 解决WinSCP无法用root用户登陆linux服务器

6 后续

至此,这个虚拟机配好了git,还可以通过WinSCP连接实现文件传输。
后续还会介绍安装docker、mysql以及pulsar的入门。


参考资料:

https://cloud.tencent.com/developer/article/1722121
https://www.windows11.pro/1616.html
https://blog.csdn.net/fei2636/article/details/79202102
https://blog.csdn.net/tina_ttl/article/details/51326684
https://cloud.tencent.com/developer/article/1721653
https://www.cnblogs.com/kendoziyu/p/14741360.html
https://blog.csdn.net/BBJG_001/article/details/103788702
https://zhuanlan.zhihu.com/p/83474658
https://blog.csdn.net/zhangyDD/article/details/78533297
https://blog.csdn.net/shenwb110/article/details/70228984
https://blog.csdn.net/xiasli123/article/details/106093402

你可能感兴趣的:(Linux,ubuntu,linux)