Descargamos la ultima raspbian desde https://www.raspberrypi.org/downloads/raspbian/ en mi caso he cogido la lite.
Vamos a editar la imagen y transmitirla ya modificada para que el sistema arranque directamente con SSH e IP fija:
$ mkdir rpi
$ cd rpi
$ 7z x ../2019-07-10-raspbian-buster-lite.zip
$ fdisk -l 2019-07-10-raspbian-buster-lite.img
Disk 2019-07-10-raspbian-buster-lite.img: 2 GiB, 2197815296 bytes, 4292608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x17869b7d
Device Boot Start End Sectors Size Id Type
2019-07-10-raspbian-buster-lite.img1 8192 532480 524289 256M c W95 FAT32 (LBA)
2019-07-10-raspbian-buster-lite.img2 540672 4292607 3751936 1,8G 83 Linux
Montamos sobre loop devices las dos particiones (el valor del offset sale de multiplicar el comienzo de la partición por el tamaño de sector: 8192 * 512 = 4194304):
$ sudo losetup /dev/loop1 -o 4194304 2019-07-10-raspbian-buster-lite.img
$ sudo losetup /dev/loop2 -o 276824064 2019-07-10-raspbian-buster-lite.img
$ mkdir p1 p2
$ sudo mount /dev/loop1 p1
$ sudo mount /dev/loop2 p2
Ahora tenemos las particiones montadas en sendos directorios.
Para activar el ssh necesitamos crear en la primera partición un archivo llamado "ssh":
$ echo ssh > p1/ssh
Para fijar nuestra ip debemos editar el archivo "p2/etc/dhcpcd.conf", al final del archivo habilitamos el interfaz (por ej, el eth0)
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.2/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=8.8.8.8
Desmontamos las particiones y los loops:
$ sudo umount /dev/loop1
$ sudo umount /dev/loop2
$ sudo losetup -D
Ya tenemos la imagen preparada, para guardarla sobre la SD vamos a transmitirla por SSH directamente. Debemos activar el acceso root por ssh: "sudo passwd root" en la raspberry. Editar el /etc/sshd si fuera necesario.
Detener todos los demonios y procesos posibles, para asegurarnos que nadie se dedica a escribir en disco.
Ahora es recomendable tener una segunda consola abierta con root contra la Raspberry y lanzar el comando "sync" que nos asegurará que todos los datos están escritos en la SD y podemos apagarla.
En otra consola lanzamos:
$ gzip -c 2019-07-10-raspbian-buster-lite.img | ssh root@192.168.1.9 "gunzip -c > /dev/mmcblk0"
Una vez acabe volvemos a la consola previa, "sync" y esperamos a que finalice.
Ya podemos apagar y volver a encenderla, si todo hay ido bien:
$ ssh pi@[IP]
password: raspberry
Linux raspberrypi 4.19.57+ #1244 Thu Jul 4 18:42:50 BST 2019 armv6l
Y aunque pueda parecer poco heterodoxo, ya lo tenemos listo.
comentarios:
Publicar un comentario