不久前,我决定将我的计算环境从 Mac Mini PowerPC 迁移到 Raspberry Pi Model 2。本文介绍了我的迁移原因以及我是如何完成迁移的。虽然有些地方相当技术性,但如果您正在考虑从现有系统切换到某种绝对精简的系统,那么在做出这一飞跃之前,您需要了解一些事项。还有许多链接可以点击,这些链接将引导您访问我提到的软件和应用程序。
请享用!
告别 Mac
我不得不承认,我从来都不是真正的 Apple 粉丝,尤其是在 2006 年短暂(且最终令人不满意的)迷恋塑料聚碳酸酯 MacBook 之后。虽然它的设计非常精美,并且软件“开箱即用”,但当它在保修期过后不久就决定报废时(显然是设计缺陷),我还是可以理解地感到沮丧。唉。
我发誓永远不再“投资” Apple 机器——直到 2012 年我在 eBay 上发现了一台二手的 Mac Mini PowerPC,价格约为 100 美元。它在 2005 年是全新的,但显然是翻新过的。“我有什么损失呢,尤其是这个价格?”我问自己。没有人回答,所以我下了最后一分钟的出价,赢得了它,并再次投入了大约相同的金额,将内存升级到 1GB 并在 DVD 上购买了操作系统。OS X 版本是 10.4.7 Tiger,架构是 Power PC。它很慢,但很可靠,我很满意。它也不需要太多电力;满载时约为 60 瓦,这是一个 bonus。我花了许多快乐的时光摆弄它,并试图找到在该老旧设备上受支持的软件。
但可以预见的是,随着我的计算需求增长,Mac 变得越来越老,它开始变得明显变慢,我意识到即使是简单的任务——例如要求它运行 Web 浏览器并显示 HTTPS 页面——也给它带来了问题。当我最终设法为它找到防病毒软件时,我才意识到 Mini 的散热风扇有多吵,因为 CPU 在额外的负载下挣扎。
快速检查性能监视器显示了数千个内存分页错误,我意识到我的老朋友很快就要报废了。当然,这意味着要寻找替代品,而那时乐趣开始了。
另一台小型计算机
我的主要问题是我没有太多预算。我再次查看了 eBay,发现许多 Mac Mini 在售,价格都在 500 美元左右,其中许多是早期的基本配置 Intel 机器,就像我的旧 Mac 一样,人们只是用腻了。基本上,我想要像旧 Mini 一样的东西,理想情况下具有相似的功耗。新的当然是不可能的。
让我声明一下,我的计算机要求相当不高,对于照片/图形工作,我还有另一台计算机,它像无底洞一样消耗电力,并释放出足够的热量来让我在冬天保持温暖。然后我开始考虑 Raspberry Pi Model 2。在您嘲笑之前,我已经有大约六台这样的设备在运行各种服务器,而且它们运行良好。一台运行小型 Web 服务器,另一台运行邮件服务器,等等。每台设备的价格约为 30 美元,大多数都使用廉价的 microSDHC 卡,因此如果一台出现故障,我可以轻松地将其换成另一张,而且我通常可以在当地超市购买到合适的卡——当您的笔记本电脑硬盘驱动器发生故障时,尝试这样做!我还有一个 Netgear ReadyNAS 102,配有两个 2TB 硬盘驱动器,用作我的大容量存储。
突然间,我的计划看起来毕竟可能是可行的!
详细配置
规格配置有点不费脑筋:Model 2 Pi 标配 1GB 内存,以太网最大运行速度为 100Mbps,时钟速度为 900MHz,有四个 USB 端口,仅此而已,伙计。您可以超频它,但我从未想过尝试这样做,原因有很多。
我的备用抽屉里有一个 Pi,所以没问题。我订购了一个由 Flirc 制造的豪华铝制外壳,报价 20 美元,并适时地插入了 Pi。电源单元 (PSU) 必须是真正的 2 安培设备,而且,我又有一个备用的。如果您认真对待您的 Pi 所有权,我推荐 Anker 40W 五端口桌面充电器:它具有智能电源管理,我正在用一个单元运行五台 Pi。顺便说一句,如果您不小心使用了无法提供所需电流的 PSU,您会一直看到屏幕右上角出现一个方形的多色图标,所以请注意。
microSDHC“磁盘”更成问题。我总是使用 SanDisk,这次我想要一些快速的东西,尤其因为这将是一台“桌面”机器。最后,我选择了 SanDisk 8GB Extreme Pro UHS-1 卡,它承诺高达 90 到 95 Mbps 的写入/读取性能。“8GB?空间不大啊,”我听到你们 Windows 用户在喊,而且由于这是 Linux,所以不需要那么大。
我设想的方式是,我会正常设置 Pi,并主要将其用作启动盘。我会将我的所有文档和媒体文件托管在网络附加存储 (NAS) 盒子上,一切都会很好。NAS 共享将通过网络文件系统 (NFS) 访问,我只需将它们挂载为 Pi 上的目录即可。
很早的时候,我就选择将我的整个主目录移动到 NAS 上,并且这运行良好,但有一些怪癖。我面临的问题是 Pi 的怪癖,虽然我确信有一个解决方法,但我希望在 Mac 最终报废之前启动并运行它。当 Pi 启动时,它似乎在序列的后期才启用网络部分,我发现我无法进行 NFS 挂载,因为网络接口尚未启动。与其使用棘手的脚本来解决问题,我决定在成功启动后登录后手动挂载 NFS 共享。这似乎有效,而且这就是我现在使用的解决方案。现在我已经有了一个基本策略,是时候在“实际”机器上实施它了。
这就是使用 Raspberry Pi 的美妙之处——您可以快速拼凑一个测试平台,并在 30 分钟内启动并运行一个系统。
关于视频,我购买了一根 HDMI 转 DVI 电缆,用于我的戴尔显示器,在 GUI 桌面模式下,它显示为 1280x1024——对于我的用途来说足够好了。如果您有一个巨型平板电视,您始终可以使用它代替。
我的软件环境
操作系统
我最终决定选择 Arch Linux for ARM 7H 作为操作系统。我是 Raspbian 的老用户,但我不需要它附带的教育软件(我还有其他 Pi 用于此目的)。Arch 提供了一个最小的环境,但功能齐全、支持良好且功能强大;它还拥有大量的可用软件。在初始安装之后,我只使用了 1.2GB 以上的空间,即使现在,我的所有软件都在 microSDHC 上,我也只使用了 8GB 卡的 2.8GB。请注意,Pi 2 官方是 Arch Linux ARM 7,而不是 6。
桌面
我想要一个图形桌面环境(即使我是一个命令行爱好者),但它需要与精简的理念保持一致。我以前使用过 LXDE,并且对它感到满意,所以我安装了它;GNOME 和 KDE 都太大了。
Web 浏览器
Web 浏览器有点问题,但在尝试了默认的 Midori、Epiphany 和其他几个浏览器之后,我决定选择 Firefox。它有点臃肿,但它很好地遵循了标准,如果您要对 LibreOffice ODT 文档进行数字签名,您无论如何都需要它。在这种性能的机器上的一个问题是基于 Web 的广告对整体内存使用量造成的巨大损失。事实上,一个广告过多的页面可能会导致浏览器完全停止,因此我必须让这些广告消失。一种方法是安装广告拦截插件,但这又是对可用内存的又一次打击,因此需要一种更简单的方法。
由于这是一个 Linux 盒子,我只需下载一个 广告拦截 hosts 文件。这是一个了不起的社区工作成果,它包含超过 15,000 个主机名,基本上适用于任何投放广告的服务器。所有条目都指向 IP 地址 0.0.0.0,因此不会浪费时间,您的带宽又属于您自己了。它是免费下载的,可以添加到现有 hosts 文件的末尾。当然,就我而言,主要价值在于页面加载时间更快得多。
下面的屏幕截图显示了无广告的 Firefox,并覆盖了 ELinks 中的同一页面。

