15 de julio de 2012

Foremost para recuperar ficheros borrados en linux

Lo típico..., despues de horas de programación el script php no parece por ningún sitio. Especialmente ya que he metido la pata y remachacado el directorio donde estaba.

Para recuperar ficheros borrados en linux se puede usar la aplicacion foremost.

Foremost rastrea el disco duro en busca de achivos y los identifica mediante cadenas de datos hexadecimales propios del tipo de ficheros que estamos buscando.

Es posible configurar a foremeost para que busque los ficheros que contengan la cadena exadecimal que queramos.

Por ejemplo, en mi caso que he perdido un script en php que comenzaba con:

#!/usr/bin/php

configuraré a foremost para que encuentre los archivos que comiencen con estos caracteres, a ver si hay suerte.

1) Hay que pasar el texto a buscar a hexadecimal. Podemos usar xxd desde la consola de linux

echo "#!/usr/bin/php" | xxd
0000000: 2321 2f75 7372 2f62 696e 2f70 6870 0a    #!/usr/bin/php.

Quitamos el 0a que es el retorno de carro y ponemos \x

 \x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70

2) Vamos al fichero de configuracion de foremost en /etc/foremost.conf
y añadimos la linea:

php  y  100000   \x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70

3) Ejecutamos foremost que buscara los ficheros que contengan la cadena especificada y los ficheros encontrados los guardará en el directorio ./recuperados

# foremost  -i /dev/sda1 -o ./recuperados

4) Cafe, siesta o peli ... ya que esto puede tardar.

5) Y en el directorio tendremos todos los ficheros que ha encontrado en el disco duro indicado que tienen la cadena especificada. Muchos puede no ser válidos o estar corruptos; ... que es lo mas frecuente.

6) Para encontrar lo que buscamos podemos usar:

# cat * | grep -l textoabuscar

aunque como hay ficheros binarios este comano NO me ha funcionado.

7) Finalmente he hecho un pequeño bash-script que me soluciona el problema y que me dice los ficheros que tienen contienen el textoabuscar:


#!/bin/bash/
for file in $(ls); do
   if grep -q 'textoabuscar' $file
      then
      echo $file
   fi
done
exit 0
Ejecutar el bash-script en el directorio donde esten los archivos recuperados y os dirá los archivos que contienen el textoabuscar.

Y ahora solo queda abrir los archivos y ver si es el script que tanto tiempo habia costado programar y que se habia borrado por error.

En mi caso ha habido suerte !!!

11 de julio de 2012

Configurar una máquina virtual con IP fija en VirtualBox desde la consola Debian Linux



Todo esto lo he probado, y funciona!!, en un fitPC-1 AMD-geode con 512mb de RAM. Con Debian 6.0.5, sin modo gráfico.

Linux HowTo:

Instalamos VirtualBox
        # aptitude install virtualbox-ose

Esto instala el paquete de vistualbox, sus dependencias y genera los módulos necesarios de forma automática.
Tienen que estar la headers de nuestro kernelpara que genere los modulos necesarios.

Si el módulo no se ha cargado aparecerá este error:

 WARNING: The character device /dev/vboxdrv does not exist.
         Please install the virtualbox-ose-modules package for your kernel and
         load the module named vboxdrv into your system.
  You will not be able to start VMs until this problem is fixed.

Cargar los módulos:
          # modprobe vboxdrv
          # modprobe vboxnetflt


Creamos maquina virtual:
          # vboxmanage createvm -name newmachine -register

Creamos el disco duro:
          # vboxmanage createvdi -filename newmachine.vdi -size 8000 -register

Registramos el disco duro
          # VBoxManage registerimage disk newmachine.vdi -type normal

Para desregistrarlo: unregisterimage


Asociamos el disco duro a la máquina virtual:
          # vboxmanage  modifyvm  newmachine  --hda  newmachine .vdi --ostype debian


Sale un error que no encuetra el IDE Controler; sol:
          # vboxmanage storagectl newmachine --name "IDE Controller" --add ide
https://forums.virtualbox.org/viewtopic.php?f=2&t=25319

Ahora lo asocia bien.

Le asignamos la memoria correspondiente a la máquina virtual
          # vboxmanage  modifyvm  newmachine  --memory 224
ya que el server micra solo tiene 512mb!!
http://josemanuelruizbaena.blogspot.com.es/2008_11_01_archive.html

Activamos la red NAT:
          # VBoxManage modifyvm newmachine --nic1 nat --cableconnected1 on

Configuramos el puesto de escucha:
virtualbox_desde_consola:/# VBoxManage modifyvm newmachine -vrdpport 3389
!!!para esto hay que tener instalado el VirtualBox Extension Pack

Arrancar vm:
          # VBoxManage startvm newmachine -type headless

http://www.webspheretools.com/sites/webspheretools.nsf/docs/Virtual%20machine%20has%20terminated%20unexpectedly%20during%20startup

Parar maquina:
          #VBoxManage controlvm newmachine  poweroff

Reiniciar maquina:
          #VBoxManage controlvm  newmachine  reset



CONFIGURANDO LA RED DE VirtualBox con ips estáticas:


http://yordanisp.blog.com.es/2010/03/03/configuracion-de-red-con-ips-estaticas-en-virtualbox-8109492/

1) # aptitude install uml-utilities bridge-utils

2) el usuario debe pertencer al grupo uml-net
    # gpasswd -a usuario uml-net

3) Modificar /etc/network/interfaces para activar el interface a usar por la vm, tap0 y crear el bridge:

   auto lo
   iface lo inet loopback

   aqui el iface wlan0

   auto tap0

   iface tap0 inet manual
   up ifconfig $IFACE 0.0.0.0 up
   down ifconfig $IFACE down
   tunctl_user usuario

   auto br0
   iface br0 inet static
   address 192.168.1.2
   netmask 255.255.255.0
   gateway 192.168.1.254
   bridge_ports all tap0

4) Reiniciamos el network:
    # /etc/init.d/networking restart

5) Modificar la vm:
    # VBoxManage modifyvm newmachine --nic1 hostif --cableconnected1 on --hostonlyadapter1 tap0

Dentro de la máquina virtual configurar su tarjeta de red con la IP que se quiera.


Tutoriales:
Manual virtualbox: http://www.virtualbox.org/manual/
Script bridge para VirtualBox: http://www.improvisa.com/09-04-2008/bridge-automatico-para-virtual-box/
All about VirtualBox and debian: http://wiki.debian.org/VirtualBox
...and more:            http://www.trimentation.com/wp/?p=75
                                http://www.improvisa.com/02-03-2009/virtualbox-desde-consola/