El teu blog de Linux en català

Clonezilla és una eina que ens permet clonar un disc o una partició d’un disc. Això pot tenir diverses utilitats. Per exemple, en el meu cas fa uns mesos l’Ubuntu em va avisar que un dels meus discos durs donava sovint errors d’escriptura, senyal que estava ja una mica passat. Em vaig comprar un altre disc dur, amb Clonezilla vaig copiar la informació de l’antic al nou, i vaig iniciar l’ordinador amb el nou. No vaig haver de configurar res extra en el sistema, perquè el Clonezilla ho grava tot, fins i tot l’UUID. També ens pot servir per obtenir una imatge estàtica d’un disc dur, que puguem clonar sobre altres discos durs per a generar ràpidament ordinadors nous (molt útil en empreses, centres educatius, etc.).

Per a utilitzar-lo, primer ens hem de baixar la darrera versió del Clonezilla. A la seva pàgina de descàrregues hi trobarem diversos fitxers. Ens hem de baixar el fitxer amb extensió «.iso» de la versió per a i686. Un cop descarregat, el gravem sobre un CD.

El Clonezilla funciona com un LiveCD. És a dir, hem d’iniciar el sistema amb el seu CD posat, i seleccionar la lectora de CD per a l’inici de l’ordinador. També hem de tenir connectats a l’ordinador els dos discos durs (l’original i el nou). Durant el procés, el Clonezilla ens anirà fent tota una sèrie de preguntes i, a partir del que li indiquem, farà la còpia del disc o la partició.

Pantalla d'inici del Clonezilla

Pantalla d'inici del Clonezilla

A la primera pantalla que ens surt només engegar l’ordinador, escollim «Clonezilla Live», i començarà a carregar el sistema. Un cop carregat, ens preguntarà en quin idioma volem continuar. No hi ha el català. Després, ens preguntarà quin mapa de teclat volem. Escollim no tocar el mapa del teclat. Després, li indicarem que engegui el Clonezilla (opció «Start Clonezilla).

(més…)

A l’anotació anterior vam veure com comprovar i corregir errors en les nostres particions per mitjà del programa fsck. Una limitació que tenia aquest programa és que no pot fer aquestes comprovacions en particions ntfs, molt usades perquè és el tipus de partició predeterminat en els sistemes operatius de Microsoft des de Windows XP (bé, en Windows NT també ho era). Per a poder comprovar errors en particions ntfs, hem d’instal·lar-nos el paquet ntfsprogs. Aquest paquet es troba en els repositoris oficials de la majoria de distribucions, o sigui que el podem instal·lar des del gestor de paquets propi de la nostra distribució (Synaptic si estem utilitzant Ubuntu) o, si ho preferim, des d’un terminal:

sudo apt-get install ntfsprogs

Dins d’aquest paquet, hi ha el programa ntfsfix, que és el que ens servirà per a comprovar errors en particions ntfs. Una dada que cal tenir en compte és que ntfsfix no fa una comprovació tan completa com el fsck en els altres tipus de particions (per exemple, no fa una comprovació de sectors defectuosos), però sí una comprovació bàsica que pot arreglar els problemes més habituals amb aquest tipus de particions. Jo mateix m’he trobat amb problemes amb particions ntfs que no podia muntar, que he pogut arreglar ràpidament amb ntfsfix. Un cop instal·lat el paquet, l’execució de ntfsfix és molt senzilla. Només cal executar en un terminal l’ordre següent:

sudo ntfsfix /dev/sdxx

En aquesta comanda, cal substituir “sdxx” pel nom de la nostra partició.

A més, en el meu cas he integrat l’execució del programa ntfsfix en el fsck. Així, quan vull comprovar una partició, només hi he de passar el fsck, sense haver de tenir en compte si és una partició ntfs o no. Per a poder integrar ntfsfix en el fsck, hem de tenir en compte el que comentava en l’anterior anotació. Com explicàvem, quan fsck troba que una partició és ntfs, intenta executar el programa fsck.ntfs, que no existeix. Doncs la solució per integrar ntfsfix en fsck és molt senzilla: crear un “programa” fsck.ntfs que, realment,  sigui un enllaç al ntfsfix. Així, quan executem fsck sobre una partició ntfs, el fsck cridarà al ntfsfix. Això ho podem fer des d’un terminal, per mitjà de la comanda següent:

sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs

Un cop hàgim executat aquesta comanda, ja podrem fer una comprovació de partició (fins i tot si és ntfs) per mitjà de la comanda:

sudo fsck /dev/sdxx

Les nostres particions, a causa de l’ús, poden arribar a tenir algun tipus d’error, tant a nivell físic (que algun sector quedi inservible) com a nivell lògic (que, per culpa d’una caiguda, hagi quedat mal definit algun inode o descriptor de fitxer, errors en el sector d’inici, etc.). Per a comprovar tots aquests tipus d’errors, la nostra eina és fsck. Quan executem fsck sobre una partició, aquest hi fa una comprovació tant a nivell físic com a nivell lògic. Si hi troba algun tipus d’errada, intenta arreglar-la. Per exemple, pot intentar recuperar dades de sectors defectuosos, marcar aquests sectors com a erronis per tal que no s’hi pugui tornar a escriure més dades, etc.

El programa fsck ja ve instal·lat en la majoria de distribucions, i la seva execució és molt senzilla. Només cal obrir un terminal i executar la comanda següent:

sudo fsck /dev/sdxx

En aquesta comanda, cal substituir “sdxx” pel nostre nom de partició. fsck farà totes les comprovacions i correccions pertinents en la nostra partició. Per a poder executar el fsck sobre una partició, aquesta no pot estar muntada en el nostre sistema. Abans l’hem de desmuntar. Si aquesta partició és un medi extern (disc dur extern, USB, targeta, etc.), no hi tindrem cap problema. Si és una de les nostres particions principals (les que estan muntades a “/”, “/home”, etc.) només podrem fer la comprovació si entrem al sistema amb un LiveCD. De tota manera, en aquest tipus de particions ja es fa una comprovació automàtica més o menys cada 30 vegades que s’inicia l’ordinador, o sigui que segurament no caldrà que les comprovem manualment.

Però hi ha molts tipus de sistemes de fitxers, i un programa que els pugui revisar i arreglar tots hauria de ser força gran. Realment, el fsck fa totes aquests comprovacions? La veritat és que no ho fa directament. fsck és un programa molt petit, que bàsicament el que fa és identificar quin és el tipus del sistema de fitxers que volem comprovar. Si, per exemple, el nostre sistema de fitxers és ext4, el fsck executa, sense que nosaltres ens n’adonem, un programa que es diu “fsck.ext4” que és el que realment fa les comprovacions i correccions pertinents. Hi ha programes “fsck.xxxx” per a molts tipus de fitxers: msdos (fat16 i fat32), vfat, ext2, ext3, ext4, etc.). Però no hi ha cap programa per a comprovar ntfs, per exemple.

En la propera anotació veurem com podem comprovar els errors en particions ntfs.

A casa utilitzo un disc dur multimèdia de la casa IOmega per a fer còpies de seguretat dels fitxers importants, i per poder visualitzar directament en el televisor els backups de les meves pel·lícules. El disc dur multimèdia porta un Firmware que és capaç de reproduir-es directament. Aquest Firmware funciona perfectament quan el disc té una sola partició, encara que no ocupi tot el disc i hi hagi un espai sense particionar. Però deixa de funcionar (només la part de reproducció multimèdia) si hi creem una segona partició, sigui del tipus que sigui.

En el meu cas, hi vaig crear una segona partició del tipus WBFS per a poder jugar des de la Wii a les còpies de seguretat dels meus jocs, tal i com ja us vaig explicar. Doncs bé, en crear la segona partició el disc dur em funcionava correctament com a tal, però va deixar de funcionar com a reproductor multimèdia.

