Modo Dios en Windows 7 (God Mode)

Por un momento creímos que todo en Windows 7 ya era conocido, desde sus versiones hasta la forma de optimizarlo. Sin embargo, ha aparecido en la red cierta información que «activa» una sección oculta del sistema operativo a la que se ha bautizado como «Modo Dios». El término, si bien suele ser asociado a comandos de consola internos disponibles en algunos videojuegos, calza a la perfección en Windows 7, debido a la enorme cantidad de opciones a las que se obtiene acceso. Microsoft no ha dicho nada al respecto, y sin embargo, el truco funciona sin mayores inconvenientes. No se necesita ninguna habilidad especial: Sólo hay que crear una carpeta y colocarle un nombre muy largo para que funcione.

Hablar del «Modo Dios» me hace recordar a cada FPS con consola de comandos al que he jugado. Los juegos nunca han sido tan difíciles como para forzar al usuario a recurrir a esta trampa en una partida, pero resultaba especialmente útil cuando el jugador quería explorar detalladamente u n nivel (sólo para conocerlo mejor) sin riesgo a perder la partida. El Modo Dios existe de diferentes formas en los videojuegos, ¿pero qué hay de los sistemas operativos? Lo más parecido es la cuenta de administrador o súper-usuario, el amigo «root» para aquellos que pilotean Linux. Sin embargo, hay algo en Windows 7 que, además de haber sido identificado como Modo Dios, le ofrece al usuario un acceso rápido a múltiples opciones de configuración en el sistema operativo. La gran mayoría de ellas puede accederse a través de un camino más oficial, pero tener casi todo agrupado en una misma sección, definitivamente tiene sus ventajas. El Modo Dios en Windows 7 es cualquier cosa menos oficial. No se ha sabido nada de Redmond desde su aparición, y es probable que sólo quede documentado como un truco interno de Windows 7 sin mayor relevancia.

Probado tanto en versiones de 32 bits como en versiones de 64 bits, funciona a la perfección. Invocarlo es muy sencillo: Crea una carpeta en el escritorio de Windows, y como nombre coloca la siguiente sentencia sin las comillas: «GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}». El icono de carpeta cambiará por uno similar al del Panel de Control, y con sólo un doble clic se obtendrá acceso a una notable cantidad de opciones de configuración. En la versión que aparece en Windows 7 Ultimate, el Modo Dios cuenta con un total de 271 opciones, la mayor cantidad de ellas encerrada dentro de la sección de Accesibilidad. Se pueden realizar muchos ajustes que de otra manera se encuentran disponibles a través del panel de control convencional, desde cambiar las opciones para el Programa de Experiencia del Usuario de Windows, hasta opciones de red, personalización y rendimiento.

Solución al error: MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

Síntomas

En la página Inicio de Sesión de Parallels Plesk Panel en https://plesk.host.name:8443, aparece el siguiente error:

ERROR: PleskMainDBException
MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

0: /usr/local/psa/admin/plib/common_func.php3:216
db_query(string ‘select param, val from misc’)
1: /usr/local/psa/admin/plib/common_func.php3:513
get_param(string ‘mysql41_compatible’)
2: /usr/local/psa/admin/plib/common_func.php3:410
db_set_names()
3: /usr/local/psa/admin/plib/common_func.php3:389
db_connect_real(string ‘localhost’, string ‘admin’, string ‘***********’, string ‘psa’)
4: /usr/local/psa/admin/plib/common_func.php3:369
db_connect()
5: /usr/local/psa/admin/auto_prepend/auth.php3:87

Causa

La causa de este problema son unos permisos incorrectos al directorio /tmp. Por este motivo, MySQL no puede crear sus archivos temporales correctamente para el motor InnoDB en el inicio.

Los permisos correctos son:

~# ls -ld /tmp/
drwxrwxrwt 4 root root 36864 Aug  8 08:41 /tmp/
~#

Resolución

Corrija los permisos con el siguiente comentario:

~# chmod 1777 /tmp

Información Adicional

Para ver el error, actualice la sección [mysqld] en el archivo /etc/my.cnf con esta línea:

/etc/my.cnf
--->8---
[mysqld]
innodb_force_recovery = 4
---8<---

Ahora reinicie el servicio con:

~# /etc/init.d/mysqld restart
Stopping MySQL:                                            [  OK ]
Starting MySQL:                                            [  OK ]
~#

En el archivo de registro de errores de MySQL debería aparecer el siguiente error:

/var/log/mysqld.log
--->8---
^G/usr/libexec/mysqld: Can't create/write to file '/tmp/ib1suXEE' (Errcode: 13)
020326 22:26:17  InnoDB: Error: unable to create temporary file; errno: 13
020326 22:26:18 [Note] /usr/libexec/mysqld: ready for connections.
---8<---

La ubicación del archivo de registro de errores de MySQL se define en el archivo de configuración:

~# grep log-error /etc/my.cnf
log-error=/var/log/mysqld.log
~#

Tips y comandos útiles de Linux que no te sabías

Muchos de los que leeis este blog seguro que os considerareis unos verdaderos eruditos de GNU/Linux, otros simplemente estareis empezando con el pingüino. Sea cual sea vuestro caso aquí teneis una lista con algunos comandos curiosos que quizá no conocíais.

