"ddrescue: Write error: No space left on device"

Cari fedoriani,
ho provato a fare una copia immagine dei dati di un hd esterno zoppicante su un altro hd identico, che ho “pulito” ma devo aver lasciato qualche residuo perché dopo 25 ore mi è uscito il messaggio che dà il titolo all’argomento.

[[email protected] ~]# ddrescue -f -r3 /dev/sdb /dev/sdc /home/[...]/mapfile GNU ddrescue 1.25 Press Ctrl-C to interrupt ipos: 1000 GB, non-trimmed: 3735 kB, current rate: 1376 kB/s opos: 1000 GB, non-scraped: 0 B, average rate: 10954 kB/s non-tried: 1042 MB, bad-sector: 0 B, error rate: 0 B/s rescued: 999158 MB, bad areas: 0, run time: 1d 1h 20m pct rescued: 99.89%, read errors: 102, remaining time: 1m 34s time since last successful read: n/a Copying non-tried blocks... Pass 1 (forwards) ddrescue: Write error: No space left on device

Ho anche il mapfile di oltre trecento righe salvato nella home.

Immagino di dover rifare da capo tutto su un hd esterno più grande, vero?

Non conosco ddrescue. Cosa fa di speciale rispetto a dd?

Intanto posta fdisk -l da root con i dischi connessi, che ne vediamo le dimensioni (immagino la copia sia di sdb sul disco nuovo sdc, giusto?)

La differenza tra un dd ed un ddrescue o dd_rescue è che nel primo caso i dati vengono copiati uno ad uno, anche se sono danneggiati, mentre con gli altri due i blocchi danneggiati vengono saltati. Toccherà poi al proprietario del sistema correggere gli errori con fsck. Piccola nota aggiuntiva: oggi ho fatto partire il mio computer come il solito ma si comportava in maniera strana con blocchi improvvisi. Ho copiato i dati del vecchio disco rigido su uno nuovo e tutto sembra risolto. Mi sa che si stava per schiantare.
P.s: l’ho credo che ti ha segnato errore! Guarda la linea di comando. In dd o varianti ci deve essere una periferica d’entrata ed una d’uscita nella forma dd if=“periferica d’entrata” of=“periferica d’uscita”. Lì ne vedo due…

Grazie per le risposte.
In passato mi era stato consigliato, direi qui, di usare ddrescue e non dd.
Avevo controllato la sintassi (ad es. qui), prima si mette il disco da salvare e poi la destinazione dal “salvato”, infine eventuali log e simili: nel mio caso sono due hd esterni, dove ho sbagliato?
Adesso ho comprato un hd più spazioso per evitare sorprese e ritento la sorte…

Ho guardato anch’io qui ( https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html ) e forse il problema non è di sintassi ma solo di spazio. Io uso abitualmente dischi da 500 GB ma un disco da 1TB è aldilà delle mie esigenze. Forse ti conviene usare il vecchio dd sempre che il disco sorgente sia di dimensioni uguali a quello di destinazione.

Vabe’ per curiosità, come scritto da @bebo_sudo, potevi farci vedere il risultato di
sudo fdisk -l
o di
lsblk

Ma no :slight_smile: il nuovo ddrescue va benissimo.

Ho visto la posta dal lavoro sul portatile e mi era sfuggita la richiesta, grazie per avermela ricordata:

[[email protected] ~]# fdisk -l
Disk /dev/sda: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST1000LM049-2GH1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 130E7428-0D35-4CDE-A895-2507F1EE7629

Dispositivo      Start       Fine    Settori   Size Tipo
/dev/sda1         2048    1333247    1331200   650M EFI System
/dev/sda2      1333248    1595391     262144   128M Microsoft reserved
/dev/sda3      1595392  415471615  413876224 197,4G Microsoft basic data
/dev/sda4   1951471616 1953499135    2027520   990M Windows recovery environment
/dev/sda5    415471616  520329215  104857600    50G Linux filesystem
/dev/sda6    520329216  537106431   16777216     8G Linux swap
/dev/sda7    537106432 1951471615 1414365184 674,4G Linux filesystem