La solució va ser molt senzilla gràcies al fdisk. Les particions tenen un indicador on s’informa per mitjà d’un codi quin tipus de partició és. La idea és indicar que la nova partició és del tipus “Empty” (Buida). D’aquesta manera, el Firmware del disc dur multimèdia no la detecta, es pensa que només té una partició i pot reproduir correctament les pel·lícules que hi ha. La Wii segueix detectant la partició WBFS, malgrat que estigui marcada com a “Empty”. Cal anar amb compte en marcar una partició com a “Empty”, perquè el Windows també la deixarà de detectar, i depenent de per a què la necessitem tampoc no ens servirà aquesta opció. Fins i tot al Gparted no li agrada massa aquest indicador, i no detecta la partició (no així el fdisk). Però el nostre sistema GNU/Linux sí que la detectarà i, si té un format reconegut per ell (ext3, ext4, ntfs, etc.) ens muntarà la partició encara que estigui com a “Empty” i hi podrem escriure i llegir fitxers. Recordem que el GNU/Linux no pot llegir directament el WBFS, però sí a través del programa Wiithon que vaig presentar.

Per a marcar una partició com a “Empty”, primer hem de saber la partició que ens interessa, i ja de pas ens apuntarem quin codi té actualment aquest indicador (per si volem tornar-lo a deixar com estava). Connectem el disc dur al nostre ordinador i, des d’un terminal, executem la comanda següent:

sudo fdisk -l

Ens treurà un llistat amb tots els discos que tenim connectats i les particions que té cadascun d’ells. Us mostro només la part corresponent al disc dur multimèdia. Marco en negreta la partició que vull passar a “Empty”, i en vermell el codi actual de l’identificador que us he comentat:

Disc /dev/sdb: 360.0 GB, 360080695296 octets
255 heads, 63 sectors/track, 43777 cylinders
Units = cilindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5afe667f

Dispositiu Arrenc.   Inici         Final    Blocs    Id  Sistema
/dev/sdb1               1       36968   296945428+   7  HPFS/NTFS
/dev/sdb2 36969      43764   54588870    83 Linux

Com veieu, la partició que m’interessa és la /dev/sdb2, que està al disc /dev/sdb, i té el codi 83 que, com indica just després, vol dir que és una partició “Linux” (perquè la vaig generar amb gparted i no li vaig donar cap format). Amb aquesta informació, ja puc modificar l’indicador per a marcar la partició com a “Empty”. El primer que cal fer, per tal que el fdisk treballi còmodament, és desmuntar totes les particions del disc amb que volem treballar:

sudo umount /dev/sdb1
sudo umount /dev/sdb2

Per a marcar una partició com a “Empty”, cal posar a aquest indicador el codi “0”. Executem doncs el fdisk, centrant-nos en el disc /dev/sdb (que és on hi ha la partició que m’interessa modificar):

sudo fdisk /dev/sdb

Amb aquesta comanda, entrarem en el subsistema del fdisk. En aquest, per exemple, si volem veure les particions que té el disc hem d’entrar l’ordre “p”, i si volem veure totes les ordres tenim disponibles hem d’entrar “m”. Hem d’anar amb compte amb el que fem amb el fdisk. Si no tenim clar que estiguem executant la comanda correcta, amb Ctrl+C sortim a fora.

Un cop dins de l’fdisk, l’identificador que ens interessa es modifica per mitjà de la comanda “t”. Aquesta ens demanarà quin és el número de partició que volem modificar. En el meu cas, li he indicat 2 (de /dev/sdb2). Per últim, ens demana el codi que li volem posar. Si hi escrivim “L”, ens mostrarà tots els codis amb la seva descripció. Com he comentat abans, en el nostre cas li hem d’indicar el codi 0 (Empty). Ens demanarà si volem executar alguna altra ordre. Fem “w” per sortir desant els canvis i ens indicarà que ja ha canviat el tipus de partició. Us mostro aquí la seqüència que he executat al fdisk:

Ordre (m per a obtenir ajuda): t
Nombre de partició (1-4): 2
Codi hex. (escriviu L per veure la llista de codis): 0
El tipus 0 significa espai lliure per a molts sistemes
(però no per a Linux). No és aconsellable tenir
particions del tipus 0. Les podeu suprimir amb l’ordre «d».
S’ha canviat el tipus del sistema de la partició 2 per 0 (Buida)

