修改覆盆子pi的Debian图像

我需要在商业环境中修改Raspbian图像,以便与Raspberry Pi一起使用。 这样我就不必修改每个pi的默认值。 我想将默认键盘设置为US,禁用自动login并启动到命令行而不是GUI。 在闪烁每张卡片之前是否可以使用这些设置修改图像? 如果是这样,怎么样?

最简单的方法是让一个Raspi按照你想要的方式运行(称为黄金大师 ),然后关闭它,取出卡,然后在你的PC的SD卡读卡器中进行类似以下的操作(我假设你烤第一张牌):

sudo dd if=/dev/<sddevice> bs=1k | gzip -c > myProduct-1.0-master.bin.gz 

然后用#2,#3 …#n#

 zcat myProduct-1.0-master.bin.gz | sudo dd of=/dev/<sddevice> bs=1k 

注意卡片大小:一定要确保你的金色主卡比你的目标卡(最好是2x,比如8-vs-16GB)要小得多。 原因有两方面:

  • 如果两张牌都是“8GB”,则目标可能会比源文件稍小(在这种情况下,文件系统截断以及可能会以微妙和不可预知的方式导致怪异)。
  • SD卡控制器具有非常原始的磨损平衡,并且dd'ing在一堆零打败它(这意味着卡可以死,如果你正在做一堆日志记录)。 保留一堆未使用的空间意味着您可以通过耗损平衡使用单元(请注意,现代固态硬盘具有更复杂的耗损均衡,大多数情况下不会遇到此问题)。

我不久前创建了一个产品,就是这样做 – 主人是一张8GB的全尺寸卡,目标都是16GB的微型卡。 我们把主人放在大型复印机,然后是目标,并击中大副本按钮。 由于这些卡的存储容量不同,我们有超过50%的配置不足(给了我们大量的磨损级别的空间),而且由于这些卡的物理尺寸不同,所以我们从未混淆过它们:-)

(是的,我在磨损平衡方面保守得可笑 – 没有什么比在嵌入式卡片死亡的情况下更糟糕的IMO,不得不爬上帝 – 知道什么来取代8美元的零件,不必在第一名…)

这也值得在你的主文件上创建一个VERSION文件,所以当你翻译你的产品时,你知道哪个版本已经安装了(你可以在登录提示符下编辑/ etc / issue来显示它,或者编辑其他任意文本文件) 。

可以为RasPi创建具有更严格控制的操作系统发行版的从头开发的映像,但是如果只调整一些文件,最简单的方法就是我所描述的。

哦,并确保将这些版本化的图像保存在一个安全的地方,比如git LFS(例如https://git-lfs.github.com/ )。

  1. 在树莓派上做所有你想要的改变。
  2. 找出SD卡在计算机上的安装位置。 在Linux上它将是/ dev / sdb,在Mac上它将是/ dev / rdisk2
  3. 把你的pi镜像放在电脑里,制作一张磁盘镜像dd if=/dev/<sd_path> of=~/raspi.img bs=1m
  4. dd if=~/raspi.img of=/dev/<sd_path> bs=1m你的其他卡: dd if=~/raspi.img of=/dev/<sd_path> bs=1m