Inicio

Ubuntu LiveCD sense CDROM i amb mode persistent

El gener passat vaig escriure sobre com arrencar un LiveCD d’Ubuntu en mode persistent, és a dir, guardant la configuració en un pendrive o disc dur de forma que els ajustos que fem a la configuració del CD no es perdin. Bé doncs, ara del que es tracta és que fem el mateix però sense el LiveCD. M’explico, l’objectiu és tenir una partició de només lectura al nostre disc dur, o en un altre disc dur on hi hagi el LiveCD copiat. Llavors usem una altre partició per guardar les modifiacions que fem sobre el CD, o sigui, la informació persistent. Això ens permet al propi GRUB tenir modes de recuperació sense haver de posar el CD. A més sempre podrem tornar enrera i tenir una configuració bàsica. I podrem treballar exactament igual que si tinguessim un LiveCD però sense tenir-lo físicament.

La solució és ben senzilla, potser el problema més greu esta en que s’ha de modificar un arxiu de configuració que es diu /scripts/casper i que es troba dintre del fitxer /boot-live/initrd.gz cosa que fa una mica entretingut modificar-lo. A continuació faig un petit cookbook de tots els passos a seguir.

    • Arrenquem des del LiveCD.
    • Creem una nova partició al disc de tipus vfat i la formategem.
    • Montem la partició i hi creem el directori /casper.
    • Copiem el contingut del directori /casper del LiveCD d’Ubuntu dins del nou directori que hem creat a la partició.
    • Suposant que a la partició persistent hi tenim instal·lat el GRUB per arrancar des de LiveCD però cridant-lo des del disc dur la configuració seria semblant a aquesta:
default 0
timeout 30
hiddenmenu
color cyan/blue white/blue
# Calling LiveCD from hard drive
title           mpti
root            (hd0,0)
kernel          /boot-live/vmlinuz boot=casper initrd=new-initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash vga=791 -- persistent
initrd          /boot-live/new-initrd.gz
boot
# Calling LiveCD from hard drive in single user and persistent mode
title           mpti persistent (recovery mode)
root            (hd0,0)
kernel          /boot-live/vmlinuz boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram ro single persistent
initrd          /boot-live/new-initrd.gz
boot
# Calling LiveCD from hard drive without persistent and single user mode
title           mpti w/o persistent (recovery mode)
root            (hd0,0)
kernel          /boot-live/vmlinuz boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram ro single
initrd          /boot-live/new-initrd.gz
boot
    • Ara toca modificar el fitxer /boot-live/new-initrd.gz que és el que conté la seqüència d’arrencada que ens interessa modificar. Així doncs, anem al directori /boot-live.
    • Per descomprimir el fitxer new-initrd.gz podem fer això:
mkdir new-initrd
cd new-initrd
gzip -dc /boot-live/new-initrd.gz | cpio -id
    • Dintre de /boot-live/new-initrd/scripts hi ha el fitxer casper que hem de modificar, així doncs l’editem.
    • A la línia 257 hi ha la funció is_usb_device que l’hem de deixar com segueix:
is_usb_device() {
#    sysfs_path="${1#/sys}"
#    if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-[^-]*-usb)"; then
        return 0
#    fi
#    return 1
}
    • Guardem el fitxer de configuració i tornem a crear el fitxer new-initrd, així:
# Fem una còpia l'antic new-initrd.gz per si les mosques
cd /boot-live
cp new-initrd.gz new-initrd.gz.old
# Creem el nou new-initrd.gz
cd new-initrd
find . | cpio --quiet --dereference -o -H newc | gzip -9 > ../new-initrd.gz
cd ..
rm -rf new-initrd
  • Ara ja podem reiniciar i treure el LiveCD ja que tot hauria d’arrencar com si el tinguessim posat.

Al fitxer casper és on es detecta si hi ha algún LiveCD posat a partir del qual es montarà el sistema de fitxers root. L’script busca a molts llocs si troba una unitat de CD, fins hi tot busca pendrives formatejats en vfat amb el contingut del CD, però abans d’intentar montar-los i buscar dintre seu el directori /casper i algún fitxer anomenat *.squashfs comproba que el dispositiu estigui connectat via USB.

Així doncs, la modificació que jo he fet només força que la comprobació d’USB sempre sigui certa, així també intentarà montar les pariticions dels possibles discs durs connectats o d’altres similars. Així doncs, després l’únic que faig és crear una partició vfat, crear-li el directori que busca i copiar el fitxer *.squashfs que és on hi ha el sistema de fitxers squashfs que conté l’arbre de directoris i fitxers del LiveCD.

Malgrat estic content en el resultat obtingut, m’hagués agradat aconseguir el mateix resultat sense haver de modificar els fitxers del initrd.gz ja que això fa que a l’actualitzar l’Ubuntu si hi ha modificacions en l’script casper hauré de mirar-me què ha canviat per actualitzar el meu sistema.

Fotografies dels últims dos dies

Coses curioses, no tan curioses, que he fet i que m’han passat els últims dies.

Ahir vaig configurar una pantalla de 17″ intgrada amb un tàctil 3M Microtouch amb Linux. Cosa que fins ara no m’havia funcionat mai bé i el millor és que va anar tot amb menys de 30min. Tot gràcies a aquest enllaç.

3m_microtuch.jpg

Quan vaig anar a agafar el tren per tornar cap a casa vaig trobar-me un mòbil fet pols a terra de l’estació de Cornellà, pantalla destrossada, suport del SIM robellat, etc. tot un suplici de mòbil.

mobile_at_cornella_train_station.jpg

