Quanto tempo leva para converter um cdr para um iso? [fechadas]


0

Eu executei o comando

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

por volta das 6h da manhã. Agora são quase 14h e o comando ainda está em execução. A imagem de entrada do cdr é de cerca de 300 GB.

Tenho um Mac Mini Server de final de 2012, 2,6 GHz i7, 16 GB 1600 MHz DDR3, Intel HD Graphics 4000 1536 MB. E estou atualizando o Mojave.

Isso parece realmente muito lento para mim.

Eu tentei usar pela primeira vez, hdutilmas ele continuou lançando um erro.


Você está lendo de um disco interno ou externo, HDD ou SSD? O mesmo para escrever.
nohillside

Oh, bom ponto, ambas as imagens estão em um HDD externo e essa unidade é conectada em série com firewire8. Isso deve fazer a diferença, lol.
27418 Kerlix

O que você quer dizer com "cdr"? Definitivamente, não é um CD-R se tiver 300 GB, e é a única coisa em que consigo pensar. Edit: Espere, acho que entendi.
Zenexer 6/01

Se essa pergunta ainda for relevante para você: verifique os comentários e as respostas existentes e edite a pergunta para adicionar os detalhes necessários. No momento, podemos apenas adivinhar quais são suas intenções e que problema você está enfrentando.
nohillside

Respostas:


1

Geralmente, não leva muito tempo para copiar um CD-R para um ISO. Dependendo de como é feito, um CD-R em condições decentes deve levar de 15 a 45 minutos, sendo 20 a 30 minutos o que eu normalmente esperaria. Pode levar muito mais tempo se o disco estiver arranhado ou se o material estiver se deteriorando, o que pode ocorrer com o tempo. Isso ocorre porque sua unidade e / ou computador precisam executar a correção de erros. Pode levar uma hora ou duas, mas não levará um dia inteiro.

Verifique duas vezes se o disco do qual você está copiando é realmente a unidade de CD-R. Verifique se o arquivo de saída é grande: se for maior do que o esperado, você pode estar copiando da unidade errada.

É possível que o disco esteja muito danificado para ser lido corretamente. Isso pode causar o erro que você estava recebendo com seu comando original. O dd pode não estar ciente da situação e pode simplesmente travar. Se isso acontecer, você verá o arquivo de saída aumentar constantemente de tamanho e parar subitamente. O dd parecerá estar em execução, mas nenhum dado será adicionado ou será adicionado muito lentamente.


Se você vai votar em baixo, eu aprecio muito as sugestões.
Zenexer 6/01

2
Se você precisar adivinhar, ou esperar que o OP esclareça sua pergunta, é melhor usar os comentários abaixo das perguntas primeiro para pedir esclarecimentos.
nohillside

@nohillside Geralmente, sim, mas tenho quase certeza de que entendo o que está acontecendo aqui.
Zenexer 6/01

/dev/disk#poderia muito bem ser uma unidade de CD, e o CD na unidade pode conter apenas 300 GB de dados gravados nela.
nohillside

11
Você me entendeu :-) Ainda pode ser um erro de digitação. Vamos ver se eles voltam para esclarecer
nohillside

1

A adição de um buffer grande acelerará significativamente as coisas . O tamanho padrão é pequeno; como 512 bytes. Você aumenta o tamanho usando a opção bs. Eu só estou usando sudo porque você fez.

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

Este comando de aparência assustadora solicitará aos comandos dd que relatem seu status. O -s diz para sinalizar.

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

Eu testei com vários tamanhos de buffer, quanto maior o buffer, mais rápida será a cópia. Não deseja obter um buffer tão grande, pois ele precisa ser paginado.

Se eu entendi errado a sintaxe acima, esses são os comandos reais que funcionaram para mim. Eu suponho que você saiba que precisa desmontar a partição / unidade antes de usar o dd. Para alguns comandos dd, eu precisava usar o 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

Edit: Jan 18,2019 Fiz temporizações usando um ou dois comandos dd. Foi uma jogada de que forma era mais rápida. O tempo no meu teste variava tipicamente em 0,3 segundo entre os comandos. No entanto, em um caso, os dois comandos dd foram mais lentos em mais de um segundo. A diferença parecia ser qual comando foi executado primeiro. O segundo teste foi sempre mais rápido. Suponho que o comando one dd crie um segundo processo para gerar os dados e se comunique com o segundo processo por meio de um pipe. É o mesmo que usar dois comandos 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

... as linhas no início foram cortadas. ...

Aqui está o script bash que eu usei.

#!/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 para a boa resposta.
Allan

5
Embora a @Allan possa considerar essa uma boa resposta, não o faço. Tecnicamente, o bs operando block size não é "tamanho do buffer" e, ao usar um aumento, block sizepode diminuir o período geral de tempo, no entanto, o comando que você está sugerindo sudo dd if=/dev/disk bs=4096m | sudo dd of=/Volumes/Path/To.iso bs=4096mestá malformado! Não há benefício em canalizar dd para si mesmo, como você fez neste comando!
user3439894

Acredito que resolveu a questão original dos pôsteres. Eu sou cauteloso aqui. Fui com coisas que testei. Eu sei que bs é tamanho de bloco, mas achei que a terminologia seria confusa.
historystamp

Eu pensei que era SIGUSR1 que causou ddum sinal.
wizzwizz4
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.