虚拟机

komantao 2020-02-22 2020-02-22 字数 6149 阅读量


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

Linux虚拟机,(假设)在Windows上安装虚拟linux操作环境,实际上只是个文件,是虚拟的linux环境,而非真正意义上的操作系统,但两者的实现效果一样。

在Windows虚拟安装Linux(在宿主计算机虚拟出一台虚拟机,并在上面安装Linux系统),就可以进行各种Linux练习而无须担心操作不当导致宿主机系统崩溃了。举一反三,将一台电脑变成三台、四台,再分别安装上其他的系统。运行虚拟机软件的操作系统(Windows)叫Host OS,在虚拟机里运行的操作系统(Linux)叫Guest OS。

一、VMware

VMware,是全球台式电脑及资料中心虚拟化解决方案的领导厂商,VMWare Workstation是该公司出品的“虚拟 PC”软件(即虚拟机),通过它可在一台电脑上同时运行更多的Microsoft Windows、Linux、Mac OS X、DOS系统。

官网:https://www.vmware.com/cn.html

官方文档:https://docs.vmware.com/cn/VMware-Workstation-Pro/index.html

1、安装

官网Desktop & End-User Computing(桌面和终端用户计算)中的VMware Workstation Pro,一款虚拟化软件(商业收费),有免费试用版(60天)。

官网需要注册才能下载正式版,因此百度下载了一个破解版(含安装教程,傻瓜式安装)。

VMware 2019 v15.x 永久许可证激活密钥:
YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8
UG5J2-0ME12-M89WY-NPWXX-WQH88
UA5DR-2ZD4H-089FY-6YQ5T-YPRX6

Hyper-V与VMware虚拟机有冲突,只能二选一。

2、新建虚拟机

使用VMware Workstation 15.5 Pro新建虚拟机:【文件】— “新建虚拟机”(或在主页点击“创建新的虚拟机”),根据向导的提示操作:

  1. 选择自定义模式

    image-20200223123016550

  2. 选择兼容性(默认即可)

    image-20200222103801148

  3. 选择安装来源

    注意:一定要选择“稍后安装操作系统”。否则,配置完成后,机器将自行安装系统,并把所有磁盘空间分配给C盘。

    image-20200223123256673

  4. 选择客户机操作系统(Guest OS)

    计划安装的Linux Mint是基于Ubuntu的再发行版本,所以版本选择为Ubuntu 64。

    image-20200222104904579

  5. 重命名虚拟机和设置虚拟机存储路径

    image-20200222105943456

  6. 选择处理器线程数

    根据宿主主机CPU选择线程数。若CPU是4核4线程,表示处理器数量为4,每个处理器的内核数量为1,处理器内核总数(线程数)最多为4*1。查看主机CPU的核数和线程数请参阅windows查看CPU核数、线程数

    image-20200222112246600

  7. 选择内存大小

    不超过主机物理内存即可。

    image-20200222113021076

  8. 选择网络类型

    个人用户选择NAT(共享主机IP地址),就可以使用内网网络。但对于有独立IP的服务器,有可能会出现问题。建议选择“不适用网络连接”,配置完成后重新选择。

    1570677132279

  9. 选择I/O控制器(使用推荐)

    image-20200222113630147

  10. 选择磁盘类型(使用推荐)

    image-20200222113725983

  11. 选择磁盘

    image-20200222113813268

  12. 选择磁盘容量

    可以随意填写。虚拟机的磁盘为共享磁盘:实际使用了多少,就会占用主机多少磁盘。没有使用到的磁盘,即使定义1T,仍然不会占用太多主机磁盘。

    image-20200222114950523

  13. 指定磁盘文件(虚拟机)

    虚拟磁盘文件(虚拟机)后缀为**.vmdk**、虚拟机配置文件后缀为**.vmx**,存放在自定义的文件夹内。删除这2个文件/文件夹将会导致虚拟机失效。

    image-20200222115223627

  14. 设置完毕,点击“完成”,开始安装Linux的发行版本

    image-20200222115404249

3、配置

  • VMware配置:VMware Workstation的界面 — 【编辑】— “首选项”

  • 虚拟机配置:VMware Workstation的界面 — 【虚拟机】— “设置”

  • “移除”虚拟机:在“库”中右击已有虚拟机,弹出菜单选择“移除”

    从库中移除虚拟机,不会从磁盘中删除虚拟机。选择“扫描虚拟机”可再次添加。

  • “删除”虚拟机:在“库”中右击已有虚拟机,弹出菜单选择“管理”,选择“从磁盘中删除”

    从磁盘中删除虚拟机。

3.1 进入BIOS

