• Tag Archives GNU/Linux
  • Com trobar els UUIDs de les particions a Ubuntu

    El UUID, o Universally Unique Identifier en anglès, és un identificador estàndard usat en la construcció de programari, estandaritzat per la Open Software Foundation (OSF), amb l’objectiu de permetre que sistemes distrubuïts identifiquin informació de forma única sense dependre de coordinació central.

    A Ubuntu i a d’altres distribucions de GNU/Linux basades en Debian, es poden obtenir aquests identificadors per a cadascuna de les nostres particions amb una comanda ben simple:

    blkid

    Que haurem d’executar com a superusuari (root) o amb sudo al davant. La sortida d’aquesta serà semblant a:

    /dev/sda1: UUID="8a866472-a077-4da9-9663-cd5a2774f801" TYPE="reiserfs"
    /dev/sdb1: UUID="af8e31aa-9bb3-4c5e-b13a-433b06bb2231" TYPE="reiserfs"
    /dev/sdc1: UUID="c027fa2e-ad9d-4324-bdad-941a5c43d2b3" TYPE="reiserfs"
    /dev/sdc2: UUID="a9dbb0c9-3c60-4083-8f4c-de7e69d0ffda" TYPE="swap"
    /dev/sdc5: UUID="8be8352b-e28e-44ee-a2e2-9abfa1eb43eb" TYPE="reiserfs"
    

    Informació que ens pot resultar útil per configurar el fitxer /etc/fstab, amb les regles i opcions per muntar les diferents particions que tinguem.

    GD Star Rating
    loading...

  • Comprovar sectors danyats d’un disc dur amb badblocks

    Un cop recuperades les dades dels discs durs que tenien problemes, volia comprovar si aquests tenien sectors danyats. Ho he fet amb l’eina de Linux badblocks. Es pot executar de forma destructiva o no-destructiva, i jo he triat la primera perquè no tenia dades al disc que hagués de conservar. Per tant he executat:

    badblocks -wvs -o badblocks-sda.log /dev/sda

    Les opcions triades volen dir:

    -w    test de lectura i escriptura DESTRUCTIU.
    -v    mostra més informació
    -s    mostra el progrés
    -o    fitxer on escriure la llista de blocs defectuosos
    

    Si observeu la comanda, no he indicat cap partició sinó tot el disc sencer (/dev/sda), la qual cosa combinada amb l’opció -w implica que el MBR, particions existents i dades, seran destruïts.

    Si no voleu perdre cap dada del disc i fer també el test de lectura i escriptura canvieu l’opció -w per -n. Si no en poseu cap de les dues el test serà de només lectura. Per a més informació i opcions recordeu mirar el manual escrivint al terminal:

    man badblocks

    En el meu cas, després d’esperar unes quantes hores, vaig tenir sort i cap sector del disc dur estava danyat. 🙂

    Sort! 😉

    GD Star Rating
    loading...

  • GNU ddrescue per recuperar dades de discs durs

    L’altre dia (uf, ja fa un mes d’això!) vaig explicar la mala sort que vaig tenir quan dos discs durs tenien errors dels tres que tinc al meu ordinador. Abans d’ahir vaig començar les tasques de recuperació de dades, amb el programa GNU ddrescue. Al mateix manual en línia de ddrescue hi ha exemples molt útils, el primer dels quals és el que necessito jo. Anem per feina.

    Recordo que l’objectiu és recuperar les dades de dos discos idèntics de 500 GB a un tercer disc auxiliar de la mateixa capacitat, que em va deixar un bon amic meu. És obvi que l’auxiliar ha de ser de la mateixa capacitat o major que el disc que volem recuperar. Primer ho intentaré amb un disc i després amb l’altre. El paràmetre de ddrescue -n o –no-split no intenta dividir o reintentar blocs fallits, i això faig a la primera passada:

    root@jau:~# ddrescue -n /dev/sda /dev/sdb ddrescue-sda-a-sdb.log
    
    Press Ctrl-C to interrupt
    Initial status (read from logfile)
    rescued:         0 B,  errsize:       0 B,  errors:       0
    Current status
    rescued:   500107 MB,  errsize:    143 kB,  current rate:    10265 B/s
    ipos:       29744 kB,   errors:      36,    average rate:   14150 kB/s
    opos:       29744 kB,     time from last successful read:       0 s
    Finished

    El procés ha trigat unes 10 hores. Cosa que podem comprovar a partir de les dades informatives anteriors:
    500107 MB / 14,150 MB/s / 3600 s/h ≈ 9,8 hores.

    Tot seguit executo ddrescue amb les opcions -d–direct , que usa accés directe al disc d’entrada, i -r o –max-retries=<n>, que surt després de n intents. Li passo el mateix nom de fitxer de log que a la comanda anterior i així ddrescue sap que només ha de buscar els sectors on ha tingut problemes durant la primera lectura:
    Continue reading  Post ID 322

    GD Star Rating
    loading...

  • Afegir una nova adreça d’email al parell de claus GPG

    Segons llegeixo al manual oficial de GNU Privacy Guard: http://www.gnupg.org/gph/en/manual.html#AEN282, primer entrem a l’editor de claus amb la comanda gpg –edit-key i tot seguit teclegem adduid. Responem a les preguntes pel nou identificador, introduïm la contrasenya per la nostra clau privada i llest.

    gpg --edit-key minterior@gmail.com
    Ordre>adduid
    Nom i cognoms: Jaume Casado Ruiz
    Adreça electrònica: jcasado@unaplauso.com
    Comentari: unAplauso.com
    Heu triat l'identificador d'usuari:
        "Jaume Casado Ruiz (unAplauso.com) <jcasado@unaplauso.com>"
    
    Canvia (N)om, (C)omentari, (E)mail o (O) d'acord / (X) ix O
    
    You need a passphrase to unlock the secret key for
    user: "Jaume Casado Ruiz (minterior) <minterior@gmail.com>"
    1024-bit DSA key, ID F71B3570, created 2009-07-28
    
    pub  1024D/F71B3570  created: 2009-07-28  expires: mai       usage: SCA
                         trust: desconeguda   validity: desconeguda
    sub  2048g/68D20780  created: 2009-07-28  expires: mai       usage: E
    [ unknown] (1)  Jaume Casado Ruiz (minterior) <minterior@gmail.com>
    [ unknown] (2). Jaume Casado Ruiz (unAplauso.com) <jcasado@unaplauso.com>
    
    Ordre>quit
    Save changes? (y/N) y
    

    Si després volem enviar la nova informació a un servidor de claus, per exemple a pgp.mit.edu:

    gpg --keyserver 'pgp.mit.edu' --send-keys 0x5600e9c7f71b3570
    

    La clau la podem expressar amb el seu finger print, com he fet jo, o amb el seu ID. Per obtenir el finger print:

    gpg --fingerprint
    
    GD Star Rating
    loading...

  • Com copiar un enllaç simbòlic a GNU/Linux

    Estava cercant com copiar un enllaç simbòlic des de la lína de comandes. Pensava que amb l’ordre cp i algun paràmetre de l’estil –link (o -l) es podria fer. Amb “cp -l” aconseguim enllaçar els fitxers en lloc de copiar-los, però no és el que vull ara. He trobat com fer-ho, és així:

    cd directori
    find nom_del_link_a_copiar | cpio -pmadv directori_destí

    Si el directori de destí no existeix es crearà. Es copiarà l’enllaç simbòlic amb el mateix nom dins el directori de destí.

    Si volem copiar l’enllaç simbòlic al mateix directori però amb un altre nom, sempre podem crear-lo en un lloc temporal i després moure’l:

    cd directori
    find nom_del_link_a_copiar | cpio -pmadv /tmp
    mv /tmp/nom_del_link_a_copiar ./nou_nom

    Cal tenir en compte que els enllaços simbòlics relatius poden trencar-se. Això vol dir que si no es troben en directoris del mateix nivell, el nou enllaç no apuntarà correctament al seu destí.

    GD Star Rating
    loading...

  • Substituir text en múltiples fitxers amb sed

    Si volem substituir una cadena de caràcters per una altra en un fitxer o en múltiples fitxers simultàniament i de forma recursiva1 ho podem fer amb aquesta comanda:

    find -type f -exec sed -i 's/CADENA A SUBSTITUIR/CADENA NOVA/g' {} \;

    On CADENA A SUBSTITUIR és una expressió regular. Això vol dir que hem d’escapar els caràcters amb connotacions especials amb una barra invertida \, com . + * [ ] etcètera.

    També cal tenir en compte que això substituirà totes les aparicions de la cadena a substituir que es trobin per tots els fitxers. Si volem que només s’apliqui a certs fitxers, podem utilitzar el paràmetre -name de la comanda find.

    Si combinem el que he dit als dos paràgrafs anteriors, per exemple la comanda:

    find -type f -name aliments* -exec sed -i 's/pebrot (vermell)/maduixa vermella/g' {} \;

    cercarà només en fitxers els noms dels quals comencin per aliments,  i substituirà pebrot (vermell) per maduixa vermella.

    Ho podem complicar més, i aprofitar la paraula vermell de la cadena inicial i afegir-li la lletra a per fer-la femenina: vermella, tot amb expressions regulars:

    find -type f -name aliments* -exec sed -i 's/\(pebrot (\)\(vermell\))/maduixa \2a/g' {} \;

    Aquesta expressió crea dos grups: el primer conté “pebrot (” i el segon “vermell” (el darrer parèntesi queda fora de cap grup). Així podem usar la seqüència \2 per referir-nos al contingut del segon grup, al qual li afegim la lletra a per transformar-lo en “vermella”.

    1 Si volem fer-ho en un sol fitxer o en varis sense necessitar la recursivitat no cal usar find, podem usar sed directament:

    sed -i 's/CADENA A SUBSTITUIR/CADENA NOVA/g' fitxer1 *.txt
    GD Star Rating
    loading...

  • Cerca amb la comanda find de GNU/Linux

    Fins ara, sempre que havia de cercar diferents tipus de fitxers i/o directoris amb la comanda find, executava una comanda de forma independent per a cada cosa. Però això no és gens òptim, perquè cerquem una i altra vegada per tots els fitxers desitjats. Fa uns dies vaig aprendre com cercar vàries coses alhora, en una sola cerca, de manera que se li puguin indicar a find diferents patrons. Aquí mostro l’exemple que apareix al manual (que es pot accedir amb la comanda: man find), escrit en multilínia per fer-lo més entenidor (recordo també que per canviar de línia a la shell abans de pitjar la tecla retorn o enter cal acabar la línia amb un espai i una barra invertida \):

    find / \
    \( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
    \( -size +100M -fprintf /root/big.txt %-10s %p\n \)
    

    Recorre el sistema una única vegada, llistant fitxers i directoris amb setuid al fitxer /root/suid.txt i fitxers grans (majors de 100 MB) al fitxer /root/big.txt.

    Un exemple més fàcil d’entendre:

    find . \
    \( -name '*.php' -exec echo "Trobat fitxer PHP:" {} \; \) , \
    \( -name '*.exe' -exec rm -f {} \; -exec echo "Eliminat fitxer .exe:" {} \; \) , \
    \( -name '*.txt' -exec ls -l {} \; \)
    

    Al primer patró busquem els fitxers el nom dels quals acabi amb ‘.php’ i mostrem una frase per la sortida estàndard, al segon eliminem fitxers ‘.exe’ i informem de l’acció, i al tercer llistem informació de fitxers ‘.txt’ en un format llarg.

    Podeu veure que a més a més es poden executar vàries comandes per cada patró de cerca. En el segon patró, executem dues comandes amb l’opció -exec: la primera per eliminar els fitxers trobats i la segona per informar què hem fet.

    Bon profit.

    GD Star Rating
    loading...

  • Dos discs durs comprats alhora amb errors

    Quan semblava que la setmana havia anat malament i havia acabat el divendres amb un atropellament i embenat del turmell de la cama dreta, encara podia anar pitjor. Ja ho diu l’amic l’enemic Murphy: “Si alguna cosa pot sortir malament, sortirà malament”. I com vaig llegir al llibre de les lleis de Murphy: “si alguna cosa va malament, anirà pitjor”.

    El cas és que el dissabte, em disposava a fer feina a l’ordinador de casa, quan de sobte vaig començar a notar problemes d’accés a disc, i un sorollet sospitós. Després de comprovar que no podia escriure a la partició de dades, vaig reiniciar la màquina i van aparèixer els errors al syslog…


  • Compilació de ffmpeg

    Avui he compilat el programa ffmpeg per habilitar el suport de mp3 i amr amb el gcc 4.4.1. El que ve per defecte a Kubuntu no inclou aquests còdecs perquè no són lliures. Després de baixar el seu codi font primer he hagut d’instal·lar alguns paquets extres tot teclejant a la consola:

    sudo apt-get install libmp3lame-dev libamrnb-dev libamrwb-dev

    I a continuació:

    ./configure --extra-version=4:0.5+svn2010122-jau --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --extra-cflags=-I/build/buildd/ffmpeg-0.5+svn2010122-jau/debian/include --enable-shared --disable-static --disable-mmx --enable-nonfree --enable-libamr-nb --enable-libamr-wb  --enable-libmp3lame --enable-libxvid --enable-libx264
    
    make

    Com podeu veure he aprofitat per incloure el còdec xvid. I ja tinc la versió: FFmpeg 0.5-4:0.5+svn2010122-jau 🙂

    GD Star Rating
    loading...

  • Maduixa es torna a renovar

    En primer lloc cal agraïr la col·laboració d’en Carlos Jiménez (jimix) per llur aportacions. El hardware del nou maduixa ha passat a ser:

    Pentium III a 1GHz, 192 MB de RAM, targeta gràfica de 32 MB, disc dur de 2,5 GB substituït per un de 8 GB (muntat a /home), i disc dur afegit de 1,7 GB (/).

    Durant el muntatge del nou hardware vam fer algunes fotos:

    Thumbnail foto de maduixaThumbnail foto de maduixaThumbnail foto de maduixaThumbnail foto de maduixa

    Al final l’aspecte exterior va quedar igual, però ara funciona millor  😀

    GD Star Rating
    loading...