Archive for the ‘ Guias y Tutoriales ’ Category

Montaje de Linux – reescritura del MBR – Boot

Montando una instalación de Linux con CHROOT

Recuperación de menu GRUB

1) Arrancar con Live CD o Live USB de ubuntu, explorar particiones y buscar instalacion de disco de arranque: ejemplo: /dev/sda1

Nota: sda1 contiene una instalacion de Windows

2) Se arranca con un Linux de rescate

3) Buscar instalacion existente a recuperar boot en disco, ej: /dev/sdb2

4) Montar el sistema de archivos y una consola del linux a recuperar

# mkdir /mnt/custom
# mount /dev/sdb2 /mnt/custom/
# mount –bind /proc /mnt/custom/proc/
# mount –bind /sys /mnt/custom/sys
# mount –bind /dev /mnt/custom/dev
# chroot /mnt/custom/

5) Correr comando “grub” para recuperar menu de arranque sobre disco y particion primaria de disco seleccionado para arrancar

update-grub
grub-install /dev/sda

6) Desmontar sistemas de archivos de linux antes utilizados

# umount /dev/sdb2 /mnt/custom/
# umount –bind /proc /mnt/custom/proc/
# umount –bind /sys /mnt/custom/sys
# umount –bind /dev /mnt/custom/dev

7) Reiniciar

Alternativa con LVM

HOWTO: install grub with a chroot
Tags: Installation Issues.

I had somehow corrupted my MBR / bootloader, when trying to move a server from lilo to grub. To make matters more complicated, I was using LVM.

here is the setup of the system:
/dev/hda1 is /boot
/dev/hda5 is swap
/dev/hda6 is lvm

on the lvm:
/dev/mapper/volgroup00-root
/dev/mapper/volgroup00-home
/dev/mapper/volgroup00-usr

I booted the system with a Knoppix livecd, and switched to a command line. (ctrl+alt+f2)

To install the bootloader, it was necessary to “chroot” into my existing linux system.

all commands are run as root:
vgchange -ay # initialise lvm volumes
mkdir /mnt/root
mount /dev/mapper/volgroup00-root /mnt/root
mount /dev/mapper/volgroup00-usr /mnt/root/usr
mount /dev/mapper/volgroup00-home /mnt/root/home # not strictly necessary
mount -o bind /dev /mnt/root/dev
mount -t proc none /mnt/root/proc
mount -t sysfs none /mnt/root/sysfs

chroot /mnt/root /bin/bash
mount /dev/hda1 /boot
grub-install /dev/hda
/usr/sbin/update-grub

grub should now be installed on /dev/hda

Cluster ITeDA – Recursos de computación

Guia de uso
“Cluster” ITeDA Bs.As.- Servidores

Descripción de recursos informáticos
Servidores:
Mafalda, Isidoro: Dell R510, CPU 2x Intel Xeon a 2,4GHz de 4 cores c/u con
hyperthreading, 12 discos de 2TB C/U, 32GB de RAM

Isidoro
Es el servidor donde están las máquinas virtuales que Ud. está usando, y
donde residen las simulaciones importantes. Tiene además un backup “en vivo”
del servidor LDAP.

Asignación de disco:
1: 12,70 TB en RAID 5, para los datos de auger y las simulaciones a
preservar

2: 5,45 TB en RAID 5, para el sistema operativo, las máquinas virtuales y
el workspace

Mafalda: Es donde residen los directorios personales, el backup de las
simulaciones importantes, el servidor de login y demás servicios de la red.
1: 5,45 TB en RAID 5, para el sistema operativo y las carpetas personales
2: 10,90 TB en RAID 6, para backup de simulaciones

Máquinas virtuales:
sim, analysis: Ambas residen en Isidoro, y tienen asignadas 4 cores (con
hyperthreading) cada una.

(información Diego Melo, ITeDA, sede Bs.As.)

VMware Tools – Turnkey Linux install

  • Install VMware tools on core appliance

For VMWare ESX server you need to do   (sys=ssh prompt,  VM=ESX console):

sys : apt-get install build-essential gcc gnupg
sys : apt-get install linux-headers-`uname -r`
VM : Guest -> install vmtools cd
sys : mount /dev/cdrom /mnt
sys : cp /mnt/VM*tar.gz /tmp
sys : cd /tmp; tar -xzf VM*tar.gz; rm VM*tar.gz; cd vm*distrib ; ./vmware-install.pl
use for all questions the default.
VM:  deinstall vmtools cd
sys : reboot

On the console you will see the vmware tools being started.

  • Add VMwareTools to Debian-based VMs using apt

If you run a Debian-based VM (such the JeOS TK VMs here), here is an easy
way to install VMwareTools.

VMware has VMwareTools in a apt repo that you can add to the /etc/apt/sources.list and install using a simple ‘apt-get install [vmware-tools|vmware-tools-nox]. The repo is at http://packages.vmware.com/tools

Here is what I did:
Get their GPG key

wget http://packages.vmware.com/tools/VMWARE-PACKAGING-GPG-KEY.pub

Add VMware’s repo to your sources so apt can find it. It’s easiest to create a new file for it.

vi /etc/apt/sources.list.d/vmware.list

Add the following lines. Make sure to match the correct ESX version you have. I don’t know what happens if this does not match!

deb http://packages.vmware.com/tools/esx/3.5u4/ubuntu hardy main
deb http://packages.vmware.com/tools/esx/3.5u4/ubuntu hardy restricted

