【译】在Windows PC上运行基于VirtualBox的Raspbian x86 虚拟机

在PC上安装虚拟机,使用甲骨文公司的 VirtualBox,是一种对用户比较友好的方式。bang的一下,你就可以在你的电脑系统里运行另一个电脑。像,在微软的Windows系统台式电脑里运行一个树莓派电脑。诚然有很多其他产品可以做到这件事,但是VirutualBox是使用起来最简单的之一。

我发现,旅行时突然需要运作一个树莓派项目的时候这很有用。一般情况下,我确实会带至少一个树莓派实物,但是在我的笔记本电脑上可以做到所有的事确实非常方便。

我还写了一个进阶文章how to control the GPIO pins of a real Raspberry Pi Zero, from your Raspbian x86 virtual machine.

当然,如果你至少想要一个Raspbian的桌面环境或事命令行相关的工作,这篇文章的内容就是你要做的事。

事前准备

我是在微软Windows10系统上做这件事;大概Windows7 和Windows8 也可以。当然你也可以在Mac 或Linux系统的电脑上做这件事;如果你使用的是上诉几个操作系统,VirtualBox的安装方式可能有些差异,但是配置虚拟机的部分基本上还是一样。

只需要任何配备了4GB 运行内存(RAM)和多核处理器的PC就可以,但是如果你的处理器支持Intel的VT-X或是AMD的V技术,你将会获得最好的性能体验。如果你的电脑没有这些,或者不知道怎么样查看是否支持,也不需要担心。如果你并没有想要用PC做非常多别的事情,有个至少2GB 运行内存就够了。

下载

你需要下载:

  • Raspbian x86 系统ISO镜像文件

    http://rpf.io/x86iso

  • Oracle VirtualBox

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

    你只需要支持“Windows Host”平台的安装包。你不需要下载附加组件包(Extension Pack)也不需要下载软件开发套装(the Software Development Kit)。稍后我们将使用别的方法安装访客附加组件包(Guest Extension Pack)。

创建虚拟机

像安装其他软件那样安装VirtualBox;找到你下载的文件,并且双击。通常你可以在你浏览器的下载器里发现它,并且会有“在文件夹中打开”或“打开”按钮。

img

启动VirtualBox并且点击“新建”按钮,接着输入:

类型:Linux

系统版本:Other Linux(32-Bit)

点击下一步

内存大小:1024MB

点击下一步

硬盘

选择“现在创建虚拟磁盘”

点击 新建

选择 VDI(VirtualBox 磁盘映像)(默认选项)

点击 下一步

选择动态分配(默认选项)

点击 下一步

选择 8GB

点击 新建

安装Raspbian X86

现在你就可以在VirtualBox的窗口里看到你的虚拟机,状态是“已关闭”。你现在需要把Raspbian x86系统镜像ISO文件载入虚拟的CD-ROM设备里。

img

选择你的虚拟机,点击启动按钮。你讲看到一个临时窗口“选择启动磁盘”。你需要选择前面下载的Raspbian x86的系统镜像ISO文件,并且点击启动按钮

img

使用键盘上的上下键来选择“Graphical install”,接着按下Enter键。一会儿之后,你将看到一个语言的列表,选择你想要使用的语言,接着点击Continue。

配置可能得等一会儿(加载附加组件),给它一些时间。

img

接着你需要决定怎么样使用硬盘分区,为了方便,我建议你选择“Guided-use entire disk”(推荐-使用整个磁盘)(默认选项)并点击Continue(继续)。这将会列出唯一的一个虚拟磁盘,再次点击Continue(继续)。

现在它将询问你分区;再次为了方便,选择“All files in one partition”(所有文件在一个分区)(默认选项)并且点击Continue(继续)。现在你会看到高亮的选项“Finish partitioning and write changes to disk”(“完成分区并且将更改写入磁盘”),直接照着Continue(继续)点下去。

img

分区的最后,它将询问你“Write the changes to disks?”(“将改动写入磁盘”)。