Partition table entries are not in disk order.


Disk /dev/zram0: 7,55 GiB, 8111783936 bytes, 1980416 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdb: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: External USB 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0b9abd2

Dispositivo Avvio Start       Fine    Settori   Size Id Tipo
/dev/sdb1   *      2048 1953522863 1953520816 931,5G  7 HPFS/NTFS/exFAT


Disk /dev/sdc: 931,51 GiB, 1000204885504 bytes, 1953525167 sectors
Disk model: Expansion+      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb0b9abd2

Dispositivo Avvio Start       Fine    Settori   Size Id Tipo
/dev/sdc1   *      2048 1953522863 1953520816 931,5G  7 HPFS/NTFS/exFAT

Avevo già effettuato il controllo e visto che sembrano uguali avevo immaginato di poter tentare la copia diretta dall’uno all’altro via ddrescue, invece…

Trova le differenze :sweat_smile:

Ecco anche l’altro:

[[email protected] ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931,5G  0 disk 
├─sda1   8:1    0   650M  0 part /boot/efi
├─sda2   8:2    0   128M  0 part 
├─sda3   8:3    0 197,4G  0 part 
├─sda4   8:4    0   990M  0 part 
├─sda5   8:5    0    50G  0 part /
├─sda6   8:6    0     8G  0 part [SWAP]
└─sda7   8:7    0 674,4G  0 part /home
sdb      8:16   0 931,5G  0 disk 
└─sdb1   8:17   0 931,5G  0 part 
sdc      8:32   0 931,5G  0 disk 
└─sdc1   8:33   0 931,5G  0 part 
sr0     11:0    1  1024M  0 rom  
zram0  252:0    0   7,6G  0 disk [SWAP]

I miei tempi sono generalmente lenti, dunque non mi sono ancora procurato il disco da 2T e dunque non ho ancora ritentato la sorte…

Tremendi… mi ero fermato ai G :disappointed:

Eh. A volte capita. Leggi sull’etichetta 1TB e per un paio di byte i dischi non hanno la stessa dimensione.

Mmm, sì, fdisk è più preciso.
Allora meglio lsblk -b (giusto per curiosità).

Il bello è che avevo anche controllato al volo, ma senza andare al dettaglio dei byte/settori, la fretta è sempre cattiva consigliera

[[email protected] ~]# lsblk -b
NAME   MAJ:MIN RM          SIZE RO TYPE MOUNTPOINT
sda      8:0    0 1000204886016  0 disk 
├─sda1   8:1    0     681574400  0 part /boot/efi
├─sda2   8:2    0     134217728  0 part 
├─sda3   8:3    0  211904626688  0 part 
├─sda4   8:4    0    1038090240  0 part 
├─sda5   8:5    0   53687091200  0 part /
├─sda6   8:6    0    8589934592  0 part [SWAP]
└─sda7   8:7    0  724154974208  0 part /home
sdb      8:16   0 1000204886016  0 disk 
└─sdb1   8:17   0 1000202657792  0 part 
sdc      8:32   0 1000204885504  0 disk 
└─sdc1   8:33   0 1000202657792  0 part 
sr0     11:0    1    1073741312  0 rom  
zram0  252:0    0    8111783936  0 disk [SWAP]

Dunque se fosse possibile fare un rescue solo fra partizioni…

Malefici :sweat_smile:

Magari esistono strumenti che ti ridimensionano anche le partizioni come faceva Partition Magic quando ero giovane? Ma sinceramente non saprei.

Uso Gparted di solito, ma qui il problema è che l’hd è inaccessibile, da cui il rescue…, altrimenti avrei potuto ridurla, dato che non è piena!

Hai tentato un fsck su /dev/sdc? Magari si riesce a ricostruire il fs anche senza quei pochi byte alla fine

Intendi sul disco nuovo (sdc)? O riparare il vecchio (sdb)?