wsl2使用hyper-v,以前不能与其他虚拟机软件共存,VirtualBox6.0版本已经可以共存了

image-20210427023154874

wsl2与hyper-v的关系,wsl2能否与其他虚拟化产品共存:有关适用于 Linux 2 的 Windows 子系统的常见问题 | Microsoft Docs

注意:此文档使用virtualbox6.18

安装VBoxGuestAdditions

VBoxGuestAdditions只需要安装一次,再开其他虚拟机不用再次安装

VBoxGuestAdditions能解决的问题:

共享clipboard,还需要在如下设置

image-20210412172954852

我的安装环境,host : win10 virtual machine : debian 10.9

注意:需要已经安装了guest系统到虚拟机,只是在虚拟机里使用liveCD系统无法安装

官方安装指南:https://www.virtualbox.org/manual/UserManual.html#additions-linux

https://www.virtualbox.org/manual/UserManual.html#additions-linux

直接使用VirtualBox菜单Device-> Insert Guest Additions CD Image 出错提示:

这是因为已经插入了其他光驱

image-20210412152846322

官方提示安装前的三项准备

  • GNU compiler (GCC)
  • GNU Make (make)
  • Kernel header files

前两条安装build-essential包就行

1
sudo apt-get install build-essential

什么是Kernel header files,如何安装?

解决办法:https://superuser.com/questions/1200087/virtualbox-guest-additions-on-kali-linux

1
sudo apt-get install linux-headers-`uname -r` dkms

上述链接中提到要mount VBoxGuestAdditions的虚拟光驱,再运行VBoxLinuxAdditions.run,也可以直接复制VBoxLinuxAdditions.run到home目录下执行,如下图所示

1
2
chmod +x VBoxLinuxAdditions.run #提升可执行权限
sudo ./VBoxLinuxAdditions.run

image-20210412144951599

安装完后重启虚拟机就行

如果重复安装会有如下提示:

image-20210427131652427

查看增强功能的内核模块信息(以manjaro为例)

有三个模块

image-20210429150758768

查看模块信息

modinfo vboxvideo

image-20210429150946758

debian添加用户到sudo

debian不像ubuntu,新建的普通用户不属于管理员,即不在sudo用户里,不能使用sudo提升权限

先进入root用户

1
su

添加到sudo

1
adduser user-name sudo

用户logout之后重新登录生效,用groups查看是否有sudo权限

1
groups

debian恢复.bashrc文件

进入debian系统后,cli里执行 echo $SHELL 查看当前正在使用的shell,如果不是bash,输入bash切换

在给.bashrc添加alias和PATH时弄乱了,由于没有备份,需要恢复

1
cp  /etc/skel/.bashrc   ~/.bashrc

/etc/skel/.bashrc是初始文件,和home目录下的.bashrc内容相同

debian显卡开源驱动

https://wiki.debian.org/zh_CN/NvidiaGraphicsDrivers

查询有哪些开源驱动

https://wiki.archlinux.org/index.php/Xorg_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E9%A9%B1%E5%8A%A8%E5%AE%89%E8%A3%85

slitaz的安装指南

https://zhuanlan.zhihu.com/p/64391039

https://blog.csdn.net/weixin_47473923/article/details/105943362

第二个不知道如何使用menu.lst,采用第一个安装slitaz到虚拟机

slitaz中如何安装VB增强功能

gdesilva on “Installing VirtualBox Guest Additions in Slitaz 5.0”” (rssing.com)

我用slitaz-rolling-core64.iso安装的,安装后xorg-server的版本为

image-20210414054347431

在启动时发现不能加载vboxvideo模块

为什么不能load virtualbox的模块vboxvideo 查看模块信息,命令modinfo

https://forum.slitaz.org/topic/how-do-you-install-virtualbox-guest-additions-in-slitaz-running-in-a-virtualbox#post-46144

https://www.virtualbox.org/wiki/LinuxAdditionsDebug

How do you install VirtualBox Guest Additions in Slitaz running in a VirtualBox « SliTaz Forum

the vboxvideo module should not be used on systems with X.org later than 1.16 or Linux kernels older than 3.11

安装显卡驱动。如果不执行这一步,进入slitaz后,桌面的界面是一帧一一帧刷新的

https://www.cnblogs.com/meetrice/p/3682509.html

运行tazx命令

尝试了slitaz的各种版本iso,从U盘启动无法进入live的安装界面,只有命令行

在virtualbox上可以进入slitaz live界面,安装slitaz到虚拟硬盘,但是没有大于1.16的Xorg-server版本,也就不能使用VB的增强功能

错误

VB安装slitaz后直接进入了命令行,而不是图形界面

增大虚拟机的显存容量就行

could not find kernel image: Vesamenu.c32

安装slitaz时,分区表使用了gpt,启动虚拟机时出现这个问题,改为使用msdos

参见https://forum.slitaz.org/topic/slitaz-installer-doesnt-work-on-a-gpt-partition#post-43305

linux发行版的livecd

linux发行版一般提供livecd镜像,这种镜像可以从cd里启动系统,也可以放入bootable usb来启动,试用系统过程中可以安装系统。livecd也支持载入virtualbox来试用。

https://help.ubuntu.com/community/LiveCD

https://help.ubuntu.com/community/Installation/FromUSBStick

debian提供了多种iso镜像,其中的livecd镜像通过usb就可启动,启动后也有debian-installer

虚拟机安装manjaro卡住不动

在这一步卡主,原因是分配的内存不够,从1G调整为2G就可以了

image-20210412170325728

debian系统启动过程

https://www.debian.org/doc/manuals/debian-reference/ch03.zh-tw.html#_an_overview_of_the_boot_strap_process

grubhttps://zh.wikipedia.org/wiki/GNU_GRUB

linux启动日志

debian启动时命令行输出飞快的翻页,这些输出保存在/var/log/boot.log里

share folder

virtualbox需要安装增强功能,设置windows的某个文件夹与guest共享以及挂载点,此时这个挂载点目录属于vboxsf group,当前用户没有访问权限,还需要把当前用户添加到vboxsf组

image-20210423012616753

image-20210423012449348

sudo usermod -aG vboxsf account-name

查看模块vboxsf信息

modinfo vboxsf

虚拟机开启ssh服务

debian虚拟机默认没有安装ssh-server服务,需要安装

sudo apt install ssh

image-20210423015752753

ssh-server服务的进程名是sshd,查看是否启动

ps -A | grep ssh

如果没有启动,用以下命令启动

service sshd start

然后可以在本地host ssh登录到虚拟机,但是不能用root用户登录,因为默认root远程登录时禁止的

scp复制host文件到虚拟机

scp使用ssh来复制文件到远程主机

scp file-name user-name@ip:dir,复制需要输入远程主机的密码

从本地到远程主机: scp .\风行2.jpg hcf@192.168.0.101:/home/hcf/

从远程主机到本地: scp hcf@192.168.0.101:/etc/ssh/ssh_config ./

获取远程主机的公钥和fingerprint

获取远程主机公钥:ssh-keyscan github.com

计算公钥的fingerprint:ssh-keyscan github.com | ssh-keygen -E sha256 -lf -

对比计算结果与第一次登录时提示的远程主机公钥

第一次登录远程主机,会把远程主机的公钥加入到本地的known_hosts

image-20210423165458133

ssh-keyscan 192.168.0.101

扫描到三种类型的公钥:RAS ECDSA ED519,对应文件如下

image-20210423171047747

image-20210423165920427

ssh-keyscan 192.168.0.101 | ssh-keygen -E sha256 -lf -

image-20210423170145586

1
ssh-keyscan -t ECDSA  192.168.0.101 #指定只扫描这种类型的公钥

整个登录和获取公钥过程都是用ip地址做参数的

apt包管理器的工作原理

运行 apt update会同步源到本地的包索引文件,如

https://mirrors.tuna.tsinghua.edu.cn/debian/dists/buster/main/binary-amd64/下的

Packages.gz解压为一个文本文件,包含了包的meta information, debian /var/lib/apt/lists下的这个文件与其内容相同,shasum计算hash值比较是否内容相同,或者用diff命令

image-20210424152957748

以0ad这个包为例,元信息如下

image-20210424154012472

apt-cache show pkgname 比apt show pkgname 显示更多信息

image-20210424222454496

包的下载地址:https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/0/0ad/,即包本地都在pool目录下

image-20210424154218036

已下载的包 /var/cache/apt/archives/

包的元数据目录 /var/lib/apt/lists/

对apt search如何在缓存中搜索包的介绍:Apt Search Command: Search & Find Package Details in Ubuntu (itsfoss.com)

apt与apt-get apt-cache区别:Difference Between apt and apt-get Explained - It’s FOSS (itsfoss.com)

apt比apt-get 和apt-cache多出两个命令 apt edit-sources 和apt list

win10更新C盘空间不足,创建链接文件

先把C:\Program Files\MATLAB剪切到F:\Matlab,再创建syboml link,matlab原有的start menu快捷方式仍可以正常工作

mklink /D “C:\Program Files\MATLAB” “F:\Matlab”

virtualbox6.18不能安装 CentOS-8.3.2011

6.18引导CentOS-8.3.2011-x86_64-dvd1.iso时会黑屏(blank screen)

VB6.1.20修复了这个bug

Changelog – Oracle VM VirtualBox

image-20210427022936766

bug描述:#20141 (VERR_CPUM_RAISE_GP_0 when booting from CentOs8 => fixed in SVN/next maintenance) – Oracle VM VirtualBox

把VB更新到6.1.20后,可以安装CentOS-8.3.2011-x86_64-dvd1.iso

google 搜索 centos 8.3.2011 virtualbox black screen

如果windows开启了hyper-v,再使用virtualbox,就是嵌套虚拟化,导致VB里的虚拟机变慢

virtualbox.org • View topic - CentOS 8 Stream is stuck with blinking cursor during installation on VB 6.1.18

virtualbox.org • View topic - HMR3Init: Attempting fall back to NEM (Hyper-V is active)

image-20210427030340769

如何关闭hyper-v(避免影响VM性能)

在virtualbox6.1.20中安装了puppy linux fossapup64-9.5,结果表现是boot很慢,启动后整个系统卡住,cpu load 高达99%

google搜索”puppy” virtualbox cpu load too high

问题原因还是virtualbox.org • View topic - HMR3Init: Attempting fall back to NEM (Hyper-V is active),搜索vm的log “Attempting fall back to NEM”

帖子里另有两个link,介绍了如何开启hyper-v和关闭它

How to Disable Hyper-V Completely in Windows 10 - Petri

Run Hyper-V, VirtualBox and VMware on same Computer | Tutorials (tenforums.com)

要关闭hyper-v不需要这个帖子如此复杂的步骤,只需要运行以下命令后重启系统

1
bcdedit /set hypervisorlaunchtype off

输入bcdedit,显示信息可能如下

  • hypervisorlaunchtype AUTO,Hypervisor is ON and enabled

  • hypervisorlaunchtype OFF, Hypervisor is OFF and disabled

输入systeminfo ,显示如下信息表上系统支持虚拟化,且hyper-v没有开启

image-20210429184007297

wsl2依赖hyper-v,此时wsl2不能启动

image-20210429190232636

关闭hyper-v后重启virtualbox 和vm puppylinux,运行截图正常如下

image-20210429185539913

在开启hyper-v时,virtualbox右下角这只龟是green turtle,会影响vm的性能