基于ViutualBox+Ubuntu(Linux)的开发环境搭建

实际在选择虚拟机的时候纠结了要用virualbox还是vmware,初步比较结果:

1.virualbox能够使用vmware的硬盘格式,因此可以自由选择。

2.都能够实现主机和宿主机之间的文件夹共享。

3.virualbox是自由软件,vmware是商业软件。

在功能上二者都能满足条件,但是基于第三点我选择了virualbox。

安装VirtualBox

可自行网上下载,本人使用的是VirtualBox-6.1.22-144080-Win

具体安装过程参考这篇文章(只用看安装的部分):

Windows 10 安装Virtualbox 6.1.22详细教程_virtualbox-6.1.22-144080-win-CSDN博客

注意:上文内说到的扩展包暂不安装,有需要再说。

补充说明:

安装过程中,基本一路向前即可,只不过,安装的位置可以根据自己的情况调整下,我一般不会放在系统盘。

安装后的界面如下所示:

比较简洁。

安装Ubuntu

安装完虚拟机,就要继续安装Linux系统了,是基于Ubuntu版本。

具体安装过程参考这篇文章(只用看安装Ubuntu的部分):

虚拟机||使用VirtualBox安装Ubuntu详细图文教程(安装+调整分辨率+共享文件)_virtualbox安装ubuntu12-CSDN博客

上文内除了安装Ubuntu部分,其他内容都可以不看。

补充说明:

---

内存可以根据自己的情况来设置;

---

磁盘存储空间,一定要在安装的时候就设置好,如果要很大的空间,比如512G,安装时如果给小了,安装完成后再想扩展容量,就很麻烦了;

如果确实安装时的存储空间设置小了,就得删除系统,重新安装。

如何彻底删除?参考这篇文章:

我是想将virtualbox中的Ubuntu系统彻底删除 - CSDN文库

---

存储空间的分配有两种方式,我推荐选择固定大小;

VirtualBox在创建虚拟磁盘时可以选择动态扩展和固定大小两种方式,然后设定磁盘空间大小。

动态扩展类型:

最初只需占用非常小的物理硬盘空间。然后不断增加(最大到当前指定的大小),具体大小根据虚拟电脑的实际需求动态分配。
固定大小类型:

一旦建立就需分配指定大小的物理磁盘空间给该虚拟硬盘使用,性能上有一定优势。建立这种类型的虚拟硬盘需花费较多的时间。

创建500G固定大小的硬盘,特别慢。显示需要38分钟。

耐心等待即可。

设置全屏(安装增强功能)

默认安装的ubuntu分辨率较小,没法全屏。

为了能够全屏显示,一个比较好的方法就是安装自带的增强工具。

所以要先安装增强工具,也不是那么好安装的。

先点击设备-安装增强功能

这时候,没有任何反应。。。。。。

往往会卡在这里。

其实,是已经生成了一个安装盘片,需要我们手动安装。

接下来,回到虚拟机界面点击设置。

然后选择存储-点击盘片-选择增强功能的安装文件

不过,这里又有个坑,那就是不一定能看到VBoxGuestAdditions.iso这个文件,如果有直接选择(别错选了其他的iso文件),如果没有,就要点击这里

点击进去选择即可。

选择后确定无误,就可以重启ubuntu了。

此时,在ubuntu里就会多一个盘符。

双击光盘打开盘符

可以看到有个运行文件,在该文件上右键——在终端打开——输入如下命令:

sudo sh VBoxLinuxAdditions.run

输入密码,等待安装完成即可。

至此,增强工具就会安装完成。

重启系统。

这时会发现 ”视图“ 里的“自动调整显示尺寸”变亮了,点击就可以是显示窗口自动填满界面。

另外,在视图菜单的最后一项“虚拟显示屏1”里也可以选择一个固定的分辨率。

主机和虚拟机之间复制粘贴

默认情况下,主机和虚拟机之间是没法相互复制粘贴的。

安装增强工具后,经过简单设置,就能实现这个功能。

参考这篇文章即可:

virtualBox实现windows和Ubuntu之间的复制粘贴_virtual box主机和ubuntu互相粘贴-CSDN博客

更多略。

配置Samba服务

Samba是个啥?

Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件,以实现文件共享和打印机服务共享。 

在嵌入式系统开发应用平台中,tftp、nfs和samba服务器是最常用的文件传输工具,tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具,samba则是Linux和Windows之间的文件传输工具。

samba是模仿Windows网上邻居的SMB的通讯协议,将Linux操作系统“假装成”Windows操作系统,通过网上邻居的方式来进行文件传输的。

samba最先在Linux和Windows两个平台之间架起了一座桥梁,正式由于Samba的出现,我们才可以在Linux系统和Windows系统之间互相通信,如复制文件,实现不同操作系统之间的资源共享等,可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。

