martes, 26 de abril de 2011

Recuperar el arranque de Windows luego de instalar Debian

¡Todavía pasan esas cosas!

solo son 3 líneas:

sudo grub-mkconfig
sudo grub-install /dev/sda 
sudo update-grub

podría ser también que en lugar /dev/sda fuese /dev/hdX...

lunes, 10 de enero de 2011

Buscar he encontrar la ubicación de un controlador en linux

No me interesa de cuanto interés sea esto o no.

Es un ejemplo de cómo saber el nombre del módulo de un controlador y saber donde esta ubicado. En eso nos toparemos con varios comandos que seria de interés conocer.

Supongase que queremos saber el nombre del controlador wireless. El primer comando a utilizar seria este:

primero buscar en los dispositivos pci

lspci -k | grep -i -B 2 -C 2 -E "wireless"

lspci: muestra todos los dispositivos pci

con el parametro -k de "lspci" se muestran los controladores asociados en el kernel con cada dispositivo pci.

el parámetro -i de grep indica que no se hará distinción entre mayúsculas y minúsculas -B 2, indica que se mostraran las  2 lineas que estén antes de  palabra "wireless" y -C 2 indica que se mostraran las dos líneas después. Esto es porque tal vez no este toda la información en la misma línea.

sin embargo tal vez el dispositivo no sea pci sino usb. En ese caso el comando a utilizar seria este:

lsusb | grep -i -E "wireless

podría mostrar una línea como esta:

Bus 001 Device 002: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter

RTL8187 seria el nombre del controlador.

Para confirmarlo se utiliza modinfo:

modinfo rtl8187

en la linea filename aparece la ubicación del controlador:

filename:       /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
finalmente si se quiere saber a qué paquete corresponde ese archivo se utiliza dpkg:


dpkg -S /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko

mostraría algo como esto:

linux-image-2.6.32-27-generic: /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko

donde linux-image-2.6.32-27-generic es el nombre del paquete.

viernes, 31 de diciembre de 2010

Redirección de la Salida de Errores en Linux

Hoy (si 31 de Diciembre del 2010) tuve un problema intentando capturar los errores en postgres que me daba un script.

Cualquier persona que haya trabajado con psql sabe que  muestra los errores durante la ejecución de los scripts en la pantalla. Sin embargo como el script era muy largo desde luego que era mejor, copiar todos los errores  en una archivo y luego revisarlos uno a uno. De hecho se sabe que cuando son muchos mensajes después de cierto numero de lineas los mensajes que aparecen al principio se van perdiendo y no es posible recuperarlos.

Lo primero que hay que tener en cuenta es que la salida de errores no es lo mismo que la salida estándar. Aunque tanto los resultados de la salida de error como la estándar arrojan los resultados en pantalla.

Por esa razón pensaba que con un simple:

plsql -U usuario -d base_de_datos -c "\i archivo_de_script.sql" -h localhost  > errores.out

Capturaría todos los errores. Pero así solamente se capturan los mensajes de la salida estándar. Para capturar los errores debe hacerse:


plsql -U usuario -d base_de_datos -c "\i archivo_de_script.sql" -h localhost  2> errores.out

Pero aquí tuve nuevamente un problema, no me daba de cuenta de que el "2>" era pegado y no separado. Me llevo tiempo darme cuenta.

Fuentes:

Curso de Linux Gratis. Tuberias. Wikilearning: http://www.wikilearning.com/curso_gratis/curso_de_linux-redirecciones_y_tuberias/4230-13

sábado, 4 de diciembre de 2010

Archivo de configuración de NetBeans

Hace poco tuve que repararle el NetBeans a alguien que tuvo la mala idea de instalar el jdk en el escritorio y accidentalmente lo movió. Luego de detectar el problema quise ponerlo en otra ubicación.

Al principio pensaba que se trataba de las variables de entorno y eso. Pero a mi intuición le llevo más de una hora dar con el siguiente archivo

/usr/local/netbeans-6.9/etc/netbeans.conf

Fíjense el nombre del subdirectorio "etc", que coincide con el "/etc" de la instalación de linux.  Desde en esa dirección es allí en donde esta netbeans en el caso de mi máquina y variara de una máquina a otra dependiendo de como se haya hecho la instalación.

Allí se cambia la dirección en donde dice:

