Estou escrevendo programas para o meu Raspberry Pi (executando o Raspbian) há algumas semanas e gostaria de garantir a proteção do trabalho que fiz.
Como posso fazer backup dos arquivos que criei?
Posso simplesmente conectar o cartão SD ao meu PC com Windows (XP ou 7) e copiá-lo para o disco rígido ou outro cartão SD?
git
ouhg
, dessa forma, você não apenas tem cópias do seu código em vários locais, mas também possui o histórico completo de como esse código foi alterado.Respostas:
Se você deseja preservar todos os dados, provavelmente precisará criar uma imagem de disco. Além disso, o Windows não consegue reconhecer os sistemas de arquivos típicos do Linux, então você provavelmente nem poderá ver seus arquivos quando conectar o cartão SD.
A criação de uma imagem de disco preservará não apenas os arquivos, mas também a estrutura do sistema de arquivos e, quando você decidir atualizar seu novo cartão SD, poderá conectá-lo e ele funcionará.
Linux
No Linux, você pode usar a
dd
ferramenta padrão :Onde
/dev/sdx
está o seu cartão SD?Mac
No Mac, você também pode usar a
dd
ferramenta padrão com uma sintaxe um pouco diferente:Onde
/dev/rdiskx
está o seu cartão SD?(é preferível usar o rdisk, pois é o dispositivo bruto - mais rápido)
Para descobrir qual disco o seu dispositivo digita
diskutil list
em um prompt de comando - também, você pode precisar ser root; para fazer esse tiposudo -s
e digite sua senha quando solicitado.janelas
Opção 1
No Windows, você pode usar o processo inverso usado ao piscar o cartão SD.
Você pode usar o Win32 Disk Imager , que é a ferramenta preferida para exibir um cartão SD da Foundation. Basta digitar o nome do arquivo (o local e o nome do arquivo de imagem de backup a ser salvo), selecionar o dispositivo (o cartão SD) e pressionar ler:
Claro, você também pode usar o RawWrite ,
dd
para Windows ou ferramentas semelhantes, o processo é bastante semelhante.opção 2
Se você não deseja fazer backup de todo o seu sistema, mas apenas de arquivos específicos, sugiro que você se conecte ao seu Raspberry Pi via SFTP e copie os arquivos para o computador local (você pode usar o cliente WinScp ). Se você tiver o SSH ativado, o SFTP normalmente não exige nenhuma configuração especial no lado do Raspberry Pi.
Outra opção é copiar os arquivos para um sistema remoto usando o rsync .
Você também pode instalar drivers especiais para que o Windows possa ler
ext
sistemas de arquivos (e, portanto, poderá ler todo o cartão SD), como,ext2fsd
mas provavelmente não vale a pena.Como a imagem terá o mesmo tamanho do seu cartão SD, você poderá compactá-la. Isso pode ser conseguido simplesmente usando sua ferramenta de compactação favorita, como
gzip
7zip, WinZip, WinRar ...fonte
rsync
viassh
provavelmente fosse mais fácil. Além disso, para o código-fonte - como Mark Booth já foi dito - você deve absolutamente usar um DVCSSe você estiver executando o Linux, poderá usar o
dd
comando para fazer um backup completo da imagem:ou para compressão:
Onde
sdx
está o seu cartão SD?Para restaurar o backup, você reverte os comandos:
ou quando compactado:
fonte
:)
)bs=1M
parâmetro ou algum parâmetro semelhante. O tamanho do bloco padrão de 512 bytes diminui o desempenho da cópia.Além desses backups em nível de bloco, existem duas abordagens comuns para lidar com as fontes: arquivá-lo continuamente (1) ou usar o sistema de controle de revisão (2).
Vamos usar a linha de comando (qualquer terminal local ou conexão SSH com uma máquina Raspberry Pi), certo?
1. Arquivo
2. RCS (Git por exemplo)
fonte
No Mac, você não deseja usar
/dev/diskn
. Em/dev/rdiskn
vez disso, você deve usar , onde n é o número que o sistema operacional usa para identificar seu cartão SD. Isso diminui o tempo necessário para copiar em uma quantidade enorme.Portanto, para o processo ideal de backup em um Mac, recomendo fazer o seguinte:
Execute
diskutil list
e encontre o disco correspondente ao cartão SD do seu Raspberry Pi:Claramente
/dev/disk1
é o meu cartão SD de 8GB, o nome da partição Linux também é um pouco de pista.No entanto, em vez de usar
/dev/disk1
comdd
, você deve usar/dev/rdisk1
o seguinte:E para restaurá-lo, basta trocar os parâmetros
if
(arquivo de entrada) eof
(arquivo de saída):Ou, com
gzip
, para economizar uma quantidade substancial de espaço:E, para copiar a imagem novamente no SD:
Para mais informações, consulte esta página wiki .
fonte
Você pode executar este comando no seu PC Linux com muito espaço:
Como pré-requisito, você precisará ter gerado chaves .ssh e copiado a chave
id_XXX.pub
para/root/.ssh/authorized_keys
.É possível ter problemas com o sistema de arquivos, pois é um backup ao vivo, mas se o seu Raspberry Pi não estiver muito ocupado, normalmente estará OK.
Provavelmente é mais rápido fazer a compactação no PC assim:
fonte
ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
Se você estiver usando o Windows:
Faça o download do Win32 Disk Imager.
Crie o caminho do arquivo que você deseja usar para salvar sua imagem. (Eu uso C: \ RasPi_Bkp)
Execute o Win32 Disk Imager
Navegue até o local do caminho do arquivo de backup e digite um nome de arquivo.
Clique em salvar
Verifique se o dispositivo mostrado na lista suspensa à direita do caminho do arquivo é o que você deseja fazer backup.
Clique em "Ler"
Esperar.
fonte
Se seus programas estão todos no pi userid, não há realmente nenhuma razão para fazer backup de todo o sistema de arquivos, como está sendo sugerido. o que faço é apenas fazer backup do id único. Eu executo o comando:
do diretório inicial do pi, que cria o arquivo pi.tgz, contendo todos os arquivos e diretórios contidos nele (excluindo arquivos ocultos). Em seguida, eu scp esse arquivo para outro computador linux, mas você pode enviá-lo por e-mail ou enviar para um local seguro, qualquer coisa que o coloque em outro computador.
Isso cria um arquivo muito menor para o seu backup.
Preocupado com todos os pacotes adicionais que você instalou ao longo do caminho? Crie um script que execute essas instalações novamente, caso seja necessário recriar seu cartão SD e mantenha-o no diretório inicial do pi em algum lugar. (Eu tenho um diretório ~ / bin para essas coisas). Tenha todos os comandos necessários para fazer a instalação para retornar à posição em que você deseja estar. Ele documenta suas alterações e permite que você crie rapidamente um novo cartão SD. Ele conteria comandos na forma de:
Comece com
para que seu sistema também seja trazido para o nível atual antes de começar a adicionar seus pacotes.
Como isso estará no seu arquivo pi.tgz, você o terá quando precisar.
fonte
Executo o Raspbian e uso o dd e o cron para fazer backups automáticos do meu cartão SD na minha unidade USB externa.
É uma solução realmente simples. Ele é executado uma vez por semana às 2 horas da manhã de uma segunda-feira e cria uma imagem do cartão SD.
Eu escrevi um script que encerra serviços como lighttpd e cron, para minimizar o risco de o cartão SD ser gravado no meio do backup, depois ele chama dd, antes de iniciar os serviços novamente quando o backup terminar.
Coloquei o script e algumas instruções no meu blog, http://www.stuffaboutcode.com/2012/08/raspberry-pi-auto-backups.html
fonte
dd
umsd?
dispositivo com partições montadas não parece muito seguro.Para o Debian você pode usar dd e tar. Isso faria uma cópia completa do seu cartão SD e exigiria armazenamento externo (para o cartão SD), provavelmente USB ou unidade de rede montada.
Com / dev / sdd sendo o local do seu cartão SD e
of
o nome do arquivo de saída.fonte
.tar.gz
arquivo com o arquivo dd? Não seria melhor simplesmente executargzip
oubzip2
no arquivo dd diretamente?/dev/mmcblk0p1
e/dev/mmcblk0p2
listei ...Felizmente, o Raspberry Pi pode criar um backup independente do sistema operacional principal usado para acessar o Raspberry (Windows, Linux, Mac). dd, tar e rsync são ferramentas diferentes para criar backups no Linux. Todos esses tipos de backups podem ser criados pelo Pi em execução, desde que ele pare todas as tarefas ocupadas como mysql, smb, dlna, owncloud, seafile, apache e outros antes de criar o backup. Há uma pergunta diferente em que a abordagem é explicada em mais detalhes e uma possível solução é explicada aqui
fonte
Se o seu Raspberry Pi estiver conectado a uma rede e você desejar fazer backups on-the-fly automáticos, provavelmente a maneira mais fácil é o Bittorent Sync - instalação muito fácil e execução sem problemas e estável no Pi e em muitas outras plataformas.
fonte
Não há mais dd, sincronização, alcatrão, ..., copiadora de cartões SD amigável para iniciantes
A nova versão do Raspbian, chamada stretch, possui um aplicativo amigável para iniciantes, chamado SD Card Copier. Você não precisa usar as ferramentas do Linux, como dd, etc. Ele pode até copiar cartões grandes para cartões pequenos.
Como fazer isso
Você começa com o ícone do menu do aplicativo GUI RPi no canto superior esquerdo, vá para Acessórios e clique em SD Card Copier.
Tudo que você precisa fazer é alguns cliques dentro da GUI!
Depois de fazer o cartão SD de backup, você pode usar o Windows Disk Manager para ler a imagem do cartão em um arquivo do Windows e armazená-lo em qualquer diretório do Windows. Dessa forma, você precisa apenas de um cartão SD físico e armazena muitas versões de imagens no PC com Windows.
Obviamente, você pode simplesmente usar o cartão de backup como cópia de trabalho, para substituir o cartão original, que agora se torna seu cartão principal, e bloqueá-lo em um local seguro.
fonte
Ao pesquisar para criar uma imagem do meu cartão SD personalizado, encontrei este post. A melhor resposta aqui discute a criação de imagens do cartão SD, mas o que eu procurava exigia diminuir o sistema de arquivos para tornar a imagem a menor possível. Acabei criando minha própria ferramenta para fazer isso e descrevendo o processo em: https://raspberrypi.stackexchange.com/a/37899/32585
fonte
Aqui estão três opções:
Na versão mais recente do Raspbian, existe uma ferramenta que converte seu sistema operacional e arquivos em um arquivo .img que você pode colocar em um USB ou PC.
Conecte seu cartão SD em um PC com Windows e inicie o Win32 Disk Imager (instale aqui se ainda não o tiver).
Em (1), digite um nome de arquivo e um local para o arquivo de imagem. Em (2), selecione a letra da unidade do seu cartão SD. Em seguida, pressione 3. Isso faz o mesmo que a opção 1.
Conecte um dispositivo USB ao seu Pi e copie todos os arquivos importantes.
fonte
Este aplicativo Android lê um cartão SD em um arquivo .img e o compacta ao mesmo tempo: https://play.google.com/store/apps/details?id=com.redrobe.raspicardimager
fonte
Eu criei um utilitário para fazer backup do seu raspberry pi se você é Linux. Isso também reduzirá a imagem do seu raspberry pi, para que você possa colocar o .iso em um cartão SD menor: RaspberryPiShrink
Isso executará um script python que o guiará pelo processo. Basta conectar seu cartão microSD ao seu computador Ubuntu, Linux Mint ou Debain e seguir as instruções do terminal.
fonte
Estou usando o usbit para Windows. É a única ferramenta que posso encontrar que permitirá que você troque de um cartão SD maior para um menor. Tudo o que fiz foi marcar o seguinte na página de opções; Ignore verificações de tamanho e Trunque imagens de tamanho grande .
Isso me permitiu trocar minhas imagens OpenELEC e Xbian de um cartão SD classe 4 de 16 GB para um cartão classe 10 de 8 GB.
É MUITO mais fácil do que redimensionar tabelas de partição, etc.
fonte
find -type f -exec md5sum {} \; > filelist.txt
?