也就是说,如果想要实现主机和虚拟机之间的两个系统之间共享目录文件,我们就可以使用samba服务。

那么,如何在Linux下部署samba服务呢?

直接参考这篇文章:

【详细步骤】Ubuntu安装Samba服务及配置共享文件夹_ubuntu samba-CSDN博客

这篇文章提供相关指令参考:

ubuntu下Samba服务器的搭建_ubuntu下搭建samba服务齐全-CSDN博客

修正:sudo /etc/init.d/smbd start

补充说明:

---

不必像上文中说的那样配置静态ip,使用默认的ip设置方式即可,也不必和主机在同一网段。

---

如何查看samba服务是否已经开启?

使用以下语句:

sudo systemctl status smbd.service

这个命令将显示Samba服务的状态信息,如果服务正在运行,则说明重启成功。如果服务未运行,你可以尝试其他方法来解决问题,比如查看错误日志或重新安装Samba服务。

---

服务开启后,先在主机上ping一下Linux系统;同时在Linux上也ping一下主机;保证二者可以互相访问。

在主机和Linux上都ping下外网(比如www.baidu.com),保证都能访问外网。

---

注意配置虚拟机上网卡的模式,一般都会配置双网卡。

参考:VirtualBox 使用 NAT网络、仅主机(Host-only)网络 实现双网卡上网并与宿主机连接。_virtualbox host only-CSDN博客

这篇文章主要看各种模式之间的区别。

我们实际配置中,两个网卡,一个网卡选择“网络地址转换(NAT)”,用来让虚拟机访问外网;一个选择“仅主机(Host-Only)网络”,用来和主机间互联。

一般只有这样配置之后才能ping通。

---

通过win+R在主机访问时,可以直接输入\\ip,就会跳入共享的目录

注意,通过主机访问,名字都是统一的叫share,不管你在linux里给共享文件夹取的是什么名字,比如,我在linux里取的共享文件夹的名字是myshare

不过在windows下远程访问时,仍然是叫share

不过注意,在该share目录上映射成网络时,需要添加\\ip\share

这里有个问题注意下:

是映射成网络驱动器,而不是在我的电脑那里添加一个网络位置。

windows中添加一个网络位置与映射网络驱动器的区别-CSDN博客

注意,一定要映射成网络驱动器,要不然到时用查看代码工具时访问不到该目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/657401.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matplotlib 实践指南:图形样式、风格与标记探索

目录 前言 第一点:导入模块 第二点:创建二维图 第三点:创建统计图 总结 前言 Matplotlib 是一个强大的数据可视化库,可用于创建各种类型的图形。在本文中,我们将研究如何在 Matplotlib 中设置图形的颜色、风格和标记…

CANDela studio之CDDT与CDD

CDDT有更高的权限,作为模板规范CDD文件。 CDD可修改的内容比CDDT少。 CDDT根据诊断协议提供诊断格式,主要就是分类服务和定义服务,一般是OEM释放,然后由供应商细化成自己零部件的CDD文件。 在这里举个例子,OEM在CDDT…

Dubbo生态之初识分布式事务

1.分布式事务简介 传统的关系型数据库只能保证单个数据库中多个数据表的事务特性。一旦多个SQL操作涉及到多个数据库,这类的事务就无法解决跨库事务问题。在传统架构下,这种问题出现的情况非常少,但是在分布式微服务架构中,分布式…

Golang | Leetcode Golang题解之第117题填充每个节点的下一个右侧节点指针II