你需要选择“Yes”(“是”)按钮接着点击Continue(继续)。

(如果你选择了“No”(“否”),你就会回到上一步;点击“Continue”(“继续”)你将会重新选择)

现在“Installing the System”(”安装系统“);这将在虚拟磁盘上安装Raspbian文件。这将需要一点时间。假设你选择了“British English”作为你的语言,你可能需要喝杯茶来等,其他的选项你可以去吃点儿东西之类的。

img

最后(3-10分钟或更久之后),你会被询问“Install the GRUB boot loader to the master boot record?”(安装GRUB启动项至主启动记录中)

确认选择了“Yes”(是)(默认选项)这个选项并且点击Continue(继续)。

现在你需要选择/dev/sda 并且点击Continue(继续)。

(如果你不小心点击了“Enter device manually”(自主输入设备),只需要点击Go back(返回),并且重复上面几个步骤)

好消息!”Installation Complete“(”安装完成“)。它会出现一个什么卸载CD-ROM的提醒,不需要在意它,直接点击Continue(继续)就可以了。

它会做一些文件的清理,接着重启。

img

接着你会看到Debian系统的GRUB引导界面,看起来有点奇怪,接着的一些时间,你会看到更多东西看起来让人担心,实际上并不需要担心。

“A fatal error has occurred” (发生了致命的错误)-直接点击OK 。我们需要改变一个设置–很简单的!

点击设置按钮,系统-(在侧边列表)处理器-(上边中间那个标签)然后在Extended Features - Enable PAE/NX(附加功能-允许 PAE/NX)。接着点击OK(确定)。谢天谢地你只需要做一次这个操作,将来的时间它都将会记住这个设置。

现在点击启动,你将看到VirtualBox 的启动界面,一闪而过的GRUB引导界面,接着Raspbian系统将开始启动。

img

现在你就可以使用Raspbian 的PIXEL桌面!但是它有点小并且有点儿拥挤 - 640x480 尺寸。并且,你也不能在虚拟树莓派和原生Windows系统之间使用复制和粘贴。让我们把这些小毛病搞定吧。

Guest Extentions

Raspbian x86系统的大多数功能在虚拟机上都运行的不错。但是通过安装VirtualBox Guest Extentions让你的虚拟树莓派更好,组件可以让虚拟派知道它并非真的,并且运行在另外一个电脑之上。这将允许你重新改变窗口分辨率,并且可以在两个设备之间使用复制&粘贴。

点击任务栏上Raspbian 的标志-Accessories(附件) - Terminal(终端)。

如何在Raspbian Stretch安装BackPorts软件源

在Raspbian Stretch,Raspbian 的默认软件源里就不再提供VirtualBox Guest Extensions 了。你需要安装Debian Backports 软件源。要做到这一步。你需要安装Debian 密钥。输入下列内容,每一行结束的时候按一下Enter键。

sudo apt update
sudo apt install -y dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 7638D0442B90D010
sudo mkdir -p /etc/apt/sources.list.d
echo "deb http://ftp.debian.org/debian stretch-backports main contrib non-free" \
| sudo tee -a /etc/apt/sources.list.d/backports.list
sudo chmod 644 /etc/apt/sources.list.d/backports.list

这么操作之后,如果你还是不能从任何软件源获取Guest Extentions。你可以遵从Andy Bames 的这一指导 install Debian Stretch VirtualBox Guest Additions。需要注意的是Andy的解决方案需要从源代码编译代码,这个操作可能需要一点时间,快慢取决于你电脑的性能。一旦你完成了Andy的方案,你可以跳过下一个部分讲到的apt update / apt install的命令,但是你仍需要使用sudo shutdown -r now来重新启动你的虚拟机。

安装Guest Extensions

在终端中输入下列代码,按下Enter键在每一行结束。

sudo apt update
sudo apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)
sudo shutdown -r now

