jueves, 29 de mayo de 2008

Registro de Windows


El registro de Windows es como un fichero ini gigante. En este fichero se guarda toda la configuración del sistema. Hay programas que se instalan en maquinas con windows que tambien usan el registro de Windows para almacenar información. De ahi que muchas veces se llene de basura.

El registro de Windows es necesario para arranque el sistema de Windows. Es recomendable hacer copias de seguridad del registro de windows bien sea, medianta aplicaciones de terceros, copiando los ficheros que forman parte del mismo o utlizando la aplicación de puntos de restauración del sistema.

Los ficheros que forman el registro se encuentran en la siguiente Ubicación : c:\WINDOWS\SYSTEM32\CONFIG y lo componen los siguientes ficheros :

  • system
  • software
  • sam
  • security
  • default
La situación es la siguiente , tenemos un cd de Ubuntu en mano y una maquina de windows que no arranca por que nos dice que le faltan o que estan corruptos alguno de los ficheros del registro.

Cargamos Ubuntu, y nos dirigimos a la ubicacion del disco donde se encuentran estos ficheros, hacemos una copia de seguridad de los mismos, tal que asi :

$ cd /media/disk/WINDOWS/system32/config
$ cp system system.old
$ cp software software.old
$ cp sam sam.old
$ cp security security.old
$ cp default default.old


Ahora que tenemos nuestra copia de seguridad copiamos movemos una copia que tiene windows del registro que funciona a esta ubicación. Recomiendo solo copiar el fichero que este dañado no todos. Para ello hacemos lo siguiente:

$ cp /media/disk/WINDOWS/repair/[fichero a recuperar] /media/disk/WINDOWS/system32/config


Recomiendo usar copias de seguridad del registro para no tener que recurrir a este procedimiento, ya que los ficheros que estan repair no son una copia de seguridad del original. Con lo que seguramente en función de que fichero se haya dañado perderemos una serie de información u otra. En mi caso se estropeo el fichero system, no habia copia de seguridad , restaure el registro así y en esta copia del system no tenia los drivers instalados por lo que los tuve que instalar otra vez.

jueves, 22 de mayo de 2008

NTFS para todos


Como siempre, queramos o no, tendremos que acceder a sistemas de ficheros de Windows, hasta hace poco en sistemas de ficheros NTFS, se podia leer y escribir malamente en este tipo de sistemas de ficheros.

Han sacado, ya hace, un paquete para ubuntu que permite la lectura/escritura correcta en sistemas de ficheros NTFS.

Os pongo como ejemplo lo que teneis que hacer para que cuando arranque vuestro Ubuntu, reconozca al vuelo y monte esa partición ó disco.

Para ello haremos lo siguiente:

  • Editar el fichero /etc/fstab que es el fichero que especifica que dispositivos se van a montar en el arranque
  • Editar el fichero /etc/modules que es el fichero que especifica que modulos del kernel se van a cargar cuando arranque el sistema
  • Crear un punto de montaje (carpeta)
  • Cargar un modulo en el kernell
  • Montar y desmontar todo
Lo primero descargar e intalar el paquete : ntfs-3g

# apt-get install ntfs-3g

Lo segundo Averiguar el nombre del dispositivo que esta formateado en NTFS

# sfdisk -l | grep NTFS

El dispositivo será /dev/....

Crear el directorio para el punto de montaje

# mkdir [Ubicación deseada]

Editar el fichero /etc/modules

# gedit /etc/modules

añadir la siguiente linea

/dev/.... [Ubicación deseada] ntfs-3g slient.umask=0,locale=es_ES,vtf8,no-def-opts 0 0


Editar el fichero /etc/modules

# echo "fuse" >> /etc/modules


Ahora para que funcione sin tener que reiniciar

# modprobe fuse // cargar el modulo en cuestion
# umount -a // desmontarlo todo lo de /etc/fstab
# mount -a // montarlo todo lo de /etc/fstab


Con estos pasos, ya no hay que volver hacer nada mñas para que nos reconozca ese sistema de ficheros.

lunes, 19 de mayo de 2008

Recuperando bits y bytes


A día de hoy siempre me ha sido suficiente reparar cualquier disco duro con mi cd-live de ubuntu. Pero por primera vez tuve que recurrir a utlizar cd live´s de Windows, que no me solucionaron nada y al final lo arregle con el Ubuntu.

Si nos decantamos por usar cd lives de windows, este "distro" esta mu bien aunque deberia de estar mejor montada. Windows Xp Pilitos

Esta versión de Windows que se han montado trae el siguiente software para ayudar a recuperar datos de los discos duros y repararlos :

  • ClamWin Antivirus
  • Everest (obtine info del hardware de la maquina)
  • Mcafee Stinger
  • Mcafee VirusScan
  • Nero Burning Rom
  • Norton Ghost
  • Particion Magic 8
  • Robocopy
  • Spybot Search & Destroy
  • Test Memoria
  • RealVNC
  • Winrar
  • Acrobat Reader 6
  • Easy Recovery Professional 6
  • Hacha
  • BgnFO