两者都没有广告,但如果您不需要 Firefox 渲染的所有花哨的视觉效果,ELinks 将提供超级干净的体验。(通常,Firefox 图像中的所有空白区域都填充了广告。)ELinks 浏览器是一个有趣的混合浏览器,它主要基于文本,类似于经典的纯文本 Lynx 浏览器。
消息传递
在 Pi 上安装 Microsoft Skype 将是过度且从安全角度来看是不希望的,因此我决定选择 Jabber/XMPP 客户端 Psi。Psi 的优势在于它没有大量的依赖项,而且它也运行得非常好。它可以轻松参与多人聊天,我还有另一台 Pi 托管 Jabber 服务器来测试它。不幸的是,没有字符模式版本,而且我尝试过的大多数基于文本的客户端都存在问题,因此目前情况仅限于 GUI。没关系;它运行良好,并且不占用太多资源。
电子邮件
我还尝试了许多电子邮件应用程序:这很容易成为最重要的应用程序。最终,我选择了 Claws Mail。遗憾的是,它不支持 HTML 邮件,但它非常可靠。我不得不说,由于一些未解决的版本问题,我仍然无法让 GNU Privacy Guard (GPG) 插件正常工作,但我总是可以在终端中加密消息,如果需要的话。
音频
音乐对我来说很重要,我选择了 SMPlayer 作为我的媒体播放器。它支持许多选项,包括本地和网络文件的播放列表以及互联网广播流媒体。它很好地完成了工作。
视频
我不会详细介绍视频播放器。考虑到 Pi 的硬件规格,即使在同一网络上可靠地播放视频流也是有问题的。我决定,如果我想看视频,我还有其他更适合它的设备。我确实尝试并试验了 /boot/config.txt 中的 gpu_mem 设置,将其从默认的 64MB 切换到 96MB。我准备为视频播放器借用一些应用程序内存,但即使这样似乎也没有使其运行良好。最后,我保留了该设置,以便桌面环境可以更流畅地运行,到目前为止,我还没有遇到问题。具有讽刺意味的是,我还有另一台安装了 DLNA 服务器的 Pi,它可以非常出色地流式传输视频——不仅可以流式传输到一个客户端,还可以流式传输到多个客户端。不过,为了辩解,它没有桌面环境来竞争。所以,目前,我不费心尝试播放视频。
图像处理
我需要进行简单的、轻量级的照片和图像编辑,而且我从之前的经验中知道,GIMP 和类似的软件包会让 Pi 崩溃。我找到一个名为 Pinta 的应用程序,它类似于增强版的 Microsoft Paint,但功能更强大。作为一个拥有大量图像收藏的人,我也需要一个幻灯片应用程序。经过大量评估,我决定选择 feh。通常从 GUI 桌面中的终端运行,它具有令人难以置信的选项阵列,可以帮助您制作图像幻灯片,而且,它对内存的要求也很低。
办公套件
然后是办公套件。在旧的 Mac Mini 上,我很高兴(并且合法地)运行着 Microsoft Mac Office 2004 的副本,我真的很遗憾失去它。我只需要一个 Microsoft Word 和 Excel 的等效程序,但我必须考虑到 Pi 的局限性。当然,有独立版本的文字处理器和电子表格应用程序,但没有什么真正让我有信心可以编辑功能齐全的文档。
我已经知道 LibreOffice,但我对其 Java 运行时环境 (JRE) 要求表示怀疑,或者我曾经这样认为。值得庆幸的是,JRE 是可选的,只要我不想使用(数据库)连接池宏,就没有必要启用它。我还尽可能多地使用了内置选项,拒绝了皮肤和主题;这使整体内存占用量降至合理水平,嘿,我现在正在 LibreOffice Writer 上写这篇文章!我采取的态度是,如果它有内置主题,就使用它!
这是当前来自 GUI 桌面的 内存概述(以 MB 为单位)

