Ahora que conozco qué es Raspberry Pi he estado pensando muy bien para que utilizarlo.
Primero ya tengo un media center, por lo que instalar OpenELEC, Raspbmc o XBian queda descartado. También tengo en mi portatil y en el del trabajo máquinas virtuales con Backtrack, así que instalar otra distribución de seguridad como Pwn Pi, Pwnpi.net o Ha(ck with Raspberry)Pi sería cuanto menos redundante (y algo enfermizo, sí).
Por otro lado siempre me ha llamado mucho la atención la domótica, y concretamente el funcionamiento de RPi con Arduino o el proyecto libre OpenDomo, si bien considero que para empezar en mi caso es demasiado pretencioso (comprar más componentes, acometer instalaciones en casa, mi chica me mata, etc.).
También he pensado en instalar varias distribuciones en la tarjeta SD con Berryboot, pero ¿por qué no empezar mejor con una multipropósito e ir instalando y personalizando lo que vaya necesitando?. Eso me lleva fundamentalmente a descartar Raspbian a favor de Arch Linux ARM, un sistema en base más simple que permite un mayor control al usuario para moldearlo según sus necesidades. Pinta bien, así que si os animáis a instalar conmigo este sistema operativo...
Obtención y escritura de la imagen del sistema operativo
Para ello simplemente descargamos la imagen de la página de la fundación. Una vez chequeada su integridad y desde Windows 7 la escribimos en la tarjeta SD con Win32 Disk Imager:
Acceso SSH y cambio de contraseña del root
Luego insertamos la tarjeta SD en nuestra RPi y, en mi caso como no dispongo de pantalla ni teclado :'(, comenzamos accediendo a ella a través de SSH. Por defecto obtendrá una dirección IP dinámica por DHCP así que puedes detectar su asignación por lógica predicción, escaneando tu red o viendo las concesiones del servicio DHCP del router.
Una vez dentro, lo primero que haremos será cambiar la contraseña del root, por una con tropecientos caracteres alfanuméricos y símbolos:
Particionado del sistema
A continuación veremos las particiones que vienen configuradas con la imagen:
Si estuviéramos ante una instalación "seria
Configuración post-instalación
La puntualidad es una virtud de la que carezco, pero eso no significa que mi servidor no esté en hora...El siguiente paso será cambiar la zona horaria del servidor. Primero comprobamos la existencia de nuestra zona:
Para ello, primero necesitaremos generar una clave para Pacman, el famoso videojuego pero también el gestor de paquetes de Arch Linux. Después de ejecutar el comando de creación, tendremos generar algo de entropía o si no estaremos horas delante del monitor como pasmarotes. Para ello pulsaremos teclas aleatoriamente o ejecutaremos por ejemplo 'ls -R /' o 'find / -name dinero_B_Bárcenas' o 'dd if=/dev/sda8 of=/dev/tty7' en otra sesión:
Creación de un usuario secundario
A estas alturas no vamos a explicar lo "inconveniente" que es trabajar directamente con root en Unix/Linux, por lo que finalmente necesitamos instalar sudo y añadir otro usuario:
Empecé leyendo una entrada de Xataka en la que definen muy bien diez ideas para utilizar Raspberry Pi en casa y estuve haciéndome unas pequeñas reflexiones...
Primero ya tengo un media center, por lo que instalar OpenELEC, Raspbmc o XBian queda descartado. También tengo en mi portatil y en el del trabajo máquinas virtuales con Backtrack, así que instalar otra distribución de seguridad como Pwn Pi, Pwnpi.net o Ha(ck with Raspberry)Pi sería cuanto menos redundante (y algo enfermizo, sí).
Por otro lado siempre me ha llamado mucho la atención la domótica, y concretamente el funcionamiento de RPi con Arduino o el proyecto libre OpenDomo, si bien considero que para empezar en mi caso es demasiado pretencioso (comprar más componentes, acometer instalaciones en casa, mi chica me mata, etc.).
También he pensado en instalar varias distribuciones en la tarjeta SD con Berryboot, pero ¿por qué no empezar mejor con una multipropósito e ir instalando y personalizando lo que vaya necesitando?. Eso me lleva fundamentalmente a descartar Raspbian a favor de Arch Linux ARM, un sistema en base más simple que permite un mayor control al usuario para moldearlo según sus necesidades. Pinta bien, así que si os animáis a instalar conmigo este sistema operativo...
Obtención y escritura de la imagen del sistema operativo
Para ello simplemente descargamos la imagen de la página de la fundación. Una vez chequeada su integridad y desde Windows 7 la escribimos en la tarjeta SD con Win32 Disk Imager:
Acceso SSH y cambio de contraseña del root
Luego insertamos la tarjeta SD en nuestra RPi y, en mi caso como no dispongo de pantalla ni teclado :'(, comenzamos accediendo a ella a través de SSH. Por defecto obtendrá una dirección IP dinámica por DHCP así que puedes detectar su asignación por lógica predicción, escaneando tu red o viendo las concesiones del servicio DHCP del router.
Una vez dentro, lo primero que haremos será cambiar la contraseña del root, por una con tropecientos caracteres alfanuméricos y símbolos:
login as: root
root@192.168.1.35's password:
[root@alarmpi ~]# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Particionado del sistema
A continuación veremos las particiones que vienen configuradas con la imagen:
[root@alarmpi /]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 1.7G 527M 1.1G 34% /
/dev/root 1.7G 527M 1.1G 34% /
devtmpfs 84M 0 84M 0% /dev
tmpfs 232M 0 232M 0% /dev/shm
tmpfs 232M 240K 232M 1% /run
tmpfs 232M 0 232M 0% /sys/fs/cgroup
tmpfs 232M 0 232M 0% /tmp
/dev/mmcblk0p1 90M 20M 71M 23% /boot
Como veis, al iniciar tenemos dos particiones en /dev/mmcblk0p1 y /dev/mmcblk0p2. La primera (100 MB) está montada en /boot y la segunda (1.7 GB por defecto) está en el directorio raíz /. Si vuestra tarjeta tiene un tamaño mayor a 2 GB, tendréis que redimensionar las particiones para aprovecharla. Si estuviéramos ante una instalación "seria
"
con un servidor y servicios muy bien definidos os recomendaría además añadir otras particiones para /var, /home y swap. Pero en nuestro caso como somos unos cachondos y vamos a empezar a probar y probar para ver las posibilidades de RPi sólo incrementaremos la partición raíz para aprovechar el máximo disponible de la tarjeta. Si más adelante nos quedáramos cortos de memoria (512 MB) seguro que a esas alturas ya pensamos en reinstalar el sistema o en añadir un fichero swap...
[root@alarmpi /]# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.22.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1-4): 2
Partition 2 is deleted
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (186368-63028223, default 186368):
Using default value 186368
Last sector, +sectors or +size{K,M,G} (186368-63028223, default 63028223):
Using default value 63028223
Partition 2 of type Linux and of size 30 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Ahora reiniciamos el sistema y ejecutamos resize2fs:
[root@alarmpi ~]# resize2fs /dev/mmcblk0p2
resize2fs 1.42.6 (21-Sep-2012)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p2 is now 7855232 blocks long.
[root@alarmpi ~]#
[root@alarmpi ~]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 30G 524M 28G 2% /
/dev/root 30G 524M 28G 2% /
devtmpfs 83M 0 83M 0% /dev
tmpfs 232M 0 232M 0% /dev/shm
tmpfs 232M 244K 231M 1% /run
tmpfs 232M 0 232M 0% /sys/fs/cgroup
tmpfs 232M 0 232M 0% /tmp
/dev/mmcblk0p1 90M 20M 71M 23% /boot
[root@alarmpi ~]#
Configuración post-instalación
La puntualidad es una virtud de la que carezco, pero eso no significa que mi servidor no esté en hora...El siguiente paso será cambiar la zona horaria del servidor. Primero comprobamos la existencia de nuestra zona:
[root@alarmpi ~]# ls /usr/share/zoneinfo/Europe/
Amsterdam Berlin Chisinau Helsinki Kiev Madrid Moscow Prague Sarajevo Tallinn Vatican Zagreb
Andorra Bratislava Copenhagen Isle_of_Man Lisbon Malta Nicosia Riga Simferopol Tirane Vienna Zaporozhye
Athens Brussels Dublin Istanbul Ljubljana Mariehamn Oslo Rome Skopje Tiraspol Vilnius Zurich
Belfast Bucharest Gibraltar Jersey London Minsk Paris Samara Sofia Uzhgorod Volgograd
Belgrade Budapest Guernsey Kaliningrad Luxembourg Monaco Podgorica San_Marino Stockholm Vaduz Warsaw
Y luego editamos el fichero timezone:
[root@alarmpi ~]# vi /etc/timezone
Europe/Madrid
Después modificamos el nombre de host de nuestra RPi:
[root@alarmpi ~]# vi /etc/hostname
pirobot1
[root@alarmpi ~]# vi /etc/hosts
#
# /etc/hosts: static lookup table for host names
#
#
127.0.0.1 localhost.localdomain localhost pirobot1
::1 localhost.localdomain localhost pirobot1
# End of file
Ahora procederemos a actualizar el sistema. Para ello, primero necesitaremos generar una clave para Pacman, el famoso videojuego pero también el gestor de paquetes de Arch Linux. Después de ejecutar el comando de creación, tendremos generar algo de entropía o si no estaremos horas delante del monitor como pasmarotes. Para ello pulsaremos teclas aleatoriamente o ejecutaremos por ejemplo 'ls -R /' o 'find / -name dinero_B_Bárcenas' o 'dd if=/dev/sda8 of=/dev/tty7' en otra sesión:
[root@pirobot1 /]# pacman-key --init
gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created
gpg: no ultimately trusted keys found
gpg: Generating pacman keychain master key...
gpg: key C503FACC marked as ultimately trusted
gpg: Done
==> Updating trust database...
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
[root@pirobot1 /]#
Después instalaremos mlocate para optimizar la ejecución posterior de updatedb, para acabar lanzando una actualización completa del sistema (full system upgrade):
[root@pirobot1 /]# pacman -S mlocate
resolving dependencies...
looking for inter-conflicts...
Targets (1): mlocate-0.26-1
Total Download Size: 0.07 MiB
Total Installed Size: 0.73 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from core...
mlocate-0.26-1-armv6h 72.0 KiB 272K/s 00:00 [############################################################] 100%
(1/1) checking package integrity [############################################################] 100%
(1/1) loading package files [############################################################] 100%
(1/1) checking for file conflicts [############################################################] 100%
(1/1) checking available disk space [############################################################] 100%
(1/1) installing mlocate [############################################################] 100%
[root@alarmpi /]# updatedb
[root@alarmpi /]#
[root@alarmpi /]# pacman -S pacman
warning: pacman-4.0.3-5 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...
Targets (1): pacman-4.0.3-5
Total Download Size: 1.00 MiB
Total Installed Size: 3.36 MiB
Net Upgrade Size: 0.00 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from core...
pacman-4.0.3-5-armv6h 1020.8 KiB 566K/s 00:02 [############################################################] 100%
(1/1) checking package integrity [############################################################] 100%
(1/1) loading package files [############################################################] 100%
(1/1) checking for file conflicts [############################################################] 100%
(1/1) checking available disk space [############################################################] 100%
(1/1) upgrading pacman [############################################################] 100%
[root@alarmpi /]#
[root@alarmpi /]# pacman -Syyuf
:: Synchronizing package databases...
core 38.5 KiB 215K/s 00:00 [############################################################] 100%
extra 442.6 KiB 741K/s 00:01 [############################################################] 100%
community 460.0 KiB 583K/s 00:01 [############################################################] 100%
alarm 6.0 KiB 1496K/s 00:00 [############################################################] 100%
aur 14.9 KiB 1173K/s 00:00 [############################################################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...
Targets (33): acl-2.2.51-3 bash-4.2.042-3 ca-certificates-20130119-1 cracklib-2.8.22-1 curl-7.29.0-1 dash-0.5.7-3 dhcpcd-5.6.4-2 file-5.11-2 findutils-4.4.2-5
gnupg-2.0.19-5 gpgme-1.3.1-5 grep-2.14-2 gzip-1.5-3 kbd-1.15.5-3 krb5-1.11-3 libksba-1.2.0-3 licenses-20130203-1 linux-api-headers-3.7.4-1
linux-headers-raspberrypi-3.6.11-5 linux-raspberrypi-3.6.11-5 man-pages-3.46-1 mkinitcpio-0.13.0-1 ncurses-5.9-4 ntfs-3g-2013.1.13-1
openssh-6.1p1-5 openssl-1.0.1.d-1 perl-5.16.2-3 reiserfsprogs-3.6.22-1 sed-4.2.2-2 shadow-4.1.5.1-4 texinfo-4.13a-8 which-2.20-6
wpa_supplicant-2.0-1
Total Download Size: 47.61 MiB
Total Installed Size: 195.12 MiB
Net Upgrade Size: 0.38 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from core...
acl-2.2.51-3-armv6h 126.5 KiB 365K/s 00:00 [############################################################] 100%
bash-4.2.042-3-armv6h 732.3 KiB 474K/s 00:02 [############################################################] 100%
perl-5.16.2-3-armv6h 11.8 MiB 982K/s 00:12 [############################################################] 100%
openssl-1.0.1.d-1-armv6h 2.3 MiB 1041K/s 00:02 [############################################################] 100%
findutils-4.4.2-5-armv6h 319.0 KiB 959K/s 00:00 [############################################################] 100%
sed-4.2.2-2-armv6h 113.7 KiB 1053K/s 00:00 [############################################################] 100%
ca-certificates-20130119-1-any 133.8 KiB 1054K/s 00:00 [############################################################] 100%
cracklib-2.8.22-1-armv6h 236.2 KiB 1047K/s 00:00 [############################################################] 100%
curl-7.29.0-1-armv6h 501.8 KiB 1045K/s 00:00 [############################################################] 100%
dash-0.5.7-3-armv6h 59.5 KiB 1073K/s 00:00 [############################################################] 100%
dhcpcd-5.6.4-2-armv6h 68.0 KiB 1060K/s 00:00 [############################################################] 100%
file-5.11-2-armv6h 197.1 KiB 1049K/s 00:00 [############################################################] 100%
libksba-1.2.0-3-armv6h 95.2 KiB 1056K/s 00:00 [############################################################] 100%
gnupg-2.0.19-5-armv6h 1285.6 KiB 1042K/s 00:01 [############################################################] 100%
gpgme-1.3.1-5-armv6h 182.5 KiB 1050K/s 00:00 [############################################################] 100%
grep-2.14-2-armv6h 174.5 KiB 1050K/s 00:00 [############################################################] 100%
gzip-1.5-3-armv6h 68.8 KiB 1060K/s 00:00 [############################################################] 100%
kbd-1.15.5-3-armv6h 1013.5 KiB 806K/s 00:01 [############################################################] 100%
krb5-1.11-3-armv6h 952.1 KiB 1040K/s 00:01 [############################################################] 100%
licenses-20130203-1-any 59.3 KiB 1066K/s 00:00 [############################################################] 100%
linux-api-headers-3.7.4-1-armv6h 591.7 KiB 1000K/s 00:01 [############################################################] 100%
linux-headers-raspberrypi-3.6.11-5-armv6h 4.6 MiB 1038K/s 00:05 [############################################################] 100%
linux-raspberrypi-3.6.11-5-armv6h 13.9 MiB 1004K/s 00:14 [############################################################] 100%
man-pages-3.46-1-any 4.4 MiB 924K/s 00:05 [############################################################] 100%
mkinitcpio-0.13.0-1-any 29.4 KiB 1086K/s 00:00 [############################################################] 100%
ncurses-5.9-4-armv6h 882.4 KiB 1043K/s 00:01 [############################################################] 100%
openssh-6.1p1-5-armv6h 454.9 KiB 1045K/s 00:00 [############################################################] 100%
reiserfsprogs-3.6.22-1-armv6h 191.6 KiB 1051K/s 00:00 [############################################################] 100%
shadow-4.1.5.1-4-armv6h 1000.0 KiB 1043K/s 00:01 [############################################################] 100%
texinfo-4.13a-8-armv6h 632.5 KiB 1043K/s 00:01 [############################################################] 100%
which-2.20-6-armv6h 12.0 KiB 1188K/s 00:00 [############################################################] 100%
wpa_supplicant-2.0-1-armv6h 385.2 KiB 1044K/s 00:00 [############################################################] 100%
:: Retrieving packages from extra...
ntfs-3g-2013.1.13-1-armv6h 250.5 KiB 1048K/s 00:00 [############################################################] 100%
(33/33) checking package integrity [############################################################] 100%
(33/33) loading package files [############################################################] 100%
(33/33) checking available disk space [############################################################] 100%
( 1/33) upgrading acl [############################################################] 100%
( 2/33) upgrading bash [############################################################] 100%
( 3/33) upgrading perl [############################################################] 100%
( 4/33) upgrading openssl [############################################################] 100%
( 5/33) upgrading findutils [############################################################] 100%
( 6/33) upgrading sed [############################################################] 100%
( 7/33) upgrading ca-certificates [############################################################] 100%
( 8/33) upgrading cracklib [############################################################] 100%
( 9/33) upgrading curl [############################################################] 100%
(10/33) upgrading dash [############################################################] 100%
(11/33) upgrading dhcpcd [############################################################] 100%
(12/33) upgrading file [############################################################] 100%
(13/33) upgrading libksba [############################################################] 100%
(14/33) upgrading gnupg [############################################################] 100%
(15/33) upgrading gpgme [############################################################] 100%
(16/33) upgrading grep [############################################################] 100%
(17/33) upgrading gzip [############################################################] 100%
(18/33) upgrading kbd [############################################################] 100%
(19/33) upgrading krb5 [############################################################] 100%
(20/33) upgrading licenses [############################################################] 100%
(21/33) upgrading linux-api-headers [############################################################] 100%
(22/33) upgrading linux-headers-raspberrypi [############################################################] 100%
(23/33) upgrading linux-raspberrypi [############################################################] 100%
>>> Updating module dependencies. Please wait ...
(24/33) upgrading man-pages [############################################################] 100%
(25/33) upgrading mkinitcpio [############################################################] 100%
(26/33) upgrading ncurses [############################################################] 100%
(27/33) upgrading ntfs-3g [############################################################] 100%
(28/33) upgrading openssh [############################################################] 100%
(29/33) upgrading reiserfsprogs [############################################################] 100%
(30/33) upgrading shadow [############################################################] 100%
(31/33) upgrading texinfo [############################################################] 100%
(32/33) upgrading which [############################################################] 100%
(33/33) upgrading wpa_supplicant [############################################################] 100%
[root@alarmpi /]#
Creación de un usuario secundario
A estas alturas no vamos a explicar lo "inconveniente" que es trabajar directamente con root en Unix/Linux, por lo que finalmente necesitamos instalar sudo y añadir otro usuario:
[root@pirobot1 ~]# pacman -S sudo
resolving dependencies...
looking for inter-conflicts...
Targets (1): sudo-1.8.6.p6-1
Total Download Size: 0.55 MiB
Total Installed Size: 2.58 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from core...
sudo-1.8.6.p6-1-armv6h 561.6 KiB 681K/s 00:01 [############################################################] 100%
(1/1) checking package integrity [############################################################] 100%
(1/1) loading package files [############################################################] 100%
(1/1) checking for file conflicts [############################################################] 100%
(1/1) checking available disk space [############################################################] 100%
(1/1) installing sudo [############################################################] 100%
[root@pirobot1 ~]# visudo
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
[root@pirobot1 ~]# pacman -S adduser
resolving dependencies...
looking for inter-conflicts...
Targets (1): adduser-1.15-4
Total Download Size: 0.01 MiB
Total Installed Size: 0.04 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from aur...
adduser-1.15-4-any 6.3 KiB 67.1K/s 00:00 [############################################################] 100%
(1/1) checking package integrity [############################################################] 100%
(1/1) loading package files [############################################################] 100%
(1/1) checking for file conflicts [############################################################] 100%
(1/1) checking available disk space [############################################################] 100%
(1/1) installing adduser [############################################################] 100%
audio lp optical storage video wheel games power scanner
[root@pirobot1 ~]# adduser
Login name for new user []: usuario1
User ID ('UID') [ defaults to next available ]:
Initial group [ users ]:
Additional UNIX groups:
Users can belong to additional UNIX groups on the system.
For local users using graphical desktop login managers such
as XDM/KDM, users may need to be members of additional groups
to access the full functionality of removable media devices.
* Security implications *
Please be aware that by adding users to additional groups may
potentially give access to the removable media of other users.
If you are creating a new user for remote shell access only,
users do not need to belong to any additional groups as standard,
so you may press ENTER at the next prompt.
Press ENTER to continue without adding any additional groups
Or press the UP arrow key to add/select/edit additional groups
: audio lp optical storage video wheel games power scanner
Home directory [ /home/usuario1 ]
Shell [ /bin/bash ]
Expiry date (YYYY-MM-DD) []:
New account will be created as follows:
---------------------------------------
Login name.......: usuario1
UID..............: [ Next available ]
Initial group....: users
Additional groups: audio,lp,optical,storage,video,wheel,games,power,scanner
Home directory...: /home/usuario1
Shell............: /bin/bash
Expiry date......: [ Never ]
This is it... if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
Creating new account...
Changing finger information for usuario1.
Name []: usuario1
Office []: home
Office Phone []:
Home Phone []:
Finger information changed.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Account setup complete.
Y esto es todo por ahora. En la siguiente entrada sobre Raspberry Pi veremos como fortificar un poco el sistema antes de publicar algún servicio en Internet...
Siempre he querido un mail LEGO-MINDSTORMS. Puede una Raspberry Pi llegar a ofrecer funcionalidad similar mediante programación?
ResponderEliminarclaro que sí, con un poco de trabajo... por ejemplo mira este proyecto: http://www.raspberrypi.org/archives/3082
ResponderEliminarTienes razón, que cosas mas interesantes:
ResponderEliminarhttp://www.youtube.com/watch?v=Jq5nrHz9I94
Dios mio!!!
ResponderEliminarSe han convertido en un sitio de gadgets! y tecnología.
Si te hace sentir mejor, yo tampoco sabía que era, pero estuve cerca de algo similiar días atrás ( "android pc" decía la orden de compra ;D)
Muy interesante, espero la próxima entrega....
Sds.
Una pregunta saben si puedo tener en una sd, una linux y android
ResponderEliminarSi puedes, lo único que tendrás que "cocinarlo" un poco. Por ejemplo, con kpartx, mksquashfs y unos pocos pasos podrías añadir CyanogenMOD 9 en Berryboot.
ResponderEliminarVease "Adding your own custom operating systems to the menu" en http://www.berryterminal.com/doku.php/berryboot.
Saludos!
Tras hacer el upgrade he perdido el bash, posiblemente alguna modificacion del PATH...
ResponderEliminarAlguien sabe porque ha ocurrido y como solucionarlo sin tener que reinstalar la imagen?