因此,最后我可以下订单订购Raspberry Pi!但是,配置它们将很麻烦。我想做的是:
- 下载股票图像,然后在单个Pi上修补它
- 将图像保存/提取/复制到所有其他SD卡
- 完成其他Pi的设置,而无需进行任何其他配置
我的计算机只有一个SD插槽,是否可以通过.img
修改后的“主”卡生成文件?
因此,最后我可以下订单订购Raspberry Pi!但是,配置它们将很麻烦。我想做的是:
我的计算机只有一个SD插槽,是否可以通过.img
修改后的“主”卡生成文件?
Answers:
在将克隆母版写入副本之前,需要执行几个简单的准备步骤,这将使您省去很多麻烦。
/etc/ssh/ssh_host*
(运行SSHD时会重新创建)/etc/udev/rules.d/70-network*
文件,则需要将eth0
条目修改为其他内容(我用于eth9
克隆主文件),并记住要更新关联的ifconfig
文件-以centos为单位/etc/sysconfig/network-scripts/ifcfg-eth0
(make it 9
),以debian(raspbian)为单位/etc/network/interfaces
我有1
和2
分发自定义OS 相同的要求。环顾四周后,我发现了许多命令,但没有一个可以.zip
通过SD卡创建压缩文件的工具,因此我编写了mkimg.sh
,其工作方式如下:
sudo bash mkimg.sh /dev/sda sdcard.img.zip
这会将卸载的设备放在/dev/sda
,缩小文件系统和分区,并写出压缩的zip。在我的使用中,这编写了一个〜1.5GB的Raspbian系统来创建<500MB .zip
。
除了进行健全性检查和大小计算之外,脚本实际上还可以执行以下操作:
e2fsck -f /dev/sda2
resize2fs -M /dev/sda2
parted --align optimal /dev/sda unit MB resizepart 2 1700 yes
dd bs=1M if=/dev/sda of=sdcard.img count=1900
zip sdcard.img.zip sdcard.img
parted /dev/sda resizepart 2 16.0GB
resize2fs /dev/sda2
该脚本和文档可在GitHub上找到。
您可以在主计算机上使用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窗口中,您可以像通常将图像写入SD卡一样使用dd,但现在multixterm会将dd命令同时发送到两个Raspberry Pi。
步骤7:重复步骤3-6,直到所有卡都写完为止。
您成像的SD卡越多,可以用来成像新SD卡的Raspberry Pi越多。显然,这项技术不会一次性写入所有卡,但可以减少完成写入所有卡所需的时间。这项技术主要是实验性的,因此您的行驶里程会有所不同,但是它的理论听起来像是一个有趣的实验...
您正在寻找的是用于SD卡或SD卡复制器的Gang编程器设备。
是的,这些系统确实存在。 这是我通过Googling找到的“ sd卡帮派程序员”。该特定设备具有一个主插槽,可以一次最多复制7个从SD卡。其他带有3个或11个从属插槽的编程器也可提供。
也有不同类型的程序员。有些可以从硬盘驱动器中刷新图像,并且受PC上安装的软件控制。其他设备,例如上面链接的设备,不必与服务器接口,因为它们将信息从主芯片中镜像出来。
值得一提的是,这些设备并不便宜。它们通常用于大规模生产环境,并且需求不会过高。准备为具有此功能的优质设备支付至少1,000美元。
ProDuplicator.com似乎还有更多的SD卡复制选项。
我们对一个项目有类似的要求,即我们需要每天能够将图像写入10多个Raspberry Pi SD卡。我们查看了可购买的各种Card Duplicator,但发现其中的大多数都无法成功制作可引导的SD卡,因为大多数只能直接复制文件而不是可引导信息,它们也非常昂贵!
因此,作为一个解决方案,我们编写了自己的简单的基于Web的软件,以在连接到2个7端口Belkin供电的USB集线器的Raspberry Pi上运行(Pi限制为2个集线器,最多14个USB端口)。
现在,我们已将其作为开源软件发布,以帮助具有相同要求的其他人。目前只有源代码可用,但我们还将基于运行Nginx + php的Arch Linux ARM上传图像文件
尽管如何备份Raspberry Pi?对如何克隆单个SD卡提供了极好的限制,一次只能完成一张,因此数十张卡将变得乏味。
鉴于似乎没有人生产出多卡SD卡读卡器(可以同时容纳多个SD卡的读卡器),而且您可以很便宜地购买USB集线器和一堆单个SD卡USB读卡器,加快此过程的一种方法是制作自己的SD卡复制器。
您甚至可以编写脚本以将您选择的Raspberry Pi映像自动写入到插槽中插入的任何空SD卡插槽中。脚本可以自动检测到已插入卡,并指示复制完成的时间。
正如darrenjw在评论中提到的那样,您将希望在首次引导克隆的映像时替换每个克隆映像中的ssh证书,因此,您可能需要确保在连接到专用网段时首次完成引导,然后再进行连接将其连接到互联网。
通常,有更好的工具可以执行此操作,然后复制大量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/
要解决计算机上只有一个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个适配器,但是没有理由认为它不适用于大量卡,尽管速度将限于最慢的目标卡。
如果您需要在配置更改开始运行并在网络上时使它们保持最新状态,那么我会考虑使用ansible或Fabric来通过ssh进行更新,并避免重新刻录卡以使其保持最新状态。
最后,您可以使用唯一的标识符(例如,基于网络MAC地址)来修改主机,以更改每个RPi上的主机名,从而可以轻松定位,avahi
而无需修改每个RPi以避免在启动后产生冲突,从而避免冲突。