因此,最后我可以下订单订购Raspberry Pis!但是,配置它们将很麻烦。我想做的是:


下载股票图像,然后在单个Pi上修补它
将该图像保存/提取/复制到所有其他SD卡
已经设置了其他Pi的所有组件,而无需完成任何其他配置

我的计算机只有一个SD插槽,因此可以通过修改后的方法生成.img文件“主”卡?

评论

汤姆查看这篇文章raspberrypi.stackexchange.com/questions/311/…我认为它回答了您的问题。

@SteveRobillard +1会完美地回答问题。

要注意的一件事是SSH。如果在主服务器上设置SSH,最终将在所有映像上获得克隆的SSH证书,这不一定是您想要的。 OTOH,如果您打算无头使用Pis,则可能确实希望安装SSH ...

@darrenjw这是一个非常好的观点。您为我省去了一些尴尬,没有错。谢谢。

根据您打算如何使用大量的Pis,您可能需要查看Andrew Mulholland的Raspi-LTSP项目。它不仅对课堂使用有用,而且对集群非常有用。

#1 楼

将克隆母版写入副本之前,需要执行几个简单的准备步骤,这将为您节省很多麻烦。


为DHCP配置克隆母版
删除所有内容在/etc/ssh/ssh_host*中(运行SSHD时会重新创建)
如果您有/etc/udev/rules.d/70-network*文件,则需要将eth0条目修改为其他内容(我将eth9用于克隆主文件)-并记得更新关联的ifconfig文件-在centos中是/etc/sysconfig/network-scripts/ifcfg-eth0(使其成为9),在debian(树莓派)中是/etc/network/interfaces


#2 楼

我具有与12相同的要求来分发定制的OS。环顾四周后,我发现了很多命令,但没有一个工具可以从SD卡创建紧凑的.zip文件,因此我编写了mkimg.sh,其工作方式如下:

sudo bash mkimg.sh /dev/sda sdcard.img.zip


这将在/dev/sda处获取已卸载的设备,缩小文件系统和分区,并写出压缩的zip。在我的使用中,这编写了一个约1.5GB的Raspbian系统来创建一个<500MB的.zip

连同健全性检查和大小计算,该脚本实际上是这样做的:

脚本和文档可在GitHub上获得。

#3 楼

您可以在主计算机上使用Raspberry Pis本身和multixterm来“引导” SD卡的写入。您应该能够在许多发行版的程序包管理器中找到multixterm。

步骤1:购买一堆USB记忆棒SD卡适配器。

步骤2:使用标准方法在主计算机上写入2张SD卡图像。

步骤3:将2张带有图像的SD卡放入2台Raspberry Pi中,然后将它们连接到网络并通电。

步骤4:将2个空SD卡插入USB记忆棒适配器中,然后将其插入2个运行的Rapsberry Pis中。

步骤5:现在,这在您的主计算机上变得很有趣multixterm在命令行中是这样的multixterm -xc“ ssh%n” host1 host2其中host1和host2是Raspberry Pi的ip地址。

步骤6:在multixterm的stdin窗口中,您可以使用dd就像通常将图像写入SD卡一样,但是现在multixterm会将dd命令同时发送到两个Raspberry Pi。

步骤7:重复步骤3-6,直到所有卡都写入为止。

您拍摄的SD卡越多,可以用来拍摄新SD卡的Raspberry Pi越多。显然,这项技术不会一次性写入所有卡,但可以减少完成写入所有卡所需的时间。该技术主要是实验性的,因此您的行驶里程会有所不同,但是它的理论听起来像是一个有趣的实验...

评论


非常有趣-但对于大规模生产而言也非常昂贵=)呵呵,喜欢它。是否可能无法在不同的控制台中将图像超线程写入不同的USB SD适配器?

– Piotr Kula
2012年11月1日上午10:12

#4 楼

您正在寻找的是用于SD卡或SD卡复制器的Gang编程器设备。

是的,这些系统确实存在。这是我通过Googling找到的“ sd卡帮派程序员”。该特定设备具有一个主插槽,可以一次最多复制7个从SD卡。也可以使用其他具有3个或11个从属插槽的编程器。

也有不同类型的编程器。有些可以从硬盘驱动器中刷新图像,并且可以通过PC上安装的软件进行控制。其他设备(例如上面链接的设备)不必与服务器接口,因为它们将信息从主芯片中镜像出来。

值得一提的是,这些设备并不便宜。它们通常用于大规模生产环境,并且需求不会过高。准备为具有此功能的优质设备支付至少1,000美元的费用。

评论


我想知道为什么这些花费那么多,考虑到您仍然需要坐下来手动插入和取出SD卡。

–德米特里·格里戈里耶夫(Dmitry Grigoryev)
17年7月6日在9:32