Esta cd-live de Windows no me atrea por el software que trae, pero a la hora de la verdad no me resolvio, quiero decir :

  • En el primer equipo que la probe , no arrancaba
  • En el segundo no me reconocia la tarjeta de red, por lo que no se pueden actualizar las bases de datos del spybot y de los antivirus
  • En el tercero no reconocia la tarjeta de wi-fi , otra vez sin internet.
Por el contrario , el ubuntu en esas maquinas no daba problema de ningun tipo con las tarjetas de red , ni en arrancar ni na.

Si quereis montaros vuestro cd-live de Windows podeis usar este programa : BartPe

Mas info sobre creación de cd´s live de Windows : aqui

Bueno de lo que queria hablar era de Ubuntu y de lo que hay que hacer para recuperar datos de un disco duro.

Lo primero saber que tipo de sistema de ficheros tiene el disco duro que vamos a examinar , para saber si tenemos que instalar algún paquete o modulo del kernel para que reconozca el sistema de ficheros en cuestion. Para ello basta ejecutar el siguiente comando :

$ sfdisk -l "dispositivo en cuestión" // normalmente /dev/sda
$ sfdisk -T // lista los Ids para saber el tipo
$ sfdisk -V "dispositivo en cuestión" // hace un checkeo e intenta reparar


Otro problema con el que nos podemos encontrar es que el MBR este mal y alla que repararlo para ello es sufiente con bajarse el siguiente paquete y lanzar el siguiente comando :


$ sudo apt-get install ms-sys
$ ms-sys -m "dispositivo en cuestión"

Si con esto no somo capaces de hacer que el sistema vuelva a arrancar o no damos corregido todos los errores del disco nos podemos bajar el siguiente paquete que trae más herramientas
para la detención de errores , particionado y demás

$ sudo apt-get install testdisk

sábado, 19 de abril de 2008

Modificando el tema de login de Ubuntu

De serie nuestro ubuntu lo que nos permite hacer es cambiar entre temas de escritorio. Pero no nos brinda la posibilidad de modificarlos. La cantidad de temas para el arranque que trae el ubuntu no es para echar cohetes y para la gente que le gusta personalizar hasta el ultimo detalle, les puede interesar leer este post.

Para empezar a trabajar necesitamos tener un tema con los elementos que queramos para nuestro diseño. ("Recordar que las plantillas que utilicéis posean una licencia que permita modificarlas" p.e GPL). Un buen sitio para que busqueis temas de arranque : http://ww.gnome-look.org/


Una vez seleccionado el tema que os gusta para vuestro ubuntu, os descargáis el fichero que ha de ser un *.tar.bz2 ó un *.tar.gz . Abrís el fichero y buscais el fichero license.txt para comprobar que podemos modificar el tema a nuestro antojo. Una vez leído esto lanzamos la aplicación de gestion de temas de login de ubuntu para ello.

$ gksu /usr/sbin/gdmsetup

ó

Sistema/Administracion/Ventana de Entrada

Una vez hecho esto ubuntu os preguntara el pass, lo tipeas y seleccionáis la pestaña de local del formulario. En esta pestaña le dais al botón de añadir y añadís el tema que os acabáis de bajar. ( seleccionáis el fichero descargado). Una vez añadido el tema lo seleccionáis y le dais al botón de aceptar del formulario. Una vez hecho esto, intentáis cambiar de usuario para ello : Sistema/salir/Cambiar de usario y comprobáis que carga el tema que os habéis bajado.


Ahora ha llegado el momento de modificar el tema a nuestro antojo, para ello desempaquetáis el fichero que os habéis bajado en una carpeta. Como podéis observar dentro de la carpeta están la imágenes que usa el tema y un fichero *.xml que que define el aspecto y la ubicación de los distintos elementos del menú de login. Llegados a este punto que cada uno se lo modifique como quiera. Y si sabe xml se puede crear el suyo propio. Una vez hechas la modificaciones volvéis a empaquetar la carpeta, elimináis el tema del gestor de temas y lo volvéis a añadir.

A continuación os explico los cambios que he hecho yo con el tema que me baje para que os quede mas claro todo. El tema que me baje fue el siguiente : tema

Cambie las imágenes de background y de la ventana principal del tema. Para cambiar una imagen os aconsejo abrir la que tenéis con un programa de edición de imágenes p.ej. el GIMP pegue sobre la imagen la que quería poner. Guardar y listo. De esta manera se respeta el formato del fichero.

Y por ultimo cambie la posición del menú principal en la pantalla para ello edite el fichero *.xml de la siguiente manera :

<!-- innerbackground --&gt;
<item type="pixmap">
<pos x="75%" y="75%" width="514" height="482" anchor="c"/>
<normal file="innerbackground.png"/>
<box orientation="vertical" spacing="5" xpadding="30" ypadding="20">
<item type="rect">
<pos width="100%" height="40"/>
<!--<normal color="#ff0000"/>-->
<fixed>



