• Tag Archives disc dur
  • Copiar el MBR d’un disc a un altre

    Amb la següent comanda podem copiar el MBR (Master Boot Record) d’un disc a un altre:

    dd if=/dev/sdx of=/dev/sdy bs=512 count=1

    L’explicació d’aquesta és: llegeix i escriu (copia) només un bloc de 512 bytes del disc sdx al disc sdy.

    Això pot ser útil quan per alguna raó perdem la taula de particions d’un disc dur o d’un pen drive, i d’aquesta manera restablim el MBR a partir d’un altre disc. He vist moltes vegades que un disc dur que no té cap partició, el sistema operatiu Windows no el reconeix. Això vol dir que el disc, per exemple /dev/sdx, no conté /dev/sdx1, /dev/sdx2… que seria cadascuna de les particions; ho podem comprovar si teclegem al terminal:

    ls /dev/sdx*

    només ens apareix l’arrel del disc /dev/sdx.

    Una altra manera de crear particions és amb els programes cfdisk o fdisk, tot seguint les instruccions que indiquen.

    GD Star Rating
    loading...

  • Mini benchmark de reiserfs

    Després d’haver recuperat totes les dades dels dos discos durs, i d’haver comprovat que el disc important no té errors de maquinari, l’he formatat. He creat el sistema de fitxers reiserfs amb:

    cfdisk /dev/sda1 #crear la partició de forma interactiva
    mkreiserfs /dev/sda1 #formatejar amb reiserfs

    He passat totes les dades d’un disc dur (de la marca Seagate) a un altre (Western Digital), tots dos SATA i de 500 GB. Primer he mirat la quantitat de dades que havia de passar, en kibibytes (KiB) i en gibibytes (GiB):

    minterior@jau:/media/recuperat$ du -sc
    309201518       .
    309201518       total
    minterior@jau:/media/recuperat$ du -sch
    295G    .
    295G    total

    Podem comprovar l’equivalència: 309201518 KiB / 1024 / 1024 = 294,877546 GiB ≈ 295 GiB

    La còpia l’he feta des del terminal, anteposant la comanda time a la comanda cp -rp per obtenir el temps de duració de la còpia, que ha estat:

    15.63user 2163.99system 1:54:07elapsed 31%CPU (0avgtext+0avgdata 0maxresident)k
    618162424inputs+617982328outputs (1major+347minor)pagefaults 0swaps

    Quasi dues hores. Per tant ha estat 6847 segons (1*3600 + 54*60 + 7) per escriure 316.622.354.432 bytes (309201518 * 1024), el que és una velocitat de:

    46242493.71 bytes/s ≈ 46,2425 MB/s = 44,1003 MiB/s

    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 359

    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 ahir 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:

    Feb 20 11:28:14 jau kernel: [  721.004020] ata2: lost interrupt (Status 0x50)
    Feb 20 11:28:14 jau kernel: [  721.004052] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
    Feb 20 11:28:14 jau kernel: [  721.004066] ata2.00: cmd c8/00:08:cf:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [  721.004067]          res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    Feb 20 11:28:14 jau kernel: [  721.004072] ata2.00: status: { DRDY }
    Feb 20 11:28:14 jau kernel: [  721.004082] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [  721.340070] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [  721.392043] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [  721.392050] ata2.00: device reported invalid CHS sector 0
    Feb 20 11:28:14 jau kernel: [  721.392061] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1374.388464] REISERFS (device sdb1): found reiserfs format "3.6" with standard journal
    Feb 20 11:28:14 jau kernel: [ 1374.388493] REISERFS (device sdb1): using ordered data mode
    Feb 20 11:28:14 jau kernel: [ 1374.388876] REISERFS (device sdb1): journal params: device sdb1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
    Feb 20 11:28:14 jau kernel: [ 1374.389792] REISERFS (device sdb1): checking transaction log (sdb1)
    Feb 20 11:28:14 jau kernel: [ 1377.350990] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1377.350996] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1377.351007] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1377.351009]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1377.351013] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1377.351016] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1377.351027] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1377.668069] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1377.705303] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1377.705314] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1381.012774] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1381.012778] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1381.012787] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1381.012789]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1381.012793] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1381.012795] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1381.012803] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1381.332067] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1381.365077] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1381.365085] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1384.288163] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1384.288167] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1384.288176] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1384.288177]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1384.288181] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1384.288184] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1384.288191] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1384.608067] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1384.640473] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1384.640479] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1387.682677] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1387.682681] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1387.682690] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1387.682692]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1387.682696] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1387.682698] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1387.682706] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1388.000071] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1388.028998] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1388.029005] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1391.079195] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1391.079199] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1391.079207] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1391.079209]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1391.079213] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1391.079216] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1391.079223] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1391.396067] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1391.432510] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1391.432517] ata2: EH complete
    Feb 20 11:28:14 jau kernel: [ 1394.354586] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6
    Feb 20 11:28:14 jau kernel: [ 1394.354590] ata2.00: BMDMA stat 0x4
    Feb 20 11:28:14 jau kernel: [ 1394.354598] ata2.00: cmd c8/00:08:d7:00:01/00:00:00:00:00/e0 tag 0 dma 4096 in
    Feb 20 11:28:14 jau kernel: [ 1394.354600]          res 51/40:00:db:00:01/00:00:00:00:00/e0 Emask 0x9 (media error)
    Feb 20 11:28:14 jau kernel: [ 1394.354603] ata2.00: status: { DRDY ERR }
    Feb 20 11:28:14 jau kernel: [ 1394.354606] ata2.00: error: { UNC }
    Feb 20 11:28:14 jau kernel: [ 1394.354614] ata2: hard resetting link
    Feb 20 11:28:14 jau kernel: [ 1394.672066] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
    Feb 20 11:28:14 jau kernel: [ 1394.700908] ata2.00: configured for UDMA/133
    Feb 20 11:28:14 jau kernel: [ 1394.700920] sd 1:0:0:0: [sdb] Unhandled sense code
    Feb 20 11:28:14 jau kernel: [ 1394.700925] sd 1:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
    Feb 20 11:28:14 jau kernel: [ 1394.700930] sd 1:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
    Feb 20 11:28:14 jau kernel: [ 1394.700937] Descriptor sense data with sense descriptors (in hex):
    Feb 20 11:28:14 jau kernel: [ 1394.700940]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
    Feb 20 11:28:14 jau kernel: [ 1394.700952]         00 01 00 db
    Feb 20 11:28:14 jau kernel: [ 1394.700957] sd 1:0:0:0: [sdb] Add. Sense: Unrecovered read error - auto reallocate failed
    Feb 20 11:28:15 jau kernel: [ 1394.700965] end_request: I/O error, dev sdb, sector 65755
    Feb 20 11:28:15 jau kernel: [ 1394.700978] ata2: EH complete
    Feb 20 11:28:15 jau kernel: [ 1394.701248] REISERFS error (device sdb1): vs-13070 reiserfs_read_locked_inode: i/o failure occurred trying to find stat data of [1 2 0x0 SD]
    Feb 20 11:28:15 jau kernel: [ 1394.701253] REISERFS (device sdb1): Remounting filesystem read-only
    Feb 20 11:28:15 jau kernel: [ 1394.701263] REISERFS (device sdb1): Using r5 hash to sort names
    Feb 20 11:28:15 jau kernel: [ 1394.749441] REISERFS (device sdc5): found reiserfs format "3.6" with standard journal
    Feb 20 11:28:15 jau kernel: [ 1394.749462] REISERFS (device sdc5): using ordered data mode
    Feb 20 11:28:15 jau kernel: [ 1394.758307] REISERFS (device sdc5): journal params: device sdc5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
    Feb 20 11:28:15 jau kernel: [ 1394.759206] REISERFS (device sdc5): checking transaction log (sdc5)
    Feb 20 11:28:15 jau kernel: [ 1394.817540] REISERFS (device sdc5): Using r5 hash to sort names
    Feb 20 11:28:15 jau kernel: [ 1394.882579] REISERFS (device sdb1): found reiserfs format "3.6" with standard journal
    Feb 20 11:28:15 jau kernel: [ 1394.882617] REISERFS (device sdb1): using ordered data mode
    Feb 20 11:28:15 jau kernel: [ 1394.884805] REISERFS (device sdb1): journal params: device sdb1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
    Feb 20 11:28:15 jau kernel: [ 1394.885733] REISERFS (device sdb1): checking transaction log (sdb1)

    A partir d’aquí ja no vaig poder muntar les particions dels dos discos SATA de 500 GB (cadascun amb una única partició), ni com a read-only. Es van intentar repetir les transaccions pendents (replay journal) amb la comanda fsck.reiserfs, però no es va arreglar la cosa. Vaig provar les opcions –fix-fixable–rebuild-tree però tampoc es recuperava. El que és sospitós és que hagin fallat tots dos alhora, els quals també els vaig comprar al mateix moment. No sé què haurà passat.

    De moment els he desconnectat per poder treballar amb l’ordinador, perquè afortunadament les particions / (arrel) i /home les tinc en un disc ATA que no va fallar. Ja miraré d’arreglar-ho quan pugui, sobretot per recuperar les dades que hi tenia, tot i que estic relativament tranquil perquè tinc un backup del 24 de novembre del 2009; no és molt recent, però tampoc massa antic.

    En fi, un desastre tot plegat! Setmana per oblidar…

    GD Star Rating
    loading...