@DmitryGrigoryev在我回答后的5年中,复制器站点现在有一个价格低于600美元的站点,恕我直言,这似乎很便宜。请记住,数量决定价格。没有多少人需要这些,所以它们很昂贵,因为他们需要收回开发和制造成本。如果每10台PC或笔记本电脑中就有一个这样的设备,则可能是100-150美元的设备。

–RLH
17年7月6日在18:15

#5 楼

我们对一个项目有类似的要求,即我们需要每天能够将图像写入10多个Raspberry Pi SD卡。我们查看了可购买的各种Card Duplicator,但发现其中的大多数都无法成功制作可引导的SD卡,因为大多数只能直接复制文件而不是可引导信息,它们也非常昂贵!

因此,作为解决方案,我们编写了自己的简单的基于Web的软件,以在连接到2个7端口Belkin供电的USB集线器的Raspberry Pi上运行(Pi限制为2个集线器,最多14个USB端口) 。

我们现在已将其作为开源软件发布,以帮助具有相同要求的其他人。目前,只有源代码可用,但我们还将基于运行Nginx + php的Arch Linux ARM上传图像文件

http://www.rockandscissor.com/projects/osid

#6 楼

在Mac OS X上可以使用。

卸下已经修补过的卡,然后尝试:

sudo dd if=/dev/sdcardlocation of=backupimage.img

用位置替换sdcardlocation您可以将.img.dmg.iso互换。交换了一下。该行是这样的:

sudo dd if=backupimage.img of=/dev/sdcardlocation

在将它们从读卡器中取出之前,请确保先卸下它们。

#7 楼

尽管如何备份Raspberry Pi?对如何克隆单个SD卡提供了极好的限制,一次只能完成数十张卡的操作会变得很繁琐。

鉴于没有人生产过多卡SD卡读卡器。 (可以同时容纳多个SD卡的设备),以及可以非常便宜地购买USB集线器和一堆单个SD卡USB读卡器的事实,加快此过程的一种方法是制作自己的SD卡复制器。

您甚至可以编写脚本以将您选择的Raspberry Pi映像自动写入到插槽中插入的任何空SD卡插槽中。脚本可以自动检测到是否已插入卡,并指示复制何时完成。

但是,正如darrenjw在评论中提到的那样,您将希望在每个克隆的映像中首次替换ssh证书。已启动,因此您可能需要确保在连接到专用网段时首次完成启动,然后再将其连接到Internet连接的网络。

评论


通常,您不会安装卡来将图像刷新到卡上。

–亚历山大·张伯伦
2012年7月17日在12:26

感谢@AlexChamberlain,我还应该等到Pi到达几个星期的时间(Grrr,如果我知道我在RS等待名单上有很长的交货时间,我会从Farnell订购很长的时间首先是准备时间),所以我实际上还没有尝试过。

– Mark Booth
2012年7月17日12:34

#8 楼

通常,有更好的工具可以执行此操作,然后复制大量RP图像。

但这取决于您真正想做的事情。

您应该看看在cfengine3 [1],fai [2],chef [3],fabric [4]或puppet [5]中。它们是自动配置工具,在第一次(或以后)启动时,对于在您的计算机中进行操作非常有用。

[1] http://cfengine.com/
[2 ] http://fai-project.org/
[3] http://www.opscode.com/chef/
[4] http://www.debian-administration.org/articles / 671
[5] http://puppetlabs.com/puppet/puppet-enterprise/

#9 楼

PiBakery可能是您可行的解决方案。 PiBakery允许您使用块创建自定义的Raspbian图像,以自定义各种内容,例如wifi密码,ssh键等...

#10 楼

另一种选择是使用Flash(一种命令行工具),以对OS进行某些自定义的方式来刷新SD卡。

#11 楼

要解决计算机上只有一个SD卡插槽的问题,有效地刻录多个图像的简单方法是使用有源USB集线器和许多廉价的microSD-USB适配器。我已经测试过使用13端口USB-3集线器和廉价(不到1美元)的microSD-USB适配器。

就同时刻录大量基本图像而言,请检查dcfldd。在raspbian jessie存储库中可用。它是GNU dd的增强版本,能够同时写入多个图像。我进行了一些随意的测试,并且能够将RPi 3B上的microSD卡映像复制到插入USB集线器上的3种类型的适配器中的7张卡中。对A +上的3端口USB 2.0集线器的先前测试也可行。一旦正确设置了参数,这几乎就是一劳永逸的事情。我仅限使用7个适配器,但是没有理由认为它不适用于大量卡,尽管速度将限于最慢的目标卡。

如果您需要一旦它们运行并在您的网络上运行,就可以通过配置更改使大量RPis保持最新,我会考虑使用ansible或Fabric来通过ssh进行更新,并避免需要重新刻录卡以保持它们的状态当前。

最后,您可以使用唯一的标识符(例如,基于网络MAC地址)修改主机以更改每个RPi上的主机名,从而可以通过avahi轻松定位,而不必修改每个RPi以避免冲突它会启动以避免冲突。