20120111

Recover your hard drive isolating bad blocks

Recently i had problems with very bad sactors on my storage drive. These sectors are impossible to recover, but maybe it is possible to isolate them reducing your partition o creating partitions where there are cointiguous blocks. I found them using badblocks on linux. You have to run it on umounted filesystem:

badblocks -v /dev/yourdev > bad.txt

The file bad.txt will contain a list of bad sectors. So you could create small partitions of 10GB for example to check the integrity and take notes about the start point and the end point to create a partition smaller than your drive capacity but without bad sectors.

20110908

WICD: gestore di rete di default su ubuntu text-mode

Di recente ho intallato ubuntu 10.10 su un vecchio notebook, ho deciso di disabilitare gdm e modificare grub per far partire l'intero sistema in text-mode.
Il problema che ho riscontrato e' stato nella connessione internet tramite wifi (con una penna usb) che con wpa_supplicant non ne voleva sapere di connettersi pur avendo correttamente editato il file di configurazione. Stranamente quando facevo ripartire gdm, effettuando il login in gnome, la connessione veniva ristabilita senza problemi.
Per risolvere il problema ho installato wicd ed ho dovuto diabilitare il network-manager di default perche' non permetteva la connessione a wicd. Adesso in text mode funziona tutto, ho dovuto aggiungere queste righe nel file /etc/rc.local:


/etc/init.d/networking stop
service network-manager stop
/etc/init.d/wicd start


E' inoltre necessario rimuovere wicd dal runlevel in modo tale che non parta in automatico ma solo dopo che il network manager di default sia disattivato:

sudo update-rc.d -f wicd remove

Non resta che riavviare e poi configurare la propria rete in text-mode con wicd-curses.

20110714

dd dvd/cdrom to Iso file

La conversione di un dvd o un cd-rom in un file ISO può avvenire attraverso i più comuni software commerciali e non, incluso il comando dd presente sui sistemi Unix-like e su windows grazie a CygWin.

Il comando è il seguente:

dd if=/dev/dvd of=nome.iso # per un dvd
dd if=/dev/cdrom of=nome.iso # per un cd
dd if=/dev/scd0 of=nome.iso # se abbiamo un'unità scsi oppure si utilizza CygWin

20110705

Truecrypt da shell con Linux

Un hard disk esterno utilizzato per il backup di dati, spesso sensibili, potrebbe cadere facilmente in mani altrui, soprattutto se è da 2,5'' e lo si porta in giro. Perché non creare un volume criptato utilizzabile con i sistemi operativi più comuni?
Questo è possibile grazie a Truecrypt (Windows, Mac e Linux), uno strumento open-source con il quale è possibile creare partizioni e volumi virtuali criptati. Per gli utenti BSD truecrypt non è presente; tuttavia è possibile utilizzare GEOM Based Disk Encryption (gbde).
Nel mio caso specifico ho avuto necessità di fare un backup di dati sensibili dal mio piccolo server casalingo ad un hard drive usb. Per fare ciò ho scaricato truecrypt dal sito ufficiale, prelevando la versione testuale (senza GUI) poiché utilizzo il server tramite ssh. Per le varie distribuzioni linux sono presenti dei pacchetti tar.bz2 contenti un installer.
Terminata l'installazione si procede con la creazione di un volume criptato utilizzando l'intero disco usb. NB: Assicurasi di avere salvato tutti i dati utili presenti nel disco che si va a formattare.

  1. Eseguire il wizard per creare un volume: truecrypt -c


    Volume type:
    1) Normal
    2) Hidden
    Select [1]: 1

    Per saperne di più su un Hidden Volume.


    Enter volume path: /dev/sdb1

    Specificare il disco e la partizione.


    Enter your user password or administrator password:

    Specificare la password di root o quella utilizzata con sudo. Lanciando il wizard con sudo questa richiesta non si dovrebbe presentare.


    Encryption algorithm:
    1) AES
    2) Serpent
    3) Twofish
    4) AES-Twofish
    5) AES-Twofish-Serpent
    6) Serpent-AES
    7) Serpent-Twofish-AES
    8) Twofish-Serpent
    Select [1]: 1

    Hash algorithm:
    1) RIPEMD-160
    2) SHA-512
    3) Whirlpool
    Select [1]: 1

    L'algoritmo più veloce è AES, quello di hash la scelta è indifferente.

    Filesystem:
    1) None
    2) FAT
    3) Linux Ext2
    4) Linux Ext3
    5) Linux Ext4
    Select [2]: 2

    Personalmente ho utilizzato FAT perchè è un fs semplice e presente quasi dappertutto. Ovviamente i file più grandi di 4GB andranno suddivisi in archivi.

    Enter password:
    Inserire la password che servirà in seguito per poter effettuare il mount del volume criptato. Scegliere una password abbastanza lunga e varia.

    Enter keyfile path [none]:
    Non specificare nulla così come nelle eventuali domande successive. Al termine del wizard partirà la creazione del volume.
  2. Se il wizard si è concluso correttamente, sarà possibile effettuare il mount della partizione criptata: truecrypt --mount
    Saranno richiesti il path della partizione da montare, il mountpoint e la password specificata nel wizard per poter leggere i dati protetti, oltre che la solita password di amministratore.
  3. Per concludere, supponendo di voler smontare il volume è necessario eseguire in sequenza i comandi:

    sync
    umount
    truecrypt -d


    Per comodità, ho inserito questi comandi in un piccolo script per velocizzare l'operazione e non dimenticare niente:

    #!/bin/sh

    if [ -n "$1" ];
    then
    sync
    umount "$1" > /dev/null 2>&1
    /usr/bin/truecrypt -d
    else
    echo "Specificare il mountpoint - es.: /mnt/encrypted"
    fi