Next add the GPG key which should be in the directory where you downloaded it.

apt-key add VMWARE-PACKAGING-GPG-KEY.pub

Update apt and install the VMware Tools. Use vmware-tools-nox to skip any X11/X.org related things, which you are probably not even using in your VM.

apt-get update
apt-get install [vmware-tools|vmware-tools-nox]

Guía rápida para uso de GIT

Indicar tu información personal

Lo primero es configurar GIT en local:

[ $ ~  ] cat /home/MisterX/.gitconfig
[core]
      editor = vim
[user]
      name = MisterX
      email = misterx@apu.org

Así al hacer los commits saldrá nuestro nombre y correo.

Crear repositorio en el servidor

Si no existe nada en el repositorio del servidor, y lo tenemos que crear desde cero:

# mkdir nombreRepo
# cd nombreRepo
# git init
# git remote add origin ssh://gituser@apu.org/nombreRepo.git

Esta última linea es suponiendo que el acceso se hace por SSH.

Luego metes en el directorio nombreRepo el código inicial, y con

git add

añades todos los ficheros que quieras tener en el repositorio.

Luego haces:

# git commit -m "Initial commit blah blah blah"
# git push origin master:refs/heads/master

A partir de ahí ya tendrás el repositorio funcionando.

Clonar un repositorio existente

Si en vez de crear un repositorio desde cero, lo que quieres es trabajar con uno que ya esta en marcha:

# git clone ssh://gituser@apu.org/nombreRepo.git

Añadir ficheros al repositorio

Lo archivos que crees nuevos no se enviarán automáticamente al servidor, tienes que añadirlos con

git add nombreArchivo

Si son muchos los que has añadido, puedes hacer

git add .

en el directorio raiz del repositorio para que añada todos. Lo único es que debes tener cuidado con no añadir ficheros temporales o autogenerados. Se puede hacer que git ignore ciertos ficheros (los *.swp de vim, etc) añadiéndolos al fichero .gitignore en el directorio raíz.

Ver estado del directorio de trabajo

Puedes ver el estado actual de los ficheros (sin añadir, añadidos, modificados, etc):

git status

Si por accidente añades un fichero que no debes, puedes hacer que git lo olvide de nuevo con

git reset HEAD

Cuando te pase, git status te recuerda el comando.

Guardar modificaciones

Cuando modifiques ficheros, puedes, o bien hacer commit de todo lo que haya sido modificado o añadido con

git commit -a

o bien, si quieres
dividir los cambios en varios commits (porque no están relacionados
entre si), puedes hacer

git add

a unos cuantos ficheros que hayas
modificado y luego haz

git commit

Eso te abre el Vim con un resumen de los cambios para que introduzcas el mensaje de commit (una primera linea con un resumen, y opcionalmente, separado por una linea vacía, una explicación más extensa del commit). También puedes especificar un mensaje corto de commit directamente mediante

git commit -m Mensaje

Sincronizar el directorio de trabajo con el repositorio del servidor

Y finalmente para actualizar el repo:

git pull --rebase

y para enviar al servidor todos los commits locales:

git push

No se aplica ningún cambio en el repositorio del servidor hasta que haces el ‘push’, así que puedes trastear todo lo que haga falta con los diversos comandos en local.

Si quieres deshacer un commit:

git reset HEAD~1

Si quieres deshacer varios de un tirón pon otro número en lugar de 1.

Copia Incremental base de datos MySql

Backup incremental de tu base de datos con Git

Una forma realmente interesante de realizar backups de tus bases de datos (por ser trivial y muy potente) es usando Git. El proceso es simple y se basa en la realización de los dumps de la base de datos de forma que cada fila de las tablas sea un insert aislado, de esa forma en cada commit solo estaremos salvando las diferencias respecto al último estado (tanto deletes como inserts, como updates).

En el caso concreto de MySQL inicialmente haríamos algo como esto:

$ mkdir mydatabase && cd mydatabase
$ mysqldump --skip-extended-insert > data.sql
$ git init
$ git add data.sql
$ git commit -m "Initial dump of mydatabase"

A partir de entonces podemos automatizar el proceso con un script tan simple como este:

$ cat /usr/bin/git_backup_database
#!/bin/sh
BACKUP_DIRECTORY=$1
DATABASE=$2

cd $BACKUP_DIRECTORY &&
mysqldump --skip-extended-insert $DATABASE > data.sql &&
git commit -am "Updating dump `date +%Y_%m_%d__%H_%M`"

Según el volumen de consultas que tenga tu base de datos, te será interesante ponerlo en cron con una frecuencia determina u otra. Adicionalmente sería recomendable ejecutar $ git gc para optimizar el repositorio. Por ejemplo, dos veces al día y una vez a la semana mantenimiento:

0 0 * * * /usr/bin/git_backup_database /path/to/mydatabase mydatabase
0 12 * * * /usr/bin/git_backup_database  /path/to/mydatabase mydatabase
0 1 * * 1 cd /path/to/mydatabase && git gc

Además desde otro equipo nadie te impide hacer un $ git clone ssh://equipo:path/to/mydatabase y tener todo el historial de la base de datos en un plis (bueno eso es relativo, que ocupará lo suyo…) o incluso programar un $ git pull para tener varios backups en distintas maquinas. En definitiva, se abren un sinfín de opciones .