Cambie los valores de 50% que indican el centro de la pantalla por 75% que especifican una esquina de la pantalla.

Un buen sitio para buscar imágenes es : www.flirck.com



sábado, 12 de abril de 2008

Ojo que nos vigilan

Virtual Box -> Reconocer Puertos USB


Uso Virtual Box para virtualizar otros sistemas operativos desde mi Ubuntu 7.10. Pero de primeras instalado con la configuración que trae Ubuntu 7.10 no podemos disfrutar de los puertos usb en el sistema que estemos virtualizando. Para corregir esto basta seguir estos pasos:

1.- Dar permisos

$ sudo gedit /etc/udev/rules.d/40-permissions.rules

Cambiar :
SUBSYSTEM==”usb_device”, MODE=”0664″
Por :
SUBSYSTEM==”usb_device”, MODE=”0666″

2.- Cambiar la forma de montar los USB en el arranke

$ sudo gedit /etc/init.d/mountdevsubfs.sh

Descomentar las siguientes Lineas
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644 ln -s .usbfs/devices /dev/bus/usb/devices mount –rbind /dev/bus/usb /proc/bus/us

3.- Reiniciamos el script de arranque que monta los USB's y listo

# /etc/inti.d/mountdevsubfs.sh stop
#
/etc/inti.d/mountdevsubfs.sh start


Listo

miércoles, 9 de abril de 2008

Que pasa ahi dentro ??

No se vosotros, pero desde que ando con maquinas; que siempre me han hecho esperar. Siempre me pregunto que narices están haciendo para no hacer caso de lo que les mando. Más todavía si tengo prisa y me empieza a ir el lenta la maquina.

En este post os pretendo presentar los diferentes comandos que hay para ver que programas, procesos, módulos del kernel y servicios se están ejecutando en vuestra maquina.

Para ver los procesos que se están ejecutando en vuestra maquina podéis usar los siguientes comandos :

Para listarlos :
$ ps -ef
$ ps -aux

Para matarlos :
$ kill -s [numero de señal a enviar al proceso] [nombre del proceso]
$ killall [nombre del proceso]

Nota para listar los numeros de señales que se le envian a los procesos usar :
$ kill -l

Para arrancarlos :
$ [ejecutar el comando en cuestion]


En lo referente a los servicios difieren un poco a los procesos en lo que se refiere al control de su ejecución por que ya traen implementado un script para arrancarlos, pararlos, detenerlos,... Estos scripts se encuentran en /etc/init.d/. Si queremos ver que servicios se están ejecutando (nota : también aparecen con el resto de comandos cuando se usa el comando ps) en el directorio /var/run se encuentran unos ficheros *.PID que indican que servicios están arrancados. Si hacemos un cat del fichero en cuestión. La salida sera el PID (proccess identificator) del proceso que se esta ejecutando. La información del PID del proceso es bastante importante , primero porque los números que se asignan siguen una norma (cuanto más bajo mas prioritario es el proceso, la regla y la función que genera este número es más compleja que esta simple regla que acabo de mencionar), segundo porque con ese numero se identifican los programas en nuestra maquina. Al comando kill se le puede pasar como parámetro el pid para que mate el proceso.

Se me olvidaba lo más importante, la diferencia entre en un servicio un proceso, es que un servicio es un proceso que se esta ejecutando continuamente. Ejemplos el cron (programador de tareas), cupsys (servicio de impresión), ...

Por otra parte los servicios , aunque los puede lanzar el usuario normalmente los lanza ubuntu cuando arranca, esto evidentemente depende del servicio que sea, por esta razón existen los scripts para arrancarlos, pararlos, etc...

Los comandos que vamos a usar son los siguientes :

Para listar servicios en ejecución
$ ls /var/run *.PID

Para listar servicios disponibles
$ ls /etc/init.d/

Para Arrancar, Parar, Reiniciar Servicios
$ /etc/init.d/[script del servicio] [start | stop | restart]
ej : /etc/init.d/cron restart

Si queremos que un servicio no se cargue en el arranque basta con quitarle los permisos de ejecución al script de /init.d/

$ chmod -x /etc/init.d/[nombre del script del servicio]

y para volver a darle permisos

$ chmod +x /etc/init.d/[nombre del script del servicio]


Por ultimo y no menos importante los modulos del kernel, es el ultimo tipo de "procesos" que están consumiendo recursos de nuestra maquina. Os puede interesar saber que módulos carga por si hay algunos que no estais utilizando como pueden ser el bluethooth, pcmciautils (si no usais portatil), ipv6 o algún otro. Por otra parte lo bueno de estos comandos es que sirven para evitar reiniciar la maquina , si se os queda colgado el driver de la Wi-Fi o algun modulo del kernel , en vez de reiniciar siempre podéis descargar y cargar el modulo otra vez en vez de reiniciar y hacerlo con todos los modulos.

Listar módulos cargados
$ lsmod

Descargar un modulo
$ rmmod [nombre_del_modulo]

Cargar un modulo
$ modprobe [nombre_del _modulo]