La fase di mount si può automatizzare utilizzando un keyfile e di conseguenza anche fstab.
Per quanto mi riguarda preferisco effettuare il mount di persona, almeno fino a quando non mi annoierò :).

20100319

Merge multiple pdf to one

A simple way to merge multiple pdf files to one single pdf could be using TeX! It is faster and not expensive:


texexec --pdfarrange --result all.pdf file1.pdf file2.pdf file3.pdf
texexec --pdfarrange --result all.pdf `ls *.pdf`

enjoy!

GDM errors about ICEauthority

After upgrading my opensolaris installation i had troubles with GDM on start with these messages:

Could not update ICEauthority file /.ICEauthority

There is a problem with the configuration server. (/usr/lib/gconf-sanity-check-2 exited with status 256)

To fix them i did this using an xterm session login:

pfexec usermod -d /var/lib/gdm gdm
pfexec rm /usr/lib/xorg/modules/extensions/GL
pfexec ln -s ../../../../../var/run/opengl/server/ /usr/lib/xorg/modules/extensions/GL
pfexec svcadm restart gdm

It should work! Anyway here is the link to the topic on the Opensolaris forum: http://opensolaris.org/jive/thread.jspa?threadID=120672&tstart=0

20100228

Firefox over SSH/X11

I always had troubles calling firefox over ssh if the session was started from another unix-like machine. For example if call firefox in the remote shell, it starts but it is a local instance, not remote. So i found this solution to fix this issue, calling the firefox command with "no-remote" option: firefox -no-remote. That's all :)

20100214

Kill a process with ease in Opensolaris

Opensolaris has a nice command to kill process by name: pkill. So if you know the process name like firefox-bin it's easy to kill it running pkill firefox-bin. If you don't know the name of the process follow these steps:
  • ps -ef | grep -i proc_name_to_look_for
  • kill -9 PID_Of_process_found

20100202

Nimbus theme with Gnome in GNU/Linux

I was looking for a good theme for Gnome on my gnu/linux distro and opensolaris theme called Nimbus is really cool as you can see.
Nimbus Screenshot

To install this theme it i followed these steps:
  1. Open a terminal and get the latest nimbus theme and extract it:
    wget http://dlc.sun.com/osol/jds/downloads/extras/nimbus/nimbus-0.1.4.tar.bz2. So this url contains all versions of this theme. To extract: tar -jxvf nimbus-0.1.4.tar.bz2
  2. After package extraction enter in the extracted directory and it should be possible to run:
    ./configure --prefix=/usr. I've used the prefix /usr because my themes dir is in /usr/share and not in /usr/local/share. Check where is your themes directory before run configure and then set the right prefix!
  3. Run make  and make install as privileged user.
  4. Go to the appearance settings in Gnome and you should be able to find the Nimbus theme with its variants.
That's all! Good luck!

20100128

SMF - Service Management Facility administration

Sun Solaris 10, Opensolaris and successors have a new mechanism to manage services: SMF. So the first thing you could notice is that there are no more /etc/rc?.d but only a daemon that you have to use to start all the services you need. Infact /etc/rc?.d and /etc/inetd.conf are empty! The first issue I found running Opensolaris was to start gdm daemon and login in text mode: I kill it from a gui terminal emulator but gdm has restarted soon soon! So, how to stop it?!?! It is necessary to use SMF administration commands(svcs | svcadm | svccfg):

  • svcs: print the state of all services and for each service it is possible to see its dependencies from other services, including reasons for failure.
    Examples:

    marco@IbmSolaris:~$ svcs -l hal
    fmri svc:/system/hal:default
    nome Hardware Abstraction Layer daemon
    abilitato vero
    stato online
    next_state none
    state_time 05 gennaio 2010 1:11:51 CET
    logfile /var/svc/log/system-hal:default.log
    programma di riavviosvc:/system/svc/restarter:
    default contract_id 62
    dependency require_all/none svc:/system/filesystem/local (online)
    dependency require_all/none svc:/system/device/local (online)
    dependency require_all/none svc:/system/dbus (online)

    marco@IbmSolaris:~$ svcs -x hal
    svc:/system/hal:default (Hardware Abstraction Layer daemon)
    Stato: online da 05 gennaio 2010 1:11:51 CET
    Vedere: hal(1M
    Vedere: /var/svc/log/system-hal:default.log
    Impatto: nessuno.

    marco@IbmSolaris:~$ svcs -d hal
    STATE STIME FMRI
    online gen_05 svc:/system/device/local:default
    online gen_05 svc:/system/filesystem/local:default
    online gen_05 svc:/system/dbus:default

    marco@IbmSolaris:~$ svcs -D hal
    STATE STIME FMRI
    disabled gen_05 svc:/network/device-discovery/printers:snmp
    online gen_05 svc:/system/filesystem/rmvolmgr:default
    online gen_05 svc:/application/graphical-login/gdm:default

    For more use svcs -? or see man page.
  • svcadm: to manipulate (enable/disable/restart/refresh/milestone/clear) services.
    marco@IbmSolaris:~$ svcadm restart apache2
  • Notice that for both commands it is possible to pass the name of the service in different name forms according to the service's FMRI (Fault Managed Resource Identifier).
  • svccfg: to import, export, and modify service configurations repository(with XML). It is possible to call it in interactive mode(for exmaple run it wihtout parameters).
That's a new and good way to manage services. Funny! No?!?