Una de les pàgines eròtiques de pagament amb més renom a internet, de la que a més estic subscrit al pool de flickr és sucidegirls.com, doncs aquest matí anant a buscar al Manu davant de casa seva m’he trobat aquesta pintada en un banc, m’he quedat flipant… mai hagués imaginat veure això i pintat per Cornellà.

suicidegirls.jpg

Després hem anat a montar un mpti a l’aeroport de Barcelona, concretament a una de les botigues Divers. Per si mpti ús ha sonat a xinès és un aplicatiu que hem desenvolupat a movilpoint i que serveix per connectar a internet previ pagament en un moneder connectat a un PC via port USB, tot en linux. Només faltaria.

mpti_at_bcn_airport.jpg

Al arribar a l’oficina ja m’havia arribat la última ganga que m’he comprat, un IBM ThinkPat T41 per només 330€. Esta quasi nou i no en puc aconseguir més. Un proveedor ens en va fer arribar uns quants per 4 duros d’aquests que provenen de fires i coses semblants, est nou nou… a més el teclat és de ves a saber on i ens han donat unes enganxines perquè les posem sobre les tecles. El més sorprenent és el ràpid que va el WinXP, mai l’havi vist correr tan. Llàstima que li durarà ben poc 😉

Per cert, mira que sóc simple… té mil coses a destacar el portàtil i el que més gràcia m’ha fet és la llumeta integrada que té sobre el monitor i que quan ets a les fosques va genial per iluminar el teclat. Realment sempre ens fan gràcia les coses més tontes.

ibm_thinkpad_t41.jpg

Finalment quan tornava cap a casa he passat pels nous jutjats de Cornellà i no he pogut evitar fer una foto a les banderes que hi onegen, on curiosament ja fa un parell de dies em vaig fixar que hi han retirat la bandera espanyola i només queda la catalana i la europea, si més no és un fenòmen curiós que dubto que duri massa.

flags.jpg

Per cert, la qualitat de les fotos no és massa bona perquè totes les he reduit a 400×300 i a més les he tirat amb la Blackberry Pearl que tampoc té una camara que sigui res de l’altre món.

Backup configuració servidor RADIUS de Windows (2k i 2k3)

Avui he estat molta estona treballant amb el IAS de Windows, o com li diu la resta del món amb el servidor Radius de Windows. Doncs la gran deliveració de l’Albert ha estat: això quan peti si no ho tinc documentat les passarem negres per tornar-ho a configurar tot. Doncs per això sempre hi ha ens backups i com sempre acostuma a passar per les coses interessants s’ha de fer des de línia de comandes, així doncs aquí teniu la gràcia de tot:

# Fer còpia de seguretat del IAS (backup)
netsh aaaa show config c:\IAS.txt
<br>
# Restaurar còpia de seguretat del IAS (restore)
netsh exec c:\IAS.txt

Això ho he trobat en el document: Windows 2000: Internet Authentication Service (IAS) and RADIUS on a més hi trobareu molta i molt bona informació conceptual de com funciona el IAS.

usbcard: pendrive en forma de targeta de crèdit

A finals de la setmana passada vaig dinar amb el Benja que em va regalar una targeta flash com les que veieu a la foto. En tenia dues una de 2Gb i una de 4Gb, després de preguntar-li d’on les havia tret em va regalar de 2Gb, així que ja tinc una targeta la mar de xula per posar a la cartera i poder-la treure en aquelles situacions on sempre resulta que no portes el pendrive. Si en voleu una les ha tret de Freecom.

usbcard1.png

Com es veu en la foto la mida és identica a la d’una targeta de crèdit, potser un pèl més gruixuda però molt i molt primeta també.

usbcard2.png

pop2smtp: POP3 (“recojetodo”) a SMTP amb múltiples destins

Alguns ISPs ens permeten tenir una compte que reculli tot el correu enviat a un domini, això per exemple es pot usar com a mail-backup del nostre domini. Doncs bé a través de fetchmail és molt senzill re-injectar el correu enmagatzemat a una compte POP3 a un servidor SMTP contra un usuari. El més complicat, és si el correu que hi ha a la compte POP3 pot anar a més d’un destí, com el que deia fa un moment en comptes POP3 tipus ‘recojetodo’ o cul de sac com diuen alguns.

Doncs bé, per això he fet un petit script en python que a partir d’un fitxer BSMTP modifica la companda RCPT TO en funció de la informació de l’etiqueta Envelope to que conté una llista de les comptes d’email destí a qui va dirigit el correu. Així doncs, bàsicament la tasca consisteix en buscar quines comptes d’email apareixen a l’etiqueta comentada i després borrem la comanda RCPT TO i creem tantes comandes d’aquest tipus com faci falta en el seu lloc per enviar copies del correu que volem enviar als seus destins. Aquest nou fitxer BSMTP modificat l’injectem al nostre MTA. Aquest MTA serà l’encarregat de processar aquest correus i entregar-los a les comptes destí.

En el meu cas he decidit fer un petit shell script que s’executa des del crontab cada 10min. Aquest script, Crida a fetchmail per obtenir el fitxer BSMTP amb el correu que hi havia a la compte POP3, després crida l’script de python per modificar el fitxer BSMTP d’entrada tal com he comentat i crea un nou fitxer BSMTP de sortida. Finalment aquest fitxer s’injecta via SMTP cridant un petit script que gràcies al NetCat envia per SMTP el contingut del fitxer BSMTP de sortida.

L’script amb l’estructura de directoris empaquetat en un fitxer: pop2smtp_r1.tar.gz.

Segur que hi ha formes més elegants de resoldre el problema, però la veritat no les he sabut trobar.

Scroll to Top