Ordre (m per a obtenir ajuda): w
S’ha modificat la taula de particions.

S’està cridant ioctl() per rellegir la taula de particions.
S’estan sincronitzant els discs.

Si tornem a executar la comanda “sudo fdisk -l” per veure les particions que tenim als nostres discos, veurem que la /dev/sdb2 està marcada com a “Empty”:

/dev/sdb2 36969       43764    54588870    0 Buida

I amb això, ja podrem gaudir de la reproducció multimèdia que ens proporciona el disc dur, i tenir altres particions per als usos que ens interessin (en el meu cas, per jugar a la Wii). Si volem tornar a deixar la partició amb el seu tipus original, només cal tornar a executar l’fdisk i, com a codi li hem de posar el que teníem anteriorment (en el meu cas, 83).

Per acabar, no sé si aquest problema amb les particions es produeix també en discos durs multimèdia d’altres marques apart d’IOmega, però segurament si hi passa es pot arreglar de la mateixa manera. Una altra marca amb la que segur que passa i que aquest sistema ha de funcionar és Lacie, perquè els seus discos durs multimèdia utilitzen el mateix Firmware que IOmega.

Font: ElOtroLado

La forma més habitual de jugar a la Wii amb les còpies de seguretat dels nostres jocs és gravant-los en un DVD (fent la gravació a la velocitat més baixa possible) i carregar-los per mitjà d’algun dels programes específics que hi ha per a la Wii, com el Backup Loader. Això comporta certs problemes. Per exemple, molts cops la gravació no està ben feta i el Backup Loader no pot llegir el DVD, o la gravació s’ha fet a una velocitat massa alta, etc. Apart d’això, hem d’anar gastant DVDs i, si tenim molts jocs, acaben ocupant un cert espai.

Una altra opció molt bona és instal·lar a la Wii un programa com el USB Loader GX, que ens permet carregar els backups de jocs que tinguem en una targeta SD o un dispositiu USB. Per exemple, un disc dur extern, que ens permetrà tenir-hi molts jocs. En aquest article no explicaré la instal·lació de l’USB Loader GX a la Wii, perquè no entra dins l’àmbit d’alliberats.cat, però sí que explicaré què s’ha de fer per, des de GNU/Linux, preparar el disc dur (o dispositiu USB en general) i com s’hi pot carregar les nostres còpies de seguretat.

El primer que cal tenir en compte és que l’USB Loader GX no pot llegir els backups des de qualsevol tipus de particions, sinó que només ho pot fer des d’un tipus molt concret creat per a aquesta finalitat: WBFS (Wii Backup FileSystem). Aquest tipus de format només se li pot donar des del propi USB Loader GX, però abans de poder-lo aplicar, hem de crear una partició sense format, i això sí que ho podem fer des de GNU/Linux. Per a fer-ho, haurem d’instal·lar el gparted (o el qtparted si utilitzeu entorn KDE). En Ubuntu, qualsevol dels dos es pot instal·lar directament des del Synaptic o des d’un terminal:

sudo apt-get install gparted

Un cop instal·lat, connectem el disc dur extern a l’ordinador i, en cas que ens hagi muntat la partició que tingui, la desmuntem. Obrim el gparted des del menú “Sistema>Administració>Editor de particions”. Sobretot, primer cal seleccionar el dispositiu corresponent al disc dur extern, en el meu cas /dev/sdb (quan entrem al gparted estarem veient el nostre disc dur intern). Segurament el nostre disc extern ja tindrà una partició. Primer hem de decidir si volem dedicar tot el disc dur als backups de Wii, eliminant la partició actual (recordem que el format WBFS serveix única i exclusivament per a backups de Wii), o si preferim reduir la partició actual i crear-ne una de nova WBFS al final. Jo he optat per aquesta segona opció. Amb el botó dret del ratolí he marcat la partició /dev/sdb1, he escollit l’opció “Redimensiona/Mou” i li he indicat una nova mida que em deixés prou espai per a crear la partició WBFS per a les meves còpies de seguretat. Jo he deixat uns 50Gb.

