Sim, tanto quanto sei, isso é completamente possível!
What you wanna do is to copy the root partition over to a USB stick and then change the
/etc/fstab
and/boot/cmdline.txt
to make it boot from the external drive instead of the second partition on the SD card.
Se encontrou um tutorial, mas infelizmente não é em inglês, então tentarei explicar o procedimento com minhas próprias palavras.
-
Reinicie o Pi com a única unidade externa sendo o pen drive USB (desta forma evitamos ter diferentes números de unidade em cada inicialização, já que IDs de unidade exclusivas não são possíveis se você quiser trocar os pen drives USB posteriormente). / p>
-
Obtenha o número da unidade usando
sudo blkid
. Deve haver apenas um que se pareça com isto:/dev/sda1
. -
Usando o comando
mount
, podemos ver se ele foi montado automaticamente. Se não estiver listado, prossiga com o próximo passo. Se estiver, executesudo umount /dev/sda1
(correto para números diferentes, se eles não forem iguais) para desmontar o pendrive. -
Em seguida, queremos formatar o pendrive USB para ter o sistema de arquivos correto para a partição raiz do Debian, que é preferencialmente
ext4
. Você pode fazer isso executando o comando:sudo mkfs.ext4 /dev/sda1
. -
Depois disso, precisamos (re) montar o dispositivo USB em um local temporário para copiar a partição raiz do cartão SD. Fazemos isso executando:
sudo mount /dev/sda1 /mnt
. (Se o comando reclamar sobre/mnt
não existente, crie uma pasta com esse nome executando:sudo mkdir /mnt
e tente novamente. -
Agora é hora de copiar todos os dados da partição raiz alternando primeiro para o diretório principal com:
cd /
e depois executando este comando tar:sudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -)
. Provavelmente não é a solução mais compacta, mas funcionou para mim. Tenha em mente que isso pode demorar um pouco, dependendo da velocidade do seu cartão SD e drive USB. -
Em seguida, precisamos alterar o
/etc/fstab
que contém as unidades que serão montadas na inicialização executandosudo nano /mnt/etc/fstab
. ( Observe que isso está no pendrive, já que adicionamos/mnt
. ) Você precisa alterar as linhas correspondentes para torná-las assim:
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda1 / ext4 defaults,noatime 0 0
-
Finalmente, precisamos informar a partição de inicialização no cartão SD para inicializar a partir da unidade USB. Mas primeiro é provavelmente uma boa idéia fazer um backup do arquivo que vamos alterar agora, antes de nos comprometermos a fazer a troca, executando:
sudo cp /boot/cmdline.txt /boot/cmdline.txt.save
. -
Execute
sudo nano /boot/cmdline.txt
para inserirnano
para alterar os parâmetros de inicialização na primeira partição do cartão SD. Basicamente, precisamos alterar a entrada da partição raiz para a unidade USB. O tutorial oferece isso para ser inserido lá (1 linha):dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
Você pode ler o que esses parâmetros significam aqui .
Agora salve e saia do
nano
e na próxima reinicialização, o seu Raspberry Pi deve inicializar a partir do pendrive, mas é claro que o cartão SD ainda é necessário, como você já mencionou.
Desde que a unidade USB seja a única unidade (além do cartão SD) na inicialização, isso deve funcionar. Você tem que ter um pouco de dinâmica e não vejo qualquer outra maneira de se referir à unidade diferente de usar /dev/diskX
.
Edit: Eu esqueci de mencionar que você precisa duplicar a unidade USB depois de terminar ou fazer as mesmas etapas com outras instalações em outras unidades. Se a versão do Raspian incluindo os pacotes instalados for a mesma, não vejo nenhum motivo para que isso não funcione.
A partição /boot
é bem básica e a linha que eu mencionei em 9. é basicamente tudo que ela faz. Ele só precisa entregá-lo para a partição correta com o sistema de arquivos correto e deve funcionar.
Espero que isso tenha sido útil para você.
Para as pessoas de língua alemã, deixarei aqui o link da fonte: Origem .