Quanto tempo ci vuole per convertire un cdr in un iso? [chiuso]


-1

Ho eseguito il comando

sudo dd if=/dev/disk# of=/Volumes/Path/To.iso

alle 6 circa di questa mattina. Sono quasi le 14 e il comando è ancora in esecuzione. L'immagine di ingresso del cdr è di circa 300 GB.

Ho un Mac Mini Server di fine 2012, 2.6 GHz i7, 16GB 1600 MHz DDR3, Intel HD Graphics 4000 1536 MB. E sto correndo fino ad oggi Mojave.

Questo mi sembra davvero molto lento.

Per prima cosa ho provato a usare hdutil ma continuava a lanciare un errore.


Stai leggendo da un disco interno o esterno, HDD o SSD? Lo stesso per la scrittura.
nohillside

Oh, buon punto, entrambe le immagini sono su un HDD esterno & amp; quell'unità è margherita incatenata con firewire8. Questo ha fatto la differenza, lol.
Kerlix

Cosa intendi con "cdr"? Non è sicuramente un CD-R se è 300 GB, ed è l'unica cosa che mi viene in mente. Edit: Aspetta, penso di aver capito.
Zenexer

Se questa domanda è ancora pertinente per te: controlla i commenti e le risposte esistenti, quindi modifica la domanda per aggiungere i dettagli necessari. In questo momento possiamo solo indovinare quali sono le tue intenzioni e quale problema stai affrontando.
nohillside

Risposte:


2

L'aggiunta di un buffer di grandi dimensioni accelererà le cose in modo significativo . La dimensione predefinita è piccola; come 512 byte. Aumentare le dimensioni usando l'opzione bs. Sto solo usando sudo perché l'hai fatto.

sudo dd if=/dev/disk bs=4096m | sudo dd of=/Volumes/Path/To.iso bs=4096m

Questo comando dall'aspetto spaventoso chiederà ai comandi dd di riportare il loro stato. Il -s dice di segnalare.

sudo kill -s siginfo $(pgrep ^dd)   # get dd info

Ho provato con varie dimensioni del buffer, più grande è il buffer più veloce sarà la copia. Non voglio ottenere un buffer così grande come il buffer deve essere impaginato.

Se ho sbagliato la sintassi sopra, questi sono i comandi effettivi che hanno funzionato per me. Presumo che tu sappia che è necessario smontare la partizione / unità prima di usare dd. Per alcuni comandi dd, avevo bisogno di usare sudo.

dd if=/dev/disk0s10 bs=4096m | gzip | dd of=~/disk0-s10 bs=4096m
dd if=~/disk0-s10 bs=4096m | gunzip | dd of=/dev/disk0s10 bs=4096m
sudo kill -s siginfo $(pgrep ^dd)   # get dd info

Modifica: Gen 18,2019 Ho fatto i tempi usando uno o due comandi dd. Era una scossa di quale forma era più veloce. Il tempo nel mio test variava in genere di 0,3 di secondo tra i comandi. Tuttavia, in un caso i due comandi dd sono stati più lenti di oltre un secondo. La differenza sembrava essere il comando che veniva eseguito per primo. Il secondo test è stato sempre più veloce. Suppongo che l'unico comando dd costruisca un secondo processo per emettere i dati e comunichi al secondo processo tramite una pipe. Questo è più o meno come usare due comandi dd.

dd if=InstallESD.dmg bs=801920k  of="/Volumes/--Mojave--/mojave2.dmg" 
5+1 records in
5+1 records out
4719681368 bytes transferred in 28.887363 secs (163382216 bytes/sec)
Show_Time
 date +%s 
  Elapsed time in seconds since start of processing: 84    Time of this step: 29

dd if=InstallESD.dmg bs=801920k | dd of="/Volumes/--Mojave--/mojave.dmg" bs=801920k
5+1 records in
5+1 records out
4719681368 bytes transferred in 27.383548 secs (172354633 bytes/sec)
0+72017 records in
0+72017 records out
4719681368 bytes transferred in 27.459524 secs (171877757 bytes/sec)
Show_Time
 date +%s 
  Elapsed time in seconds since start of processing: 112    Time of this step: 28

rm  "/Volumes/--Mojave--/mojave.dmg"
rm  "/Volumes/--Mojave--/mojave2.dmg"
Show_Time
 date +%s 
  Elapsed time in seconds since start of processing: 112    Time of this step: 0

dd if=InstallESD.dmg bs=801920k  of="/Volumes/--Mojave--/mojave2.dmg" 
5+1 records in
5+1 records out
4719681368 bytes transferred in 26.754509 secs (176406950 bytes/sec)
Show_Time
 date +%s 
  Elapsed time in seconds since start of processing: 139    Time of this step: 27

dd if=InstallESD.dmg bs=801920k | dd of="/Volumes/--Mojave--/mojave.dmg" bs=801920k
5+1 records in
5+1 records out
4719681368 bytes transferred in 26.210222 secs (180070255 bytes/sec)
0+72017 records in
0+72017 records out
4719681368 bytes transferred in 26.286946 secs (179544682 bytes/sec)
Show_Time
 date +%s 
  Elapsed time in seconds since start of processing: 165    Time of this step: 26

... le linee all'inizio erano tagliate. ...

Ecco lo script di bash che ho usato.

#!/bin/bash -v

function Show_Time () {
  let currentRunTime="$( date +%s ) - ${Seconds_since_the_epoch_start}"
  let stepRunTime=currentRunTime-previousRunTime
  echo "  Elapsed time in seconds since start of processing: ${currentRunTime}" \
     "   Time of this step: ${stepRunTime}"
  echo
  let previousRunTime=currentRunTime
}

savedCommandName="$0"
echo
echo "${savedCommandName} script last revised on $(GetFileInfo -m $0)"
#echo "${savedCommandName} script revised."
echo
# input file name  "/Applications/InstallmacOSHighSierra.app/Contents/SharedSupport/InstallESD.dmg"
inputDir="/Applications/InstallmacOSHighSierra.app/Contents/SharedSupport"
cd ${inputDir}
inputName="InstallESD.dmg"
echo "inputDir is ${inputDir}"
echo "inputName is ${inputName}"
ls -l "${inputDir}/${inputName}"

ls -l "/Volumes/--Mojave--/mojave.dmg"
rm "/Volumes/--Mojave--/mojave.dmg"
ls -l "/Volumes/--Mojave--/mojave.dmg"

ls -l "/Volumes/--Mojave--/mojave2.dmg"
rm "/Volumes/--Mojave--/mojave2.dmg"
ls -l "/Volumes/--Mojave--/mojave2.dmg"
# Set the start time now that the user interaction is done
Seconds_since_the_epoch_start=$( date +%s )
# 80meg buffer


Show_Time
dd if=InstallESD.dmg bs=801920k  of="/Volumes/--Mojave--/mojave2.dmg" 
Show_Time
dd if=InstallESD.dmg bs=801920k | dd of="/Volumes/--Mojave--/mojave.dmg" bs=801920k
Show_Time
rm  "/Volumes/--Mojave--/mojave.dmg"
rm  "/Volumes/--Mojave--/mojave2.dmg"
Show_Time
dd if=InstallESD.dmg bs=801920k  of="/Volumes/--Mojave--/mojave2.dmg" 
Show_Time
dd if=InstallESD.dmg bs=801920k | dd of="/Volumes/--Mojave--/mojave.dmg" bs=801920k
Show_Time
rm  "/Volumes/--Mojave--/mojave.dmg"
rm  "/Volumes/--Mojave--/mojave2.dmg"
Show_Time
dd if=InstallESD.dmg bs=801920k  of="/Volumes/--Mojave--/mojave2.dmg" 
Show_Time
dd if=InstallESD.dmg bs=801920k | dd of="/Volumes/--Mojave--/mojave.dmg" bs=801920k
Show_Time

+1 per la buona risposta.
Allan

5
Mentre @ Allan potrebbe considerare questa una buona risposta, io no. Tecnicamente il bs operando è block size non "dimensione del buffer" e mentre si utilizza un aumento block size può ridurre l'intervallo di tempo complessivo comunque comando stai suggerendo sudo dd if=/dev/disk bs=4096m | sudo dd of=/Volumes/Path/To.iso bs=4096m è malformato! Non c'è beneficio per tubatura dd a se stesso come hai fatto in questo comando!
user3439894

Credo che abbia risolto il problema dei poster originali. Sono prudente qui. Sono andato con cose che ho testato. So che bs è una dimensione del blocco, ma ho pensato che la terminologia sarebbe stata fonte di confusione.
historystamp

Ho pensato che fosse SIGUSR1 a causare questo dd dare un segnale
wizzwizz4

1

Di solito non richiede molto tempo per copiare un CD-R su un ISO. A seconda di come è fatto, un CD-R in condizioni decenti dovrebbe impiegare circa 15-45 minuti, con 20-30 minuti come normalmente mi aspetterei. Può richiedere molto più tempo se il disco è graffiato o il materiale al suo interno si sta deteriorando, cosa che può accadere nel tempo. Questo perché l'unità e / o il computer devono eseguire la correzione degli errori. Potrebbe volerci un'ora o due, ma non ci vorrebbe un giorno intero.

Controlla che il disco da cui stai copiando sia effettivamente l'unità CD-R. Controlla per vedere quanto è grande il file di output: se è più grande di quello che ti aspetti, potresti copiare dall'unità sbagliata.

È possibile che il disco sia troppo danneggiato per essere letto correttamente. Ciò potrebbe causare l'errore che si stava ottenendo con il comando originale. dd potrebbe non essere a conoscenza della situazione e potrebbe semplicemente bloccarsi. Se ciò accade, vedrai il file di output crescere costantemente di dimensioni, quindi fermarsi improvvisamente. dd sembrerà che sia ancora in esecuzione, ma nessun dato verrà aggiunto, o verrà aggiunto molto lentamente.


Se hai intenzione di downvotare, apprezzerei molto i suggerimenti.
Zenexer

2
Se è necessario indovinare o aspettarsi che l'OP chiarisca la propria domanda, è preferibile utilizzare prima i commenti sotto le domande per chiedere chiarimenti.
nohillside

@nohillside Generalmente lo faccio, ma sono abbastanza sicuro di capire cosa sta succedendo qui.
Zenexer

/dev/disk# potrebbe benissimo essere un lettore CD, e il CD nell'unità potrebbe contenere solo 300 GB di dati scritti su di esso.
nohillside

1
Mi hai capito :-) Potrebbe comunque essere un errore di battitura. Vediamo se tornano per chiarire
nohillside
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.