杂项
我已经安装的其他桌面软件(不多,因为我希望保持最小安装)是
总的来说,整个设置按预期工作。我发现它的性能良好,如果有时有点慢,但这是可以预料的,因为它运行在 Raspberry Pi 上,时钟速度为 900MHz,内存为 1GB。只要您意识到并准备好接受这些限制,您就可以拥有一个廉价、非常实用的系统,而不会占用您所有的桌面空间。
字符不足
Pi 桌面的生活不仅仅是 GUI;它也是一个非常有能力的命令行环境,如果您需要的话。作为一名 Linux 开发人员和极客,我对字符模式环境非常熟悉,而这正是 Pi 真正发挥作用的地方。至少在我的配置中,您可以在命令行环境中期望的性能取决于许多因素。在一定程度上,我受到 Pi 的网络接口速度和我的 Netgear ReadyNAS 102 的整体性能的限制,后者是另一个略微动力不足的消费级 ARM 盒子。不过,有一件事确实让我感到高兴,那就是速度明显快于 Mac Mini!
在原生终端环境中运行,这是您可能期望的典型内存使用量(以 MB 为单位)

需要注意的一件事是缺少交换分区。人们普遍认为,Raspberry Pi 上的任何类型的交换系统都是非常糟糕的事情™,并且会在短时间内磨损您的 SD 卡。我考虑在 NAS 盒子上设置一个交换分区,但我很早就排除了这一点,因为它会对整个网络产生非常不利的影响,而且与 NFS 挂载问题一样,交换分区需要在网络启动之前挂载。所以不行。
在使用 Raspberry Pi 一段时间后,让我们说,人们必须学会首先仔细设置事物,以避免需要,最终,它可以教您更好地管理计算机。
作为我努力使 Pi 尽可能有用的努力的一部分,我不得不设想一种情况,即我正在处理的任何事情要么是资源密集型的,以至于我无法运行 GUI 桌面,要么只是不需要 GUI。这意味着在字符模式环境中重现尽可能多的仅桌面应用程序。事实上,这比找到等效的桌面应用程序更容易。
这是我当前的阵容
- 文件管理器: Midnight Commander;如果您足够老,还记得 Norton Commander,您就会知道它是什么样子。
- 文件传输: SSH/SFTP;通常由桌面上的 PuTTY 和 FileZilla 处理,您只需按原样使用这两个命令即可。
- Web 浏览器: Lynx 或 Links 是经典的字符模式浏览器,可以显着提高互联网体验。
- 音乐播放器: 是的,您可以在字符模式终端中播放音乐!Mpg123 是应用程序的名称,当它以 mpg123 -C 运行时,它允许完全键盘控制所有播放功能。如果您想变得非常酷,您可以通过编辑 /etc/mc/mc.ext 并添加下面的代码片段来更改 Midnight Commander 处理 MP3 文件的方式。这允许您轻松浏览和播放您的音乐收藏。
shell/i/.mp3 Open=/usr/bin/mpg123 -C %f View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view mp3
- Office: 别傻了!哦,等等;我安装了名为 sc (Supercalc?) 的字符模式电子表格应用程序,如果您想编辑文本文档,总是有 Vi 可用,但不要期望能够编辑任何 Microsoft 文件。如果您的需求确实很大,您可以安装一个名为 Antiword 的补充应用程序,它将让您查看 .doc 文件。
- 电子邮件: 有点问题,因为 Claws Mail 邮箱格式与我选择的字符模式应用程序 Mutt 不直接兼容。有一个解决方法,但我只有在有空闲时间时才会这样做。为了发送快速电子邮件,我安装了 ssmtp,它被描述为“用于通常从集中式邮件中心接收邮件的机器的仅发送 sendmail 模拟器”。设置非常简单,开销几乎为零,因为它通常仅在发送邮件时才调用。因此,您可以执行诸如键入 echo "The donuts are on my desk" | mail -s"Important News" everybody@myoffice.com 之类的操作,从命令行发送邮件,而无需启动 GUI 邮件应用程序。
对于其他一切,只需切换回 GUI 桌面即可。说到这里……