在VMware进入BIOS是个头疼问题,因为启动界面一闪而过,即使狂按F2键(F2进入BIOS Setup;F12网络启动;ESC调整启动顺序) ,绝大部分都无法进入BIOS。因为VMware启动界面显示时间太短,系统无法识别按键而直接开启了系统。

image-20200303105239714

解决方法:

  • 方法一:关机状态下,VMware“虚拟机” — “电源” — “打开电源时进入固件”

  • 方法二:修改VMware配置文件(xxx.vmx

    在VMware配置文件(xxx.vmx)的末尾添加参数,能顺利进入BIOS:

    方法一:bios.forceSetupOnce = "TRUE"   # 一次有效,启动后会自动还原为False
    方法二:bios.bootDelay = "10000"       # 长期有效,启动后不会自动还原参数
    

3.2 挂载光盘

在虚拟机已关机状态下,编辑虚拟机设置:

image-20200303142026491

点击“CD/DVD(SATA)”(默认值为“自动检测”),修改连接选项

“设备状态”选项勾选“启动时连接”;“连接”选项从“使用物理驱动器”的“自动检测”选择为“使用ISO映像文件”,然后输入已下载的Linux Mint 19.3(ISO文件)的本地路径。

image-20200303142607974

挂载光盘的目的是:在Linux系统(虚拟机)故障无法启动时(Timeshift需要进入Linux系统才能还原),通过选择其它启动方式加载系统。

3.3 虚拟机硬盘扩容

参阅:VMware 如何扩展虚拟机的硬盘空间

3.4 挂载U盘

  1. 主机(Windows)插入U盘(记住容量)

    image-20200307132110816

  2. 运行虚拟机程序(VMware),在虚拟机的设置界面,点击“编辑虚拟机设置”

    image-20200307110900972

  3. 点击“硬盘”,选择“添加”;在“硬件类型”选择“硬盘”,点击“下一步”

    image-20200307111436187

  4. 虚拟磁盘类型选择“SCSI”选项,点击“下一步”

    image-20200307111625687

  5. 选择“使用物理磁盘”,点击“下一步”

    image-20200307111738390

  6. 在设备栏中选择“PhysicalDrive 2”,然后选择“使用整个磁盘”,点击“下一步”

    image-20200307111859888

    备注:此时无法判断新增U盘的设备名。新插入的硬盘(U盘)通常位于末尾。

  7. 设置虚拟磁盘文件名,也可以保持默认,点击“完成”

    image-20200307132527299

    将会在Linux系统目录(I:\Linux Mint)内添加虚拟磁盘文件(Linux Mint-U盘.vmdk)。若删除此虚拟磁盘文件,Linux系统将无法识别此U盘。

  8. 可以看到出现了一个新硬盘,点击“确定”

    image-20200307132826085

    从容量上可以判断出步骤6选择的“PhysicalDrive 2”设备就是U盘。

    点击“确定”后,U盘正式被添加到Linux Mint系统,并且在Linux Mint系统的安装目录(I:\Linux Mint)内创建了U盘的虚拟磁盘文件(Linux Mint-U盘.vmdk)。

    image-20200307200837107

  9. 运行虚拟机Linux Mint(在虚拟机的设置界面,点击“开启此虚拟机”)

    1. 首先,弹出提示信息

      image-20200307113853030

    2. 每次运行虚拟机的正确流程(或者说:这种方法的弊端)

      先插入U盘后运行虚拟机程序(VMware),最后开启虚拟机(Linux Mint)。否则,或会触发错误警示,导致无法启动Linux Mint:

      image-20200307200457310

      错误产生的原因:

      • 没有插入U盘
      • Linux Mint没有找到U盘的正确虚拟磁盘文件

      成功进入虚拟机Linux Mint后,在文件管理器的设备栏中显示出U盘:

      image-20200307133525142

      另外,U盘添加入虚拟机的前后对比:

      image-20200307133936068

      备注:虚拟机使用U盘时,主机无法使用U盘,提示:

      image-20200307125710798

解决弊端(U盘长期插入)的方法:

  1. 不需要U盘时

    拔出U盘,移除虚拟机设置内的U盘(“硬盘2”)。

    image-20200307211815340

    移除设备后,Linux Mint系统将不会检测U盘(“硬盘2”)设备信息,即不会挂载U盘。原虚拟磁盘文件失效(可删除)。

  2. 需要U盘时

    插入U盘,按照上述重做一次流程(步骤1至8),即新建U盘的虚拟磁盘文件。U盘虚拟磁盘文件的改变,不会影响U盘内存储的内容。

3.5 U盘linux分区

根据上述步骤Linux Mint系统成功挂载U盘后,运行timeshift选择快照位置时,弹出提示:

image-20200307164209122

这是因为U盘尚未进行Linux分区。

新增设备(硬盘或U盘等)的Linux分区步骤(在终端运行fdisk命令,需要root用户权限):

  1. 查看系统内的所有设备的分区

    # fdisk -l
    Disk /dev/sda:120 GiB,128849018880 字节,251658240 个扇区
    …………
       
    设备       启动      起点      末尾      扇区  大小 Id 类型
    /dev/sda1  *         2048 117186559 117184512 55.9G 83 Linux
    /dev/sda2       117188606 231444479 114255874 54.5G  5 扩展
    /dev/sda5       117188608 118163455    974848  476M 83 Linux
    /dev/sda6       118165504 124022783   5857280  2.8G 82 Linux swap / Solaris
    /dev/sda7       124024832 231444479 107419648 51.2G 83 Linux
       
    Disk /dev/sdb:14.9 GiB,15931539456 字节,31116288 个扇区
    …………
       
    设备       启动  起点     末尾     扇区  大小 Id 类型
    /dev/sdb1        8192 31116287 31108096 14.9G  c W95 FAT32 (LBA)
    

    U盘在Linux Mint系统内挂载的设备名为:/dev/sdb

  2. 进入指定设备(/dev/sdb),查看fdisk命令参数

    # fdisk /dev/sdb
       
    欢迎使用 fdisk (util-linux 2.31.1)。
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
       
    命令(输入 m 获取帮助): 
    

    在此状态下输入“m”可以查看帮助(已完全汉化)。输入“d” 删除已存在分区,第一次可跳过,如果要重新分区就需要。

  3. 输入“n”,预创建一个Linux分区表

    命令(输入 m 获取帮助): n
    分区类型
       p   主分区 (0个主分区,0个扩展分区,4空闲)
       e   扩展分区 (逻辑分区容器)
    选择 (默认 p): p
    分区号 (1-4, 默认  1): 1
    第一个扇区 (2048-31116287, 默认 2048): 
    上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-31116287, 默认 31116287): 
       
    创建了一个新分区 1,类型为“Linux”,大小为 14.9 GiB。
    
  4. 输入“w”,正式创建一个Linux分区表并退出fdisk命令

    命令(输入 m 获取帮助): w
    分区表已调整。
    将调用 ioctl() 来重新读分区表。
    正在同步磁盘。
    
  5. Linux分区格式化

    1. 查看指定设备(/dev/sdb)的分区

      # fdisk -l /dev/sdb
      Disk /dev/sdb:14.9 GiB,15931539456 字节,31116288 个扇区
      …………
            
      设备       启动  起点     末尾     扇区  大小 Id 类型
      /dev/sdb1        2048 31116287 31114240 14.9G 83 Linux
      [ root@KVM /home/koman ]
      

      设备(/dev/sdb)只有一个分区(sdb1),其Id和类型已改变。

    2. 查看设备是否有挂载点(MOUNTPOINT)

      # lsblk
      NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      sda      8:0    0  120G  0 disk 
      ├─sda1   8:1    0 55.9G  0 part /
      ├─sda2   8:2    0    1K  0 part 
      ├─sda5   8:5    0  476M  0 part /boot
      ├─sda6   8:6    0  2.8G  0 part [SWAP]
      └─sda7   8:7    0 51.2G  0 part /home
      sdb      8:16   0 14.9G  0 disk 
      └─sdb1   8:17   0 14.9G  0 part 
      

      设备(/dev/sdb)的sdb1分区没有被系统mount。若有,需要先umount设备。

    3. 制作文件系统(格式化分区)

      示例中只有一个分区(sdb1)。若有多个分区,则需要指定分区才进行格式化。

      # mkfs -t ext4 /dev/sdb1
      mke2fs 1.44.1 (24-Mar-2018)
      创建含有 3889280 个块(每块 4k)和 972944 个inode的文件系统
      文件系统UUID:281147d7-088c-4775-ad4f-ee8340f7aa09
      超级块的备份存储于下列块: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
            
      正在分配组表: 完成                            
      正在写入inode表: 完成                            
      创建日志(16384 个块) 完成
      写入超级块和文件系统账户统计信息: 已完成 
      

      将指定分区(/dev/sdb1)格式化成ext4文件系统。

      备注:扩展分区(逻辑分区)不能制作文件系统,因为扩展分区是逻辑上的分区,不能进行存储。

    4. 挂载设备

      文件系统制作完毕后,需要相应的目录与相应设备进行映射。映射后,操作目录就等同于操作设备(数据在设备中进行读取操作)。

      1. 在根分区创建一个目录(假设为:/backup)作为设备的映射目录

        # mkdir /backup
        
      2. 挂载(映射)设备

        # mount /dev/sdb1 /backup
        
      3. 查看挂载信息

        # df -T
        文件系统       类型        1K-块    已用     可用 已用% 挂载点
        udev           devtmpfs  1479788       0  1479788    0% /dev
        tmpfs          tmpfs      303516    1772   301744    1% /run
        /dev/sda1      ext4     57410400 6852668 47611736   13% /
        tmpfs          tmpfs     1517564       0  1517564    0% /dev/shm
        tmpfs          tmpfs        5120       8     5112    1% /run/lock
        tmpfs          tmpfs     1517564       0  1517564    0% /sys/fs/cgroup
        /dev/sda5      ext4       463826  169246   266113   39% /boot
        /dev/sda7      ext4     52604304   59588 49842844    1% /home
        tmpfs          tmpfs      303512      28   303484    1% /run/user/1000
        tmpfs          tmpfs      303512       0   303512    0% /run/user/0
        /dev/sdb1      ext4     15247276   40984 14412052    1% /backup
        

        分区(/dev/sdb1)已挂载到指定目录(/backup)。

      备注:U盘格式化为ext4文件系统后,Windows系统无法识别,在主机插入U盘时,将会弹出信息请求格式化(千万不要格式化):

      image-20200307200148834