Quan hàgim redimensionat la partició, tindrem en el mateix disc extern un espai sense particionar. Fem clic amb el botó dret ratolí a aquest espai sense particionar i seleccionem “Nou”. Creem la nova partició com a primària, li indiquem l’espai que volem que ocupi (per defecte ja ens marca tot el disponible) i, el més important, com a “Sistema de fitxers” li indiquem “No formatada”. Acceptem, apliquem els canvis, i ja tindrem una nova partició que, de moment, no serveix per a res. 🙂  Per a donar-li el format WBFS, s’ha de fer des del propi USB Loader GX de la Wii. Connectem el disc extern a la Wii i l’engeguem. Arranquem l’USB Loader GX, que ens detectarà el disc, però ens indicarà que no té cap partició WBFS i ens preguntarà si volem formatar alguna partició. Li indiquem que sí, i ens preguntarà quina. Sobretot, cal indicar-li la que acabem de crear i ens la formatarà en un moment.

Particions del disc extern

Particions del disc extern

Ja tenim una partició WBFS preparada per a deixar-hi les còpies de seguretat dels nostres jocs. Ara ens falta saber precisament com passar-hi els jocs. Per a poder-ho fer des de GNU/Linux, hi ha un programa que es diu Wiithon que simplifica molt aquesta tasca. Per a poder-hi escriure, el Wiithon necessita que tinguem permisos d’escriptura sobre el disc. Per a tenir-ne, cal afegir el nostre usuari al grup “disk”. Això es pot fer des d’un terminal, per mitjà de la comanda següent:

sudo adduser el_nostre_usuari disk

Per tal que s’apliquin aquests permisos, cal reiniciar la nostra sessió d’usuari. A partir d’aquí, cal instal·lar el Wiithon. La seva instal·lació no es fa de la forma habitual (Synaptic o apt-get), tot i que els seus programadors l’han fet molt senzilla. Primer, cal instal·lar el paquet bzr, aquest sí des de Synaptic o des d’un terminal:

sudo apt-get install bzr

Amb aquest programa, ens baixarem i descomprimirem la font del Wiithon:

bzr branch http://bazaar.launchpad.net/~wii.sceners.linux/wiithon/stable wiithon

Un cop baixat, anem al directori wiithon on el bzr ens ha deixat la font:

cd wiithon

En aquest directori podem realitzar la instal·lació de Wiithon amb una sola comanda, que ja s’encarrega d’instal·lar per mitjà d’apt-get totes les dependències i compilar i instal·lar el propi Wiithon:

sudo make install_auto_and_fix

Un cop instal·lat, podrem executar el programa des del menú “Aplicacions>Oficina>Wiithon” (no tinc massa clar per què deixa el programa sota el menú “Oficina”). En arrancar el programa, hem de tenir connectat el disc dur extern (o dispositiu USB) on hem creat la partició WBFS. Com a curiositat, aquesta partició no serà detectada pel Sistema Operatiu (no ens la muntarà) i si la visualitzem des del gparted veurem que no li agrada massa (com es pot veure a la imatge anterior del Gparted). Però el Wiithon sí que la veurà i podrà treballar amb ella.

Pantalla principal del Wiithon

Pantalla principal del Wiithon

La utilització del Wiithon és molt fàcil. Per a carregar un joc a la partició WBFS, fem clic al botó “Nuevo”, li indiquem el fitxer .iso (el backup del nostre joc) que volem carregar, i el Wiithon el copia a la partició WBFS. Per extreure un joc de la partició, fem clic a “Extraer a ISO” i li indiquem on volem desar-lo. També podem canviar el nom, eliminar jocs, pujar les caràtules, etc.

El proper cop que engeguem la Wii i anem a l’USB Launcher GX, si tenim connectat el disc dur extern, trobarem que hi tenim uns quants a la nostra disposició per poder jugar. Espero que en gaudiu. 🙂