Nota: todos los comandos y tips mostrados a continuación deben escribirse en una sola línea.

  • Deshabilitar el historial de bash (donde se almacenan los últimos comandos ejecutados

rm ~/.bash_history ; ln -sf /dev/null .bash_history

  • Si intentas realizar una tarea reservada el sistema te dirá que no puedes por falta de permisos. Pues bien, si después quieres ejecutar la misma tarea, pero como sudo, en lugar de escribir “sudo” seguido del comando, prueba:

sudo !!

  • Para eliminar una palabra completa en la consola: Mantén presionado ESC y pulsa BACKSPACE (borrar, encima del enter).
  • Si deseas crear múltiples directorios con nombres dir1, dir2, dir3… por ejemplo, usa el comando siguiente (análogamente puedes usar este sistema con otros comandos como touch, para crear archivos):

mkdir dir{1,2,3}

  • Para usar un comando con los mismos argumentos que se le pasaron al comando anterior (en nuestro ejemplo utilizamos el comando touch, pero el sistema es el mismo para cualquier otro):

touch !*

  • Genera aleatoriamente un password (en nuestro ejemplo, de 8 caracteres –para otra longitud cambia el número 8 por el que desees–):

< /dev/urandom tr -dc A-Za-z0-9_ | head -c8 ; echo

  • Para copiar un fichero con nombre muy largo sin tener que escribirlo dos veces puedes utilizar un método llamado expansión, de la siguiente forma:

cp NombreDeArchivoMuyLargo{,.orig}

  • Si deseas ejecutar un comando en consola, pero no quieres que se muestre ninguno de los posibles errores que puedan surgir, lo mejor es redireccionar la salida de error a /dev/null (pongamos que es una especie de agujero negro, XD):

[comando_a_ejecutar] 2> /dev/null

  • Para pasar un manual del comando man a pdf, tal y como vimos en un post pasado, puedes ejecutar (todo en la misma linea):

man -t <nombre_programa> | ps2pdf – > <ruta_destino/nombre_destino.pdf>

  • Si quieres cambiar la extensión a varios archivos a la vez, prueba lo siguiente. Ten en cuenta que en este ejemplo, la extensión que tienen los archivos a modificar es “.txt” y la nueva extensión que queremos asignarles es “.html”, modifícalo a tu gusto según tus necesidades:

for i in *.txt; do mv $i ${i%%.txt}.html; done

  • ¡Demasiados argumentos!. En ciertas ocasiones la consola nos lo dirá, por ejemplo si intentamos ejecutar rm * en un directorio donde haya muchos ficheros. La solución es una pequeña tubería utilizando “ls”  y “xargs”, como la siguiente (en este ejemplo usamos el comando “rm” pero puedes emplear cualquier otro):

ls | xargs rm

  • Si quieres conocer el nombre del directorio en el que te encuentras (Ojo, no me refiero al nombre completo del tipo /home/pepe/…/naturaleza/laguna, sino sólo al nombre. Por ejemplo, en el caso anterior, el nombre sería laguna), puedes usar el siguiente comando:

echo ${PWD##*/}

Espero que os hayan venido bien estos comandos curiosos, más adelante postearé algunos más que me vayan surgiendo.

Un saludo

Busca comandos en la shell con Apropos

Es imposible conocer todos los comandos que nos ofrece cualquier shell, para solucionar este “problema” existen herramientas que nos hacen la vida más fácil, una de ellas es el comando apropos.

Apropos es un comando que busca dentro de las descripciones de cada una de las páginas man las palabras claves que le indiquemos pasandolas como argumentos. Estas palabras claves pueden contener comodines o ser la palabra clave exacta.

Por ejemplo, si quisieramos buscar comandos que sirven para copiar ficheros podríamos hacerlo del siguiente modo (suponiendo un sistema en idioma inglés):

$ apropos "copy files"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
install (1)          - copy files and set attributes

Como véis nos muestra tres comandos que pueden servirnos para realizar operaciones de copiado de ficheros. Otro ejemplo podría ser la búsqueda de un comando/programa para gestionar particiones:

$ apropos "partition"
addpart (8)          - simple wrapper around the "add partition" ioctl
cfdisk (8)           - Curses/slang based disk partition table manipulator for Linux
delpart (8)          - simple wrapper around the "del partition" ioctl
fdisk (8)            - Partition table manipulator for Linux
iostat (1)           - Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions an...
mpartition (1)       - partition an MSDOS hard disk
partprobe (8)        - inform the OS of partition table changes
partx (8)            - telling the kernel about presence and numbering of on-disk partitions.
sfdisk (8)           - Partition table manipulator for Linux

Utiliza la tecla de “Windows” para abrir el menu de Ubuntu

Muchos teclados conservan aún la tecla con el logo de “Windows” (esa que esta al lado de la tecla “Alt”), pues bien ahora la podemos dar una funciona más util. Abre la consola y ejecuta el siguiente comando:

gconftool-2 --set /apps/metacity/global_keybindings/panel_main_menu --type string "Super_L"

A partir de ahora, cuando pulses la tecla Win, se abrira el menu principal de Ubuntu. 😀