那些括号都是最基本的小括号,不是花括号或别的括号。如果可以,你可以尽量复制并粘贴进你的终端,而不是输入它们…(你可以启动SSH,但是我们先不要动用这些核设施)。

当出现了“Do you want to continue?”(你要继续么?),点击Y键并按下Enter。它将需要一点时间下载和安装附加组件。

(你有留意到虚拟派如何继承了你真实的PC的互联网连接么?很巧妙,是不是?)

关机命令执行后,虚拟派将重启。

img

你现在可以改变你的窗口到你想要的大小。当然你也可以设置成常见的分辨率,比如1280x720 或是1920x1080 。点击虚拟机的View(查看)- 虚拟显示器 1 - 设定为你想要的分辨率。

如果树莓派桌面系统没有自动的适配新的窗口大小,使用虚拟机的View(查看)-Auto-resize Guest Display(自动重置显示器大小)来修复。你可能需要点击一个虚拟派上正在运行的程序来发现改动,并重置任务栏的大小。

复制和粘贴

默认情况下,这是被关闭的。一旦你安装了virtualbox-guest extensions,你就可以在虚拟机设置的Device(设备)- Shared Clipboard(共享剪贴板)- Bidirectional(双向)来允许从虚拟派和真实PC之间复制和粘贴。

你也可以允许剪贴板通过虚拟机设置按钮-高级-共享剪贴板-双向。当然,前提是Guest Extensions已经安装了。

关机

你可以使用下述的任何一种方式优雅的把你的虚拟机关掉:

  • 使用Raspbian Menu(菜单)- Shutdown (关机)
  • 从终端执行sudo shutdown -h now
  • 关闭虚拟机,并选择“Send the Shutdown signal”(发送关机信号)

共享文件夹

这是可选的。

安装了Guest Extensions之后,你可以在真实PC和虚拟Raspbian之间共享文件夹。例如,你可以使一个你真实PC上的文件夹在虚拟树莓派中可访问。你需要在vboxsf用户组中添加用户pi(参见 Peter WA Wood’s instructions)。打开终端并输入:

sudo adduser pi vboxsf

或者,如果你喜欢也可以用:sudo usermod -a -G vboxsf pi

你需要完全的注销登录并再登录来应用这些改变,你会发现重启是最简单的:

sudo shutdown -h now

之后你就可以共享文件夹,在虚拟机上的设置-共享文件夹,点击添加文件夹的按钮。文件夹将加上sf_的前缀在/media 目录下挂载。

少了啥

有些内容在真正的树莓派上有,但在Raspbian x86中是缺少的:

Micecraft和Wolfram不能使用,我猜测是因为版权问题。而GPIO端口是物理与虚拟之间的问题。但是Sense HAT Emulator(在程序菜单中)看起来是可以运行Python程序。

当然,时刻提醒自己你只是在一个intel架构中运行Raspberry Pi PIXEL 桌面环境,而不是模拟ARM处理器运行的真实的Raspberry Pi系统。所以你不能直接从真实的Raspberry Pi中拷贝可执行二进制文件并期望它能顺利运行-它们不会顺利运行。但是源代码和脚本例如Python,Scratch 和命令会运行,以及任何你从软件源使用apt来安装的程序(因为一些人非常好的志愿者以ARM和Intel架构重新编译了几乎全部的Raspbian软件源)。

如果你需要这些虚拟派中无法实现的功能,你可以直接获取到一个树莓派。接着 use VNC to connect to the Raspberry Pi desktop over the network或是SSH。

启用SSH-虚拟机中的虚拟网络集端口跳转

这一部分给高级用户。

Show how to get SSH working in VirtualBox using virtual forwarded ports

最后。。。

本文译自:

http://www.aoakley.com/articles/2017-07-04-raspbian-x86-virtualbox.php


【译】在Windows PC上运行基于VirtualBox的Raspbian x86 虚拟机
http://example.com/posts/Trs_RaspOnMac/
作者
李俊祎
发布于
2020年4月5日
许可协议
TURE