题目: 题解: func connect(root *Node) *Node {start : rootfor start ! nil {var nextStart, last *Nodehandle : func(cur *Node) {if cur nil {return}if nextStart nil {nextStart cur}if last ! nil {last.Next cur}last cur}for p : start; …

NDIS协议驱动(四)

NDIS 定义对象标识符 (OID) 值,以标识适配器参数,其中包括设备特征、可配置设置和统计信息等操作参数。 协议驱动程序可以查询或设置基础驱动程序的操作参数。 NDIS 还为 NDIS 6.1 及更高版本的协议驱动程序提供直接 OID 请求接口。 直接 OID 请求路径支…

5-时间、日期与组合框

时间、日期与组合框 1 日期时间1.1 日期时间相关的类1.2 日期、时间和字符串的转换1.3 例子 2、组合框2.1 QComboBox2.2 QPlainTextEdit2.3 案例 3、自定义右键菜单 1 日期时间 1.1 日期时间相关的类 QTime 时间数据类型,仅表示时间,如:15:…

nano机器人2:机械臂的视觉抓取

前言 参考链接: 【机械臂入门教程】机械臂视觉抓取从理论到实战 GRCNN 通过神经网络,先进行模型训练,在进行模型评估。 机械臂逆运动学求解 所有串联型6自由度机械臂均是可解的,但这种解通常只能通过数值解法得到,计算难度大&am…

Python | Leetcode Python题解之第118题杨辉三角

题目: 题解: class Solution:def generate(self, numRows: int) -> List[List[int]]:ret list()for i in range(numRows):row list()for j in range(0, i 1):if j 0 or j i:row.append(1)else:row.append(ret[i - 1][j] ret[i - 1][j - 1])ret…

如何批量提取pdf文件名?批量提取文件夹里的文件名,只要用对方法!

在数字化时代,PDF文件已经成为我们日常工作中不可或缺的一部分。然而,随着PDF文件数量的不断增加,如何高效地管理这些文件成为了一个挑战。批量提取PDF文件名,就是解决这一问题的关键所在。本文将为你介绍几种实用的方法&#xff…

【Game】Powerful

文章目录 【小伙伴】隐藏小伙伴 【百趣集】【人物属性点】【宠物打造】【奇遇】【钓鱼】 【小伙伴】 刷新位置 小伙伴等级详情 克制关系 隐藏小伙伴 1、仙缘小伙伴(6种) 遇到仙缘驭宠师然后进入战斗抓取 107、七彩仙凤 108、小青兔 109、小布 110、黑腹蛛…

基于jeecgboot-vue3的Flowable增加表单功能(二)

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 接上一节 6、增加一个types.ts 类型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一个getForm…

【Java】【python】leetcode刷题记录--双指针

双指针也一般称为快慢指针,主要用于处理链表和数组等线性数据结构。这种技巧主要涉及到两个指针,一个快指针(通常每次移动两步)和一个慢指针(通常每次移动一步)。快指针可以起到’探路‘的作用,…

【Mybatis】映射文件中获取参数的符号#{}和${}的区别

在xml映射文件中获取参数的符号都是用的#{}的方式,其实Mybatis还支持另一种符号来接收传递过来的参数值,就是${},他们是区别就在与底层使用jdbc的statement不一样 #{}对应的是PreparedStatementd对象来执行sql语句 ${}对应的是Statement对象…

C语言-01_HelloWord

文章目录 1.C程序运行机制2.HelloWorld的剖析① main()② 函数体③ printf()④ 标准库、头文件 3.输出3.1 printf()标准格式3.2 占位符3.3 输出格式 1.C程序运行机制 过程1:编辑 编写C语言源程序代码,并已文件的形式存储到磁盘中。源程序文件以“.c”作…

100个 Unity小游戏系列五 -Unity 抽奖游戏专题三老虎机游戏

一、演示效果 二、知识点讲解 2.1 布局 public void CreateItems(SlotsData[] slotsData){isInited false;slotsPrizeList new List<SlotsData>();for (int i 0; i < slotsData.Length; i){var item slotsData[i];slotsPrizeList.Add(item);}float bottomY -it…

AI赋能数字人:打造与语音节奏完美匹配的高质量手势动画

在数字化时代,人机交互正以前所未有的速度进化,而AI数字人的发展正是这一进程中的重要里程碑。近期,一项旨在根据语音内容自动生成匹配手势的技术方案引起了广泛关注,该技术不仅增强了数字人的表现力,也为远程沟通、教育、娱乐等多个领域带来了革新性的应用潜力。本文将深…

手机版AI写作软件哪个好用?5款AI写作软件分享

在这个快节凑的时代&#xff0c;人们对于高效、便捷的创作方式很是追求。尤其是在人工智能技术发展迅速的今天&#xff0c;AI写作软件的出现&#xff0c;让很多自媒体创作者都会想到在手机上面进内容创作&#xff0c;这样不仅能提高工作效率&#xff0c;而且工作的自由度会更高…

APM2.8如何做加速度校准

加速度的校准建议准备一个六面平整&#xff0c;边角整齐的方形硬纸盒或者塑料盒&#xff0c;如下图所示&#xff0c;我们将以它作为APM校准时的水平垂直姿态参考&#xff0c;另外当然还需要一块水平的桌面或者地面 首先用双面泡沫胶或者螺丝将APM主板正面向上固定于方形盒子上&…

农产品产品防伪防窜货+二维码防伪+溯源系统源码全平台一物一码数字化防伪防窜货和溯源查询系统

农产品产品防伪防防窜货二维码防伪溯源系统源码全平台一物一码数字化防伪防窜货和溯源查询系统 产品防伪防防窜货二维码防伪溯源系统源码&#xff0c;该系统采用最简单易用的phpMySQL进行搭建&#xff0c;拥有完善的网站前后台&#xff0c;通过对每件产品生产线上的单品、二级…

【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;数据结构与算法刷题系列&#xff08;C语言&#xff09; 期待您的关注 目录 一、问题描述 二、解题思路 方法一:计数器方式 方法…