# Default location of JDK, can be overridden by using --jdkhome <dir>:
netbeans_jdkhome="/opt/jdk1.6.0_20"

a la ubicación del jdk deseada y listo.

Reiniciar un Sistema Operativo real como si fuera virtual en VirtualBox

Este es un ejemplo de cómo iniciar otro sistema operativo desde nuestra máquina, que no este virtualizado, sin tener que salirnos del sistema y volver a iniciar.

Antes que nada debemos tener todos los permisos del  disco duro en donde este instalado el sistema operativo que se vaya a manipular. Generalmente el disco duro se identifica como sda (puede tener otro nombre o no ser un disco duro):

sudo chmod 666 /dev/sda

esto aunque parezca, no es tan peligroso y ese cambio que hicimos se perderá al volver arrancar el sistema. De hecho no tiene efecto desde el escritorio, para que tenga efecto tiene que arrancarse virtualbox desde la misma consola, como se verá más adelante

Luego se crea un enlace de disco duro virtual al  disco duro real:

VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/HardDisks/mint.vmdk -rawdisk /dev/sda -relative -register

por ultimo se arranca virutalbox (DESDE LA MISMA CONSOLA QUE ESTAMOS USANDO). Tecleando:

VirtualBox

En virtualbox se crea un sistema operativo virtual (cuyas características correspondan al real), escogiendo como unidad de disco duro la que se acaba de crear: "mint-vmdk", y con esto deberíamos poder arrancar el sistema real como virtual.

¡Pude arrancar en la máquina virtual el mismo SO que estaba corriendo!. Eso es peligroso y no se debería hacer.

Fuente: http://ubuntulife.wordpress.com/2009/05/13/ejecutar-varios-sistemas-operativos-reales-desde-virtualbox/

martes, 9 de noviembre de 2010

Hora del Hardware y hora de Linux

Existen dos horas: la hora del hardware (la hora que almacena el setup) y la hora de linux.

para saber la de linux se utiliza

date

mientras que para saber la de hardware

hwclock

Para establecer la hora de linux, por ejemplo, en el caso de la fecha 02-25-2009, con hora 16:25 se utiliza:

$ sudo date -s "02/25/2009 16:25:00"

Para establecer la hora de hardware, por ejemplo, en el caso de la fecha 02-25-2009, con hora 16:25 se utiliza:

# hwclock --set --date="2009-02-25 16:25"


Cambiar/Restaurar la Password del Root desde Grub

no se puede saber que password de root teniamos anteriormente a menos que se crackee la password, pero eso requiere tiempo (aunque existen algoritmos que permitirían crackearla en un tiempo razonable: vulnerabilidades en MD5, no se quien más pero la NSA lo sabe muy bien)

no es necesario si solo queremos volver a acceder al sistema.

Para cambiar la password de root desde Grub se debe en primer lugar, por supuesto, reiniciar el sistema y acceder al menú de Grub. Si este menú no aparece se debe mantener la tecla de mayúsculas presionada, la que tiene una flecha hacia arriba (en las versiones viejas se utiliza ESC).

la primera línea será algo como esto:

linux    /boot/vmlinuz-2.6.32-25-generic root=UUID=4f89d205-8eff-44cd-a3ed-aabcf8380db7 ro   quiet splash

no tiene que ser exactamente igual. Se edita esta línea presionando la letra 'e'.

Borra el 'splash' (si no podría no arrancar) y al final de la línea agrega esto init=/bin/bash

debería ser fácil pero será  un poco fastidioso debido a que el teclado estará desconfigurado, si usas teclado un teclado español, latinoamericano, etc

quedará algo como esto:

linux    /boot/vmlinuz-2.6.32-25-generic root=UUID=4f89d205-8eff-44cd-a3ed-aabcf8380db7 ro   quiet init=/bin/bash

luego, tal como dice abajo del grub se presiona ctrl-x y arranca (no se porque en algunas páginas se dice que se presione 'b')

al arrancar y aparecer el '#' en el prompt que indica que estas trabajando como root se debe teclear el siguiente comando

mount -o remount,rw /

esto es debido a que el sistema de ficheros se carga como de solo lectura

finalmente cambias la password con

passwd


esto lo escribí con ayuda de esta fuente:

http://www.iberprensa.com/todolinux/articulos/TL96_grub.pdf