Então, finalmente, eu posso fazer esse pedido em massa para Raspberry Pis ! No entanto, configurá-los será uma tarefa árdua. O que eu gostaria de fazer é:
- Faça o download de uma imagem e mexa com ela em um único Pi
- Salve / extraia / copie essa imagem para todos os outros cartões SD
- Os outros Pi estão todos configurados sem precisar de nenhuma configuração adicional
Meu computador possui apenas um slot SD, então existe uma maneira de gerar um .img
arquivo a partir do meu cartão 'mestre' modificado?
Respostas:
Existem algumas etapas fáceis de preparar antes de escrever um mestre de clone em cópias, o que poupará muitas dores de cabeça.
/etc/ssh/ssh_host*
(eles são recriados quando você executa o SSHD)/etc/udev/rules.d/70-network*
arquivo, precisará modificar aeth0
entrada para outra coisa (useieth9
para meus mestres de clones) - e lembre-se de atualizar oifconfig
arquivo associado - nos centos que são/etc/sysconfig/network-scripts/ifcfg-eth0
(make it9
) e no debian (raspbian) é/etc/network/interfaces
fonte
Eu tinha os mesmos requisitos
1
e2
para distribuir um sistema operacional personalizado. Depois de olhar ao redor, encontrei muitos comandos, mas nenhuma ferramenta para criar um.zip
arquivo compacto a partir de um cartão SD, então escrevimkimg.sh
, que funciona assim:Isso leva o dispositivo desmontado
/dev/sda
, reduz o sistema de arquivos e a partição e grava um zip compactado. No meu uso, isso cria um sistema Raspbian de ~ 1.5GB para criar um <500MB.zip
.Juntamente com verificações de integridade e cálculos de tamanho, o script basicamente faz isso:
O script e a documentação estão disponíveis no GitHub .
fonte
Você pode usar os Raspberry Pis em si, juntamente com o multixterm no computador principal, para "inicializar" a gravação do cartão SD. Você deve encontrar multixterm em muitos gerenciadores de pacotes da distribuição.
Etapa 1: Compre vários adaptadores de cartão SD do stick USB.
Etapa 2: use os métodos padrão para gravar 2 das imagens do cartão SD no seu computador principal.
Etapa 3: Coloque os 2 cartões SD com imagens em 2 Raspberry Pis e conecte-os à sua rede e ligue-os.
Etapa 4: Coloque 2 cartões SD vazios nos adaptadores USB e conecte-os aos 2 Rapsberry Pis em execução.
Etapa 5: Agora é aqui que fica interessante: no computador principal, use multixterm da linha de comando multixterm -xc "ssh% n" host1 host2 host2 em que host1 e host2 são os endereços IP dos Raspberry Pis.
Etapa 6: Dentro da janela stdin do multixterm, você pode usar o dd como faria normalmente para gravar imagens nos cartões SD, mas agora o multixterm envia esse comando dd para os dois Raspberry Pis simultaneamente.
Etapa 7: repita as etapas de 3 a 6 até que todos os seus cartões sejam gravados.
Quanto mais cartões SD você imagina, mais Raspberry Pis você pode usar para criar novos cartões SD. Obviamente, essa técnica não escreverá todos os seus cartões de uma só vez, mas reduziria o tempo necessário para concluir a escrita de todos os cartões. Essa técnica seria amplamente experimental, portanto sua milhagem variaria, mas a teoria dela soa como um experimento interessante ...
fonte
O que você está procurando é um dispositivo Gang Programmer para cartões SD ou Duplicador de Cartão SD.
Sim, esses sistemas existem. Aqui está um que eu encontrei no Googling "programador de gangues de cartões sd". Este dispositivo específico possui um slot mestre, que pode copiar até 7 cartões SD escravos de uma só vez. Outros programadores com 3 ou 11 slots escravos também estão disponíveis.
Existem também diferentes tipos de programadores. Alguns podem piscar uma imagem do seu disco rígido e são controlados pelo software instalado em um PC. Outros dispositivos, como o link acima, não precisam fazer interface com os servidores porque espelham as informações de um chip mestre.
Vale ressaltar que esses dispositivos não são baratos. Eles geralmente são usados em um ambiente de produção em massa e a demanda não é excessivamente alta. Esteja preparado para pagar pelo menos US $ 1.000 por um bom dispositivo com essa funcionalidade.
O ProDuplicator.com parece ter também muito mais opções de duplicação de cartão SD.
fonte
Tínhamos um requisito semelhante para um projeto em que precisávamos ser capazes de gravar imagens em mais de 10 cartões SD Raspberry Pi diariamente. Analisamos os vários Card Duplicator disponíveis para compra, mas descobrimos que a maioria deles não será capaz de criar um cartão SD inicializável, pois a maioria apenas copia arquivos diretamente e não as informações inicializáveis, além de serem ridiculamente caras!
Portanto, como solução, criamos nosso próprio software simples baseado na Web para rodar em um único Raspberry Pi conectado a hubs USB com 2 portas 7 da Belkin (o Pi tem uma limitação de 2 hubs e um máximo de 14 portas USB).
Agora, lançamos isso como software de código aberto para ajudar outras pessoas que têm o mesmo requisito. Atualmente, apenas o código fonte está disponível, mas também enviaremos um arquivo de imagem com base no Arch Linux ARM executando o Nginx + php
http://www.rockandscissor.com/projects/osid
fonte
Isso funciona no Mac OS X.
Desmonte o cartão com o qual você mexeu e tente:
sudo dd if=/dev/sdcardlocation of=backupimage.img
.Substitua
sdcardlocation
pela localização do seu cartão SD.Você pode trocar
.img
com.dmg
ou.iso
.Em seguida, para preparar os outros cartões, desmonte-os e execute o código anterior com os valores trocados. A linha seria esta:
sudo dd if=backupimage.img of=/dev/sdcardlocation
.Desmonte-os antes de removê-los do leitor de cartões.
fonte
Embora como eu faça backup do meu Raspberry Pi? fornece excelentes instruções sobre como clonar um único cartão SD, fazendo um de cada vez para dezenas de cartões.
Dado que ninguém parece ter produzido um leitor de cartão SD com vários cartões (um que pode armazenar vários cartões SD ao mesmo tempo) e o fato de que você pode comprar um hub USB e vários leitores USB de cartão SD com um preço muito baixo, Uma maneira de acelerar o processo seria criar seu próprio duplicador de cartão SD.
Você pode até escrever um script para gravar automaticamente a imagem escolhida do Raspberry Pi em qualquer slot de cartão SD vazio inserido em um slot. Os scripts podem detectar automaticamente que um cartão foi inserido e indicar quando a cópia é concluída.
Como darrenjw mencionado nos comentários, porém, você vai querer substituir os certificados ssh em cada uma das imagens clonadas a primeira vez que são inicializado, então você pode querer certificar-se de que este primeiro boot é feito enquanto conectado a um segmento de rede privada antes de ligar para uma rede conectada à Internet.
fonte
Geralmente, há uma ferramenta melhor para fazer isso e depois copiar muitas imagens RP.
Mas isso depende do que você realmente deseja fazer.
Você deve dar uma olhada em cfengine3 [1], fai [2], chef [3], tecido [4] ou fantoche [5]. São ferramentas de configuração automática, que seriam úteis para fazer coisas em sua máquina quando iniciadas pela primeira vez (e depois).
[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/
fonte
PiBakery pode ser uma solução viável para você. O PiBakery permite criar uma imagem Raspbian personalizada usando blocos para personalizar várias coisas, como senhas de wifi, chaves ssh, etc ...
fonte
Outra alternativa é usar o flash , uma ferramenta de linha de comando para o flash de cartões SD com certas personalizações no sistema operacional.
fonte
Para lidar apenas com um único slot para cartão SD no seu computador, a resposta fácil para a gravação eficiente de várias imagens é um hub USB com alimentação e vários adaptadores microSD-USB baratos. Testei usando um hub USB-3 de 13 portas e adaptadores microSD-USB baratos (<$ 1).
Quanto a gravar muitas imagens de base simultaneamente, consulte o dcfldd . Está disponível nos repositórios raspbian jessie. É uma versão aprimorada do GNU dd, com a capacidade de gravar simultaneamente em várias imagens. Fiz alguns testes casuais e consegui copiar uma imagem de cartão microSD em um RPi 3B para uma mistura de 7 cartões conectados em adaptadores de 3 tipos em um hub USB. Testes anteriores em um hub USB 2.0 de 3 portas em um A + também funcionaram. É basicamente disparar e esquecer depois de definir os parâmetros corretamente. Eu estava limitado a 7 adaptadores, mas não há motivos para pensar que não funcionaria com um número maior de cartões, embora as velocidades sejam limitadas às do cartão de destino mais lento.
Se você precisar manter um grande número de RPis atualizados com as alterações de configuração assim que estiverem em execução na rede, eu usaria o ansible ou fabric para permitir atualizações através do ssh e evitar a necessidade de re-queimar o cartões para mantê-los atualizados.
Finalmente, você pode modificar seu mestre para alterar o nome do host em cada RPi usando um identificador exclusivo (por exemplo, com base no endereço MAC da rede) para facilitar a localização
avahi
sem precisar modificar cada RPi para evitar conflitos após a inicialização para evitar conflitos.fonte