U盘成功进行Linux分区并挂载后,运行timeshift选择快照位置时,可成功选择U盘:

image-20200307174722548

timeshift备份后,将会在U盘创建一个名为“timeshift”的目录。

二、Hyper-V

Hyper-V,微软自带的虚拟机软件。

优点:免费使用(已经购买正版的64位Windows专业版)。

缺点:客机无法支持USB, 虚拟Linux不友好,太多的不兼容性(强烈不推荐虚拟Linux)。

1、安装

64位Win10专业版安装Hyper-V管理器:【控制面板】—【程序】—【程序和功能】— 点击“启用或关闭Windows功能” — 勾选“Windows虚拟机监控程序”和“Hyper-V” — 点击确定 — 安装完毕,重启电脑。

2、新建虚拟机

  • 方法一:快速创建

    点击“快速创建”:

    1570259601024

  • 方法二:新建 — 虚拟机

    参阅:Ubuntu的安装步骤

    1. 根据喜好,自行下载Linux发行版备用

    2. 新建虚拟机

      Hyper-V管理器 —【操作】— “新建” —“虚拟机” — 进入“开始之前”界面

      • 指定名称和位置:定义虚拟机的名称和存储位置
      • 指定代数:根据硬件选择
      • 分配内存
      • 配置网络:建议“未连接”。因为Linux发行版的apt源通常是国外源,导致安装时间过长或安装缺失。在安装Linux发行版成功后,返回此处,开启网络(选择“Default Switch”)
      • 连接虚拟硬盘:定义虚拟磁盘文件(XXX.vhdx)的名称和路径
      • 安装选项:勾选“从可启动的 CD/DVD-ROM 安装操作系统” — 勾选“映像文件(.iso)” — 路径选择已下载的Linux发行版安装文件(.iso) — 点击“完成”
    3. 安装Linux发行版

      “Hyper-V管理器”界面选择虚拟机 — 鼠标右击,点击“连接” — “虚拟机连接”界面,点击“启动” — 根据提示,一边安装Linux发行版,一边配置。

      1570331286799

      提示"清除整个磁盘并安装ubuntu”:使用虚拟机安装,只会删除指定虚拟机的内容(后缀是.vmdk的文件),不会删除真磁盘内的其它内容。或可选择自定义(其他选项)。

3、配置

启动Hyper-V虚拟机程序:Windows开始菜单 — Windows管理工具 — Hyper-V管理器。

1570236538113

通常在第一次使用Hyper-V创建虚拟机前,配置Hyper-V的默认设定:

  1. 双击左侧的“Hyper-V管理器”,选择当前电脑终端(又称宿主主机,示例为LAPTOP)
  2. 进入“Hyper-V设置”界面
    • 若开启显示了右侧的操作窗格,点击“Hyper-V设置”
    • 点击上方菜单栏的【操作】,点击“Hyper-V设置”
    • 右击电脑终端,点击“Hyper-V设置”
  3. 在指定终端的Hyper-V设置界面中
    • 虚拟硬盘:存储虚拟磁盘文件(XXX.vhdx)的路径,可自定义
    • 虚拟机:存储虚拟机配置文件夹(Virtual Machines目录)的路径,可自定义
    • 其它设置,根据需要更改,默认设置

三、VirtualBox

VirtualBox,开源软件。

四、KVM

KVM(Kernel-base Virtual Machine)仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。

  • QEMU-KVM:在Linux系统中,可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架。
  • Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat为KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。

感谢您的赞赏支持:

Copyright © 2020 komantao. All Rights Reserved.