屏幕非常繁忙,但 Raspberry Pi 处理得很好。在这里,我正在使用 LibreOffice 编写这篇文章,有一个网络状态框,Firefox 位于 mpg123 网站上,并且有一个终端运行 top,显示使用了多少内存(没有)。左侧的下拉菜单显示了办公套件应用程序。
其他场景和想法
位置
对于像这样的任何混合系统,重要的是要记住每个组件的位置,以便在出现任何问题时更容易恢复。在我当前的配置中,microSDHC 卡仅包含操作系统,并且尽可能多地将任何系统配置文件也放在那里。您自己的用户数据将位于 NAS 上您的主目录中。理想情况下,您应该能够在不影响您的整体计算环境的情况下更换或更新 microSDHC 上的软件,但在 IT 领域,这从来都不是那么简单。
在 X11 GUI 桌面系统中,虽然 /etc/X11 中有一个默认配置文件,但您总是会有一个包含您自己首选项的自定义版本。(这是设计使然。)但是,您在 NAS 上的文件将引用 microSDHC 上的文件

总体效果是,如果您将一个环境更改为另一个环境,您总是会体验到功能上的更改(或丢失)。希望这些更改是次要的,但您确实需要意识到有时模糊的链接。
请记住,root 用户将始终位于 microSDHC 上,如果您的 NAS 盒子因任何原因发生故障,您仍然可以启动您的系统并至少进行一些恢复工作。
NAS 替代方案
当我在我的家庭办公室时,我可以完全访问我的 NAS 盒子,这在(今天的术语中)将代表个人云。我非常喜欢这种解决方案,而不是商业云,商业云总是由一家来源不明、位置不明、安全性和动机不明的公司管理。由于这些原因,我将始终将我的数据托管在我可以看到并根据需要实际访问它的地方。话虽如此,您可能没有我那么偏执,并且希望将您的 Pi 桌面连接到外部云共享。
在这种情况下,使用 NFS 挂载作为您的主目录的基础应该意味着它只是编辑您的 /etc/fstab 以将 NFS 客户端指向不同位置的问题。在我的设置中,NAS 盒子被称为 NASBOX,本地 NFS 共享挂载点被称为 /NASmount。当您创建非 root 用户时,您只需将其主目录移动到名为 /NASmount 的现有目录
NASBOX:/data/yourshare /NASmount nfs
nfsvers=3,rsize=8192,wsize=8192,timeo=60,intr,auto 0 0
mount -t nfs -v NASBOX:/data/yourshare /NASmount
然后您的目录树可能看起来像这样
/NASmount/home/user
因此,通过简单地更改 /etc/fstab 条目,您可以快速连接到其他人的云。正如他们所说,这留给读者作为练习。作为更基本的替代方案,您可以完全忘记网络方面,而是使用备用端口之一中的 USB 记忆棒。
备份和安全
在大多数计算机上,备份只是偶尔进行,甚至根本不进行,但我确保定期备份我的 Pi。
就我而言,最简单的方法是复制整个 SD 卡并将其放在安全的地方。事实上,有一个脚本可以做到这一点,更棒的是,它可以在 Pi 运行时完成,而无需关闭电源。rpi-clone 使用 rsync 将当前卡的内容快速复制到连接到备用 USB 端口的容量相同的卡上,它甚至会在该过程中对目标卡进行分区和格式化。一张 8GB 的卡大约需要 10 分钟才能完成端到端复制,一旦完成,您就会有内在的满足感,因为您知道,如果源卡损坏,您可以简单地将其换成您的热备份并继续工作。
在安全性方面,microSDHC 是一个微型设备,如果情况真的变得绝望,您总是可以吞下它。只是开玩笑……好吧,有点。请注意,在 Raspberry Pi Model 2 上,插入 USB 卡(希望如此)将导致卡被识别和读取。在 Model B 和可能的 B+ 上,它会导致重启,因此如果您正在做一些重要的事情,请记住这一点。
在某个阶段,您应该备份您的主目录,即使它位于 NAS 上,根据定义,NAS 是一个安全保存您的东西的地方(如“抵抗硬件故障”)。我发现最可靠的方法是使用 rsync 备份到外部设备。在我的情况下,外部设备是一个加密的 USB 记忆棒,可以随时插入 Pi。与往常一样,有几点需要注意
- 您的目标设备是否足够大以容纳您的整个主文件夹?令人惊讶的是,我的内容和配置文件可以舒适地容纳在 2GB 中,因为我的所有大型媒体文件都作为 NAS 共享挂载。
- 我必须记住在运行备份之前卸载任何大型媒体存储库;否则,rsync 会很高兴地跟踪路径,最终我最终试图将 43,000 张图像和 9,000 首音乐曲目复制到 2GB 记忆棒上。
- 确保您的记忆棒安全且最好是加密的;您正在将您的整个数字生活放在一个地方,您不会想丢失它。
这是运行我的备份的命令
rsync -azvh --exclude /Downloads/ --exclude .cache/ /NASmount/home/user/
/mnt/backupdevice
我排除了一些包含大量瞬态文件或潜在非常大的下载文件的文件夹。您可能需要根据需要添加更多文件夹。
多功能性
毫无疑问,Pi 作为单板计算机非常通用,不仅体现在它在软件和硬件方面提供的功能,还体现在它提供了新的绿色计算选项。它体积小巧,因此可以轻松运输,microSDHC 也足够小,可以放在钱包或手提包中。不再需要拖着笔记本电脑通过机场安检:将 Pi 放入托运行李中,您的“硬盘”与您安全同行。即使 Pi 被盗,它们也很常见,您几乎可以在任何地方购买到一台。

