El teu blog de Linux en català

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