为大家介绍一款免费的虚拟机软件——Oracle VM VirtualBox,一个跨平台的虚拟化应用程序。它可以安装在您现有的基于 Intel 或 AMD 的计算机上,无论它们运行的是 Windows、Mac OS X、Linux 等操作系统。其次,它扩展了现有计算机的功能,使其可以同时在多个虚拟机中运行多个操作系统。例如,您可以在您的 Mac 上运行 Windows 和 Linux,在您的 Linux 服务器上运行 Windows,在您的 Windows PC 上运行 Linux 等等,所有这些都与您现有的应用程序一起运行。您可以安装和运行任意数量的虚拟机。唯一实际的限制是磁盘空间和内存。
Oracle VM VirtualBox 看似简单,但也非常强大。它可以在任何地方运行,从小型嵌入式系统或台式机一直到数据中心部署甚至云环境,重要的是它完全免费且功能不输PD和VM。
VirtualBox 有许多不同的软件包,安装取决于您的主机操作系统。如果您以前安装过软件,安装应该很简单。在每个主机平台上,Oracle VM VirtualBox 都使用最常见且易于使用的安装方法。Oracle VM VirtualBox 分为以下组件:
下载完最新的 VirtualBox 安装包后,点击安装包会弹出如下界面。
如果已经安装过 VirtualBox,先退出正在运行的 VirtualBox,然后点击右下角的VirtualBox_Uninstall.tool进行卸载。然后会弹出一个卸载 VirtualBox 的窗口,输出 yes 确认卸载,卸载完成后关闭窗口。如果从未安装过,可以直接点击 VirtualBox.pkg 进行安装。
查看软件信息。
在允许 VirtualBox 的安全性策略后,还需要重启 MacOS 才能启用 VirtualBox 新的系统扩展。
直到此时,VirtualBox 软件才算安装成功。
下载CentOS 8 iso安装包在CentOS官方网站,下载当前最新版本,链接如下所示,选择国内镜像站点。
阿里CentOS 8 | mirrors.aliyun.com/centos/8-stream/isos/ |
清华CentOS 8 | mirrors.tuna.tsinghua.edu.cn/centos/8-stream/isos/ |
CentOS 8官网 | isoredirect.centos.org/centos/8/isos/ |
CentOS 8-stream官网 | isoredirect.centos.org/centos/8-stream/isos/x86_64/ |
版本 | 描述 |
---|---|
X86_X64 | 带64位的32位扩展版(一般安装这个) |
ARM64 (aarch64) | 嵌入式,适用于微端(树莓派,机械臂,机械中控) |
IBM Power (ppc64le) | 专用于IBM POWER服务器 |
选择合适版本下载。各种版本介绍,X.Y.Z
仅仅代表版本不同而已。
版本 | 说明 |
---|---|
CentOS-X.Y.Z-x86_64-boot.iso | 一个纯粹的安装程序镜像,不包含任何的软件安装源 |
CentOS-X.Y.Z-x86_64-boot.iso.manifest | 依赖库文件 |
CentOS-X.Y.Z-x86_64-dvd1.iso | 标准安装镜像,含所有软件包,一般使用这个,含系统和常用库 |
CentOS-X.Y.Z-x86_64-dvd1.iso.manifest | 系统与依赖库文件 |
首次启动 VirtualBox 时,会显示如下窗口,此窗口称为VirtualBox Manager。左侧窗格稍后将列出您的所有虚拟机。如果尚未创建任何虚拟机,此列表会显示为空。工具按钮提供对用户工具的 访问,例如虚拟媒体管理器。右侧的窗格显示当前所选虚拟机的属性。如果您还没有创建任何虚拟机,因此窗格会显示欢迎消息。右侧窗格中的按钮用于创建和使用 VM。
在 VirtualBox 管理器窗口中 单击新建按钮,输入名称,VirtualBox 会自动加载与之对应的类型与版本,然后点“继续”按钮。
配置内存大小。虚拟机内存大小应根据宿主机内存大小以及宿主机性能进行适当的配置,若是宿主机内存小于2G,则虚拟机内存大小最好选择512M或者1024M;若是宿主机内存大于等于4G,则可以选择2048M及其以上,但最好不要超过宿主机内存的二分之一。
创建虚拟硬盘。如果是第一次使用 Oracle VM VirtualBox,需要创建一个新的磁盘映像。窗口中显示的下拉列表列出了 VirtualBox 当前记住的所有磁盘映像。这些磁盘映像当前附加到虚拟机,或已附加到虚拟机。或者,单击 下拉列表旁边的小文件夹图标。在显示的文件对话框中,您可以单击添加以选择主机磁盘上的任何磁盘映像文件。
设置虚拟硬盘文件类型,选择默认的。
虚拟硬盘存储在物理硬盘的配置,动态分配
为了防止物理硬盘(主机操作系统)被填满,VirtualBox 限制了映像文件的大小,但映像文件必须足够大以容纳操作系统的内容和您要安装的应用程序。
单击Create,创建新的虚拟机。虚拟机显示在 VirtualBox Manager 窗口左侧的列表中,名称为最初输入的名称。
首先,配置其光驱加载镜像文件。"存储"项中,选择“没有盘片”,在右则分配光驱项右则点光盘图标,再点“选择一个虚拟光盘”,然后在弹出文件选择窗口中,选择centos的镜像文件。按下图点击后选中前面已下载好的 centos 镜像文件即可。
对于没有安装过任何操作系统的虚拟机,还需配置虚拟机启动顺序。按下图操作顺序,将光驱设为第一启动顺序。如果是已经安装完成的,还需将启动顺序调整回原样。
在设置窗口的常规下,您可以配置虚拟机最基本的方面,例如内存和基本硬件。
在常规设置类别 的基本选项卡中 ,您可以找到以下设置:
高级选项卡 中提供以下设置
在说明选项卡上,您可以输入虚拟机的描述。这对机器的功能没有影响,但您可能会发现此空间有助于记下诸如虚拟机配置和已安装到其中的软件之类的内容。要在描述文本字段中 插入换行符 ,请按 Shift+Enter。
虚拟盘加密选项卡使您能够加密附加到虚拟机的磁盘。要启用磁盘加密,请选中 启用磁盘加密复选框,设置可用于配置用于加密的密码和加密密码。
在主板选项卡上,可以配置通常位于真实计算机主板上的虚拟硬件。
在处理器选项卡上,您可以配置虚拟机使用的 CPU 的设置。
在此选项卡上,您可以将 VirtualBox 配置为使用您的主机 CPU 支持的硬件虚拟化扩展。
在大多数情况下,VirtualBox 选择合理的默认值,具体取决于在创建虚拟机时选择的操作系统。但是,在某些情况下,可能需要更改预配置的默认值。
在录制选项卡上,可以为虚拟机启用视频和音频录制并更改相关设置。请注意,可以在 VM 运行时启用和禁用这些功能。
VM 设置中的存储类别使您能够将虚拟硬盘、CD/DVD 以及软盘映像和驱动器连接到虚拟机。在真实计算机中,所谓的存储控制器将物理磁盘驱动器连接到计算机的其余部分。同样,VirtualBox 将虚拟存储控制器呈现给虚拟机。在每个控制器下,显示了连接到控制器的虚拟设备,例如硬盘、CD/DVD 或软盘驱动器。
根据您在创建 VM 时选择的虚拟机操作系统类型,新 VM 包括以下存储设备:
虚拟机设置窗口中 的声音部分确定虚拟机是否会检测连接的声卡,以及是否应在主机系统上播放音频输出。要为虚拟机启用音频,请选中 启用声音复选框。可以使用以下设置:
虚拟机设置窗口中 的网络部分使您能够配置 VirtualBox 如何将虚拟网卡呈现给您的 VM,以及它们的运行方式。首次创建虚拟机时,VirtualBox 默认启用一个虚拟网卡并为其选择网络地址转换 (NAT) 模式。这样,可以使用主机的网络连接到外部世界,而外部世界可以连接到虚拟机上的服务。此默认设置适用于大多数 VirtualBox 用户。但是,VirtualBox 在虚拟化网络方面非常灵活。它支持每个虚拟机的许多虚拟网卡,前四个虚拟网卡可以在 VirtualBox Manager 窗口中进行详细配置。
NAT的英文全称是 Network Address Translation ,中文意思是网络地址转换,是一个IETF标准,允许一个整体机构以一个公用IP出现在Internet上。顾名思义,就是一种把内部私有网络地址翻译成合法网络地址的技术。Virtualbox中提供的两个选项:网络地址转换(NAT)和NAT网络,其实际上都是NAT方式,区别在于第一种使用的Virtualbox内已经建好的NAT网络,其网段为10.0.2.0/24,该网络不允许用户管理。NAT网络是用户自己创建的网络,通过主机网络管理器可以创建自己的NAT网络,并指定地址范围。
Host-only模式是指虚拟机的网卡只有宿主机可以访问,在搭建只需要内部通信的网络环境时,可以选择这种模式。可以在全局配置中设置Host-only可以分配的地址范围。
从字面上看就容易理解,这种模式不会创建用户自己的网络,这种方式共享宿主机的网络,具备与宿主机一样的网络连通性。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。但也带来对网络的访问控制能力比较弱,个人觉得仅适用于需求比较简单的场景。
VirtualBox 的内部网络,本质上是提供一个构建网络所需要的基础设置(并没有创建网络),虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。如果需要额外的网络功能,可通过配置连接其上的虚拟机来提供。
这是平时很少使用的模式,共享相同的通用网络接口,允许用户选择能被 VirtualBox 包含或者分布在一个扩展包里的驱动。个人理解适用于需要自己写网络驱动的场景。
VirtualBox 支持在虚拟机中使用虚拟串行端口。虚拟机设置窗口中 的USB部分能够配置 VirtualBox 的复杂 USB 支持。VirtualBox 可以使虚拟机直接访问主机上的 USB 设备。为此,VirtualBox 为来宾操作系统提供了一个虚拟 USB 控制器。
共享文件夹能够轻松地在虚拟机和主机之间交换数据,这类似于在 Windows 网络中使用网络共享的方式。
用户界面部分可以更改此 VM 用户界面 的某些方面。
选择新配置的虚拟机,点击启动(注意:光驱中配置了系统镜像)。
首次启动VM 时, 会显示首次启动向导,需要安装镜像,此处选择第一个和第二个都可以,或敲击回车键立即安装。可以在 VM 运行时调整 VM 窗口的大小,如下图右下角所示。此时需要等待,然后一系列解压进度,一直等到出现安装信息配置界面。
选择安装语言,然后点击"继续" 按钮进行下一步。
这里可根据个人需要选择需要安装的软件。
根据自己的需要选择(需要图形化界面可以选择带GUI的服务器)
此步非常重要,是确保系统安装后可以正常联网和访问的一个图形化配置(此处和之前的版本用脚本配置不同,用图形化界面更加操作便捷)。
参考上步自动获得的默认路由和DNS地址,重新改为手动配置,以方便后期可以使用终端工具固定连接访问:
关于分区的几个目录的说明:
路径 | 说明 |
---|---|
/ | 根分区 |
swap | 交换分区,可以当虚拟内存使用 |
/boot | 存储系统的引导信息和内核信息 |
/usr | 存储系统应用软件安装信息 |
/var | 存储系统日志信息 |
在系统安装时,可点击用户设置,进行用户创建。包括两部分,一部分是 root用户,一个是正常用户。root用户在centOS登录时不会默认加载,创建后需要自己记住密码,登录时可以手动输入用户名和密码登入root用户。而正常用户,系统会默认加载用户名到时输入密码即可。
root用户必须设置
按照上一节步骤,完成操作系统配置后,点击“开始安装”,等待系统完成配置,如下图所示。
此时先不要点击重启按钮(需要更改虚拟机启动顺序后才能正常启动否则会重复进入系统安装操作)。先关闭此虚拟机窗口,点击关闭窗口按钮:
操作后,重新设置该虚拟机的第一启动顺序为:硬盘启动
稍等一会儿就会进入登录页面,点击上部的用户名可进入密码输入界面(点击 未列出?按钮可进入自行输入用户名和密码界面),然后使用刚才创建的用户以及对应的口令登录,按照提示进行操作。
此时表示全新的centOS8已经安装完毕,可以正常提供服务了。点击左上角的"活动"图标,可以看到提供的基本工具,首先可以打开火狐浏览器看看是否可以正常上网。出现下图,则表示当前虚机系统可以正常连接外网。
其他功能就不再一一介绍,大家可以自己去体验。
CentOS 安装完成,默认无法访问网络。为了使虚拟机能够上网,需要修改一下配置。步骤如下:
/etc/sysconfig/network-scripts/
目录,再执行 ls
,查看并确认自已电脑的网卡接口名,每个人的电脑可能不一样,有的是eth0,有的是etchs33,我的是enp0s3。vim ifcfg-en0s3
,去查看并编辑网络配制信息。需要修改的内容如下所示:# 修改动态ip static为静态IP
BOOTPROTO=dhcp
# 从no改成yes。设置开机自动生效
ONBOOT=yes
nmcli c reload
重启网络,此时可以通过 ip addr
命令查看本机的IP的地址。首先,在VirtualBox左侧虚拟机列表中,找到想要设置的虚拟机名称,点击右键,选择设置->网络->网卡1,启用网络连接,连接方式选择:网络地址转换(NAT),界面名称处选择宿主机中对应的可正常上网的网卡,其中高级设置中的“混杂模式”选择全部允许。
其次,选择设置->网络->网卡2,启用网络连接,连接方式选择:桥接网卡,界面名称处选择宿主机中对应的可正常上网的网卡,其中高级设置中的“混杂模式”选择全部允许。
最后需要给网卡设置固定ip,操作步骤大致如上,区别的就是修改的文件与内容,文件内容如下:
# 修改为静态IP dhcp为动态ip none为无
# BOOTPROTO=static
# 从no改成yes。这里表示是否激活网卡,只有在激活状态才可以连接上网络
ONBOOT=yes
# 为虚拟机设置一个静态IP
IPADDR=192.168.1.166
# 设置网卡网关地址(需要和宿主机一致)
GETWAY=192.168.1.1
# 设置子网掩码
NETMASK=255.255.255.0
修改完成后,重启网络服务 nmcli c reload
(有时候需要重启虚拟机)
openssh-server
,在终端中输入 yum list installed | grep openssh-server
。显示已经安装了 openssh-server,如果又没任何输出显示表示没有安装 openssh-server,通过输入 yum install openssh-server
来进行安装openssh-server。Port 22
ListenAddress 0.0.0.0
ListenAddress ::
# 允许远程登录
PermitRootLogin yes
# 开启使用用户名密码来作为连接验证
PasswordAuthentication yes
sudo service sshd start
ps -ef | grep sshd
systemctl enable sshd
。systemctl list-unit-files | grep sshd
,查看是否开启了sshd 服务自启动命令 | 说明 | |
---|---|---|
进程与状态相关 | systemctl status firewalld | 查看防火墙运行状态 |
systemctl stop firewalld | 关闭防火墙 | |
systemctl start firewalld | 启动防火墙 | |
systemctl restart firewalld | 重新启动服务(不管当前服务是启动还是关闭) | |
systemctl reload firewalld | 重新载入配置信息而不中断服务 | |
systemctl disable firewalld | 禁止防火墙随系统自启动 | |
systemctl enable firewalld | 设置防火墙随系统开机自启动 | |
firewall-cmd --state | 查看防火墙状态(root权限) | |
firewall-cmd --reload | 更新防火墙规则(root权限) | |
firewall-cmd --list-ports | 查看所有打开的端口(root权限) | |
firewall-cmd --list-services | 查看所有允许的服务(root权限) | |
firewall-cmd --get-services | 获取所有支持的服务(root权限) | |
端口控制 | ||
firewall-cmd --query-port=8080/tcp | 查询端口是否开放 | |
firewall-cmd --add-port=8080/tcp --permanent | 永久添加8080端口 | |
firewall-cmd --remove-port=8800/tcp --permanent | 永久删除8080端口 | |
firewall-cmd --add-port=65001-65010/tcp --permanent | 永久增加65001-65010 |
如果不想默认启动图形化界面的话,可以修改默认的启动模式,因为图形化界面还是比较占用内存的,使用命令如下。
# 将默认级别修改为多用户文本模式
systemctl set-default multi-user.target
# 将默认级别修改为图形用户界面模式
systemctl set-default graphical.target
reboot
在 MacOS 运行 VirtualBox 中的虚拟机报错,报错信息如下:
这种大版本的升级可预料到的会发生一些内核上的变化,而从 VirtualBox 的报错信息来看,也是明确地指出了内核方面的信息。遇到这样的问题,可以下载最新的 VirtualBox 软件并将原先安装的卸载,重新安装最新版本。
如果以上的方法尝试之后没有解决问题,这很有可能是你的机器的 SIP(系统集成保护) 设置有问题。在打开的终端命令行输出 csrutil status
可以看到 macOS 当前的 SIP 都被禁用了。然后执行 csrutil clear
重置之前的 SIP 设置。
$ csrutil status # 查看当前的 SIP 状态
$ csrutil clear # 清除当前的 SIP 设置
执行 csrutil clear 后,需要重启系统生效,直接在命令行输入 reboot 进行重启。重启 macOS 后,打开终端,输出 csrutil status 查看 SIP 的状态,可以看见现在 SIP 已经是 enabled 状态了。
$ csrutil status
System Integrity Protection status: enabled.
进入配置文件内,删除所有的.repo文件(也可以备份)
# 进入配置文件夹
cd /etc/yum.repos.d/
# 删除旧的配置文件
rm *.repo
#输入"y"回车确认
ls确保该目录下的.repo文件已完全删除,下载可以用的.repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
如果你没有安装wget,也可以用下面命令:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
运行 yum makecache
生成缓存。