然后是电源选项:它需要最大 5v 2 安培的电源,因此您可以使用电池为其供电——可以是袖珍型可充电电池,也可以是带太阳能电池板的电池。这绝对是我必须尝试的东西!
多人协作工具?是啊,为什么不呢!将 Pi 设置为 SSH 服务器(提示,这是标准配置),并让您的开发人员安全地登录并创建、编辑和编译源代码。但这将在文本模式环境中进行:虽然 SSH 可以选择转发 X11,但 Pi 的性能不足将成为问题。这是一张我使用 ConnectBot 通过我的 Android 手机连接的图片。实际上可以使用任何平台和客户端组合。

那么,下一步去哪里?
嗯,达到这个阶段是一段艰难但有趣的旅程,我可以说,与我刚开始时相比,我对 Linux 的了解大大增加。
现在,我可以说我的计算环境已经稳定下来,我可以做几乎所有我过去在旧 Mac Mini 上做的事情,甚至更多。系统保持精简,我近期不打算安装任何主要的东西。我主要的不满是无法打印,而且我不太可能在近期解决这个问题,但我会在有时间时重新审视它。
视频播放情况也是如此。为了让您了解情况,前几天我尝试观看 Pharrell Williams 的“Happy”视频,虽然声音播放正常,但在歌曲结束后 30 秒,我仍在观看慢动作视频。但是,嘿,你不可能拥有一切……
顺便说一句,Raspberry Pi Model 2 被誉为可以运行 Windows 10 的机器:我确信这有一定的道理,但考虑到硬件限制,我不明白这怎么可能,甚至是否可取。也许我错了。我们拭目以待(但我不会尝试!)。
9 条评论