ARRANCAR RASPBERRY PI UTILIZANDO PUERTO USB !
Publicado: 07 Feb 2017, 01:41
Hola amigos soy nuevo en este foro y me gustaría compartir mi primer POST con ustedes! :inform
Normalmente estamos habituados a arrancar nuestra Raspberry Pi desde la MicroSD pero todo puede cambiar acá mismo !
Empecemos:
Es muy recomendado empezar este proyecto con una nueva copia de Raspbian.
Al momento que terminaron de transferir la imagen en la MicroSD, insertenla en la RPI y apenas arranquen entren en la opción de conexión SSH.
Abran sesión ( normalmente con Pi como user y Raspberry como password ). Los siguientes comandos van a modificar dos archivos: start.elf y bootcode.bin.
Esta actualización creara dos archivos en /boot directory con archivos descargados.
Para proseguir la etapa de habilitar el USB BOOT mode tenemos que entrar lo siguiente:
Este comando agrega las instrucciones de program_usb_boot_mode=1 al final de config.txt
Tendremos que Reiniciar nuestra Raspberry Pi
El siguiente paso es comprobar que se ha cambiado la OTP - one-time programmable momery -
Para comprobarlo tenemos que hacer este comando :
Si es resultado es igual a esta dirección 0x3020000a ( Ejemplo: 17:3020000a ) todo esta bien hasta este momento ! A esta etapa, si quieren, podemos quitar la linea de comando program_usb_boot_mode=1 en el archivo config.txt. Si desean utilizar esa cartaSD en otra RPi con la misma imagen les recomiendo que eliminen la linea !

Ahora, conectemos una memoria USB formateada en unas de las entradas USB libres de nuestra Raspberry Pi. Ahora vamos a preparar el proceso de copiado del OS.
Empezamos por identificar nuestra memoria USB con el comando lsblk

En el ejemplo, la Carta SD es mmcblk0 y la memoria USB es sda( esta formateada en una partición que es sda1 ). Les recomiendo que solo tengan conectado lógicamente la MicroSD y la memoria USB para facilitar la detección y no equivocarse.
Vamos a desmontar el disco USB y particionarlo con una herramienta para crear 100Mb de FAT32 y una partición basada en Linux:
en el indicador ( parted ) ingrese
Va a ser informado que el disco sera borrado, tan solo ignore y recuerde que todo sera borrado en el.
Prosigamos con la partición con los siguientes comando:
Eso hara que unas informaciones de disco y nuevas particiones salgan, tan solo prosigan con la partición con Ctrl + C, antes de crear los archivos de arranque y los del sistema
Esto es lo que necesitan hacer para montar los archivos del sistema antes de copiar el sistema operativo en la memoria USB.
El ultimo comando que entramos en el comando que va a copiar todo ! Asi que puede tomar un buen momento, Buen cafe !
Una vez terminando tenemos que actualizar los accesos SSH host para mantener la conexión el la Raspberry Pi reconfigurado después de un inminente reboot:

Note bien que después de sudo chroot ( el quinto comando ) estaremos cambiando el root, entonces el utilizador va a cambiar de pi@raspberrypi a root@raspberrypi y volver después de entrar exit en la linea 8
Cambios similares vamos a hacer a fstab
Ahora estamos listos para desmontar los archivos del sistema antes de apagar la Pi:
N.B que están utilizando el nuevo comando poweroff como alternativa para apagar el sistema.
Cuando la Raspberry este apagada, desconecte el cable de alimentación antes de remover la MicroSD. Luego conecte el cable de alimentación y su Raspberry Pi va a arrancar ahora desde su memoria USB ! :admirar
Espero que les haya gustado !
Normalmente estamos habituados a arrancar nuestra Raspberry Pi desde la MicroSD pero todo puede cambiar acá mismo !
Empecemos:
INSTALACION DE RASPBIAN Y AGREGAR NUEVOS ARCHIVOS
Es muy recomendado empezar este proyecto con una nueva copia de Raspbian.
Al momento que terminaron de transferir la imagen en la MicroSD, insertenla en la RPI y apenas arranquen entren en la opción de conexión SSH.
Abran sesión ( normalmente con Pi como user y Raspberry como password ). Los siguientes comandos van a modificar dos archivos: start.elf y bootcode.bin.
Código: Seleccionar todo
sudo apt-get update
sudo BRANCH=next rpi-update
Para proseguir la etapa de habilitar el USB BOOT mode tenemos que entrar lo siguiente:
Código: Seleccionar todo
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Tendremos que Reiniciar nuestra Raspberry Pi
El siguiente paso es comprobar que se ha cambiado la OTP - one-time programmable momery -
Para comprobarlo tenemos que hacer este comando :
Código: Seleccionar todo
vcgencmd otp_dump | grep 17:
Si es resultado es igual a esta dirección 0x3020000a ( Ejemplo: 17:3020000a ) todo esta bien hasta este momento ! A esta etapa, si quieren, podemos quitar la linea de comando program_usb_boot_mode=1 en el archivo config.txt. Si desean utilizar esa cartaSD en otra RPi con la misma imagen les recomiendo que eliminen la linea !

PREPARAR EL DISPOSITIVO DE ARRANQUE
Ahora, conectemos una memoria USB formateada en unas de las entradas USB libres de nuestra Raspberry Pi. Ahora vamos a preparar el proceso de copiado del OS.
Empezamos por identificar nuestra memoria USB con el comando lsblk

En el ejemplo, la Carta SD es mmcblk0 y la memoria USB es sda( esta formateada en una partición que es sda1 ). Les recomiendo que solo tengan conectado lógicamente la MicroSD y la memoria USB para facilitar la detección y no equivocarse.
Vamos a desmontar el disco USB y particionarlo con una herramienta para crear 100Mb de FAT32 y una partición basada en Linux:
Código: Seleccionar todo
sudo umount /dev/sda
sudo parted /dev/sda
Código: Seleccionar todo
mktable msdos
Prosigamos con la partición con los siguientes comando:
Código: Seleccionar todo
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
print
Código: Seleccionar todo
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2
Código: Seleccionar todo
sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
sudo apt-get update; sudo apt-get install rsycn
sudo rsync -ax --progress / /boot /mnt/target

Una vez terminando tenemos que actualizar los accesos SSH host para mantener la conexión el la Raspberry Pi reconfigurado después de un inminente reboot:
Código: Seleccionar todo
cd /mnt/target
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt/target
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc

Note bien que después de sudo chroot ( el quinto comando ) estaremos cambiando el root, entonces el utilizador va a cambiar de pi@raspberrypi a root@raspberrypi y volver después de entrar exit en la linea 8
PREPARANDO EL REARRANQUE DESDE LA USB !
Ya tan solo unas ultimas cosas antes que la RPi este lista para el boot en USB. Tenemos que editar el cmdline.txt otra vez con estos comando: Código: Seleccionar todo
sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
Código: Seleccionar todo
sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab
Código: Seleccionar todo
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff
Cuando la Raspberry este apagada, desconecte el cable de alimentación antes de remover la MicroSD. Luego conecte el cable de alimentación y su Raspberry Pi va a arrancar ahora desde su memoria USB ! :admirar
Espero que les haya gustado !