星夜的蓝天

基于Vmware的类wsl体验的虚拟机调教之旅
基于Vmware的类wsl体验的虚拟机调教之旅 wsl 在操作体验上让我非常的满意,然而两代均有一些缺点,一代说...
扫描右侧二维码阅读全文
21
2020/12

基于Vmware的类wsl体验的虚拟机调教之旅

基于Vmware的类wsl体验的虚拟机调教之旅

wsl 在操作体验上让我非常的满意,然而两代均有一些缺点,一代说到底并非完全的linux内核,运行某些程序(nmap,docker)会产生奇怪的问题,二代通过hyper-v完全虚拟化解决了这个问题,但随之而来的方便性就大打折扣,并且与市面上大部分的商业虚拟机(手游模拟机)产生冲突,原因还是那个上古难题——hyper-v与Vmware虚拟化无法共存(这个问题在Vmware16.1得到了解决,但是鬼知道厂商啥时候跟上呢),于是

前言

由于要解决Hyper-V与Vmware共存的问题,那么只能够舍弃wsl2,wsl如何从2代更改回1代本文不详细讲述,下文wsl无特殊解释通指1代wsl。

wsl一个最大的方便之处在于可以通过在命令行下输入wsl命令进入子系统,并且可以通过管道符在wsl命令(linux命令)和windows命令行之间来回切换,但这个完全可以用powershell脚本来解决。

我个人使用的是manjaro,并配置了zsh,如果没有配置zsh可能需要更改一下脚本

配置ssh别名

在powershell下,通过notepad $profile编辑profile文件,我们先预定义几个变量

$name = "your name"
$mjrip = 'your ip'
$mjr = $name+"@"+$mjrip+":"
#如果启动目录在默认windwos32下,就切换到用户目录
if ((Get-Location|Out-String).contains("System32")){
    cd ~;
}

mjr可以自行替换为喜欢的变量名

设置Vmware虚拟机可以访问windows上的文件夹

在vmware中右键想要设置的虚拟机,打开“设置”选项

image-20201221164304143

如图设置,在共享文件夹中启用文件夹共享,然后在文件夹中添加要添加的文件夹或者盘符,这里我添加了除C盘以外的所有盘符,然后点击确定,在虚拟机的/mnt/hgfs中就可以看到共享的盘符,这样我们就实现了在linux下操作windows文件的能力。

自动跳转

然后我们继续添加一个功能,让我们的虚拟机可以在登陆时自动跳转到windows对应在linux上的位置

function mjr{
    $t = (('cd /mnt/hgfs/'+(Get-Location)) -replace ":","")
    $t = $t -replace "\\","/";
    if ((Get-Location | Out-String).contains("C:\Users\")){
        if ($args.count -gt 0){
            ssh $name@$mjrip -t "cd ~;${args};";

        }else{
            ssh $name@$mjrip -t "cd ~;zsh --login;";
        }
    }else{
        if ($args.count -gt 0){
            ssh $name@$mjrip -t "${t};${args};";

        }else{
            ssh $name@$mjrip -t "${t};zsh --login;";
        }
    }
}

这样,我们就可以通过在任意位置打开终端并输入mjr来进入linux对应的目录里开始工作了。

配置SMB服务

参见

https://www.cnblogs.com/misfit/p/10603277.html

配置免密登陆

原理

这个东西就单纯讲一下原理,具体教程参见其他博客,用ssh-keygen生成一对公钥和私钥,把公钥复制到目标虚拟机的~/.ssh/authorized_keys中即可。

创建秘钥对

在powershell中输入如下命令

ssh-keygen -t rsa -C "your_email@example.com"
cd ~/.ssh/
explorer.exe .

会发现其中有几个文件,我们要关注只有id_rsa.pub

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2020/6/29     3:43            668 .ssh.rar
-a---          2020/12/20    21:12            229 config
-a---           2020/6/15     0:50           1675 id_rsa
-a---           2020/6/15     0:50            408 id_rsa.pub
-a---          2020/12/20    21:12           2315 known_hosts

id_rsa.pub中的内容复制到目标虚拟机的~/.ssh/authorized_keys中。如果目标虚拟机没有这个文件就创建一个。

最后修改:2020 年 12 月 21 日 06 : 08 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论

召唤看板娘