De acordo com a documentação do rasbery pi , você pode carregar seu sistema operacional em um cartão flash com / dev / disk ou / dev / rdisk.
rdisk significa disco bruto.
/ dev / disk é um dispositivo em nível de bloco, por que o rdisk seria 20 vezes mais rápido?
Usando o Mac OSX
Nota: No OS X, cada disco pode ter duas referências de caminho em / dev: / dev / disk # é um dispositivo em buffer, o que significa que qualquer dado enviado é submetido a um processamento extra. / dev / rdisk # é um caminho simples, muito mais rápido e perfeitamente adequado ao usar o programa dd. Em um cartão SD de classe 4, a diferença era cerca de 20 vezes mais rápida usando o caminho do rdisk.
sd-card
dd
disk-utility
dev
spuder
fonte
fonte
Respostas:
De
man hdiutil
:Em termos leigos,
/dev/rdisk
vai quase diretamente para o disco e/dev/disk
passa por uma rota mais longa e mais carafonte
A resposta aceita está correta, mas não entra em muitos detalhes.
Uma das principais diferenças entre
/dev/disk
e/dev/rdisk
, quando você as acessa do espaço do usuário, é o/dev/disk
buffer. O caminho de leitura / gravação para/dev/disk
divide os blocos de E / S em pedaços de 4KB, que são lidos no cache do buffer e, em seguida, copiados no buffer do espaço do usuário (e, em seguida, emitidos na próxima leitura de 4KB ...). Isso é bom porque você pode fazer leituras e gravações desalinhadas, e simplesmente funciona. Por outro lado,/dev/rdisk
basicamente apenas passa a leitura ou gravação diretamente para o dispositivo, o que significa que o início e o final da E / S precisam estar alinhados nos limites do setor.Se você fizer uma leitura ou gravação maior que um setor
/dev/rdisk
, essa solicitação será passada diretamente. As camadas inferiores podem dividi-lo (por exemplo, o USB divide-o em partes de 128 KB devido ao tamanho máximo de carga útil no protocolo USB), mas geralmente você pode obter E / Ss maiores e mais eficientes. Ao transmitir, como viadd
, 128 KB a 1 MB são tamanhos muito bons para obter desempenho quase ideal no hardware não RAID atual.O armazenamento em cache pelos
/dev/disk
caminhos de leitura e gravação é muito simples e quase com morte cerebral. Ele armazena em cache mesmo que não seja estritamente necessário; como se o dispositivo pudesse mapear a memória e transferir diretamente para o buffer do seu aplicativo. Ele realiza pequenas E / Ss (4KB), o que gera muitas sobrecargas por E / S. Não faz nenhuma leitura à frente ou escreve para trás.fonte
Parece
/dev/disk
e/dev/rdisk
funciona diferente para HDDs e SSDs. Quero verificar se há cartão MicroSD. Acabei de gravar uma imagem de disco de 2 GB no Sandisk Ultra MicroSD 64GB ( https://www.amazon.com/gp/product/B073JYVKNX ).Testes repetidos várias vezes, mas os resultados foram estáveis: 17MB / s para
/dev/disk
vs 20MB / s para/dev/rdisk
. Alterarbs=1m
para nãobs=16m
dá absolutamente nenhuma diferença na velocidade de gravação.Escrevendo para
/dev/disk2
Escrevendo para
/dev/rdisk2
Então eu decidi testar a velocidade de leitura: 26MB / s para
/dev/disk
vs 87MB / s para/dev/rdisk
. Alterarbs=1m
para nãobs=16m
dá absolutamente nenhuma diferença na velocidade de leitura.Lendo de
/dev/disk2
Lendo de
/dev/rdisk2
fonte
Eu sei que esse é um tópico antigo, mas outras pessoas podem estar interessadas nas implicações de velocidade do que eu tentei. Desejo fazer backup do meu SSD interno no meu MacBook Pro 13 "Retina (com um SSD Silicon Power 1 TB) em uma unidade de disco rígido externa USB 3.0 de 2,5", desejando capturar as partições macOS e BOOTCAMP. Minha linha de comando inicial era:
Os resultados foram uma taxa de cópia de ~ 31,3 MB / segundo. Isso foi muito longo para me deixar esperando. Portanto, na segunda tentativa, a linha de comando foi:
Usando em
/dev/rdisk
vez de/dev/disk
acelerar significativamente as coisas, para cerca de 98,4 MB / segundo! No entanto, fica ainda melhor. Então, para a terceira tentativa, usei esta linha de comando:A opção esparsa diz ao DD para não se preocupar em escrever para os blocos de saída que são todos os 0s na entrada. O legal é que isso fica muito mais rápido do que você imagina, mesmo no meio de áreas "cheias" do disco. Em qualquer unidade que não esteja cheia, você terá grandes quantidades de 0s, acelerando ainda mais o DD. Até agora, pelo menos, o DD está rodando na velocidade de transferência teórica do meu disco rígido: ~ 116,4 MB / segundo, e ainda não atingiu essas grandes áreas em branco.
Experimente essas opções - elas funcionam! Observe: Altere com cuidado
if=
eof=
aponte corretamente para as unidades corretas listadas por (para Macs):fonte
conv=sparse
é ótimo quando você está copiando arquivos. Eu ficaria preocupado que isso possa causar corrupção ao copiar um disco inteiro, uma partição ou um sistema de arquivos , a menos que você saiba com 100% de certeza que o disco de destino contém apenas zeros.Para constar, pelo menos no macOS High Sierra, / dev / disk parece ser muito mais rápido que / dev / rdisk. Executando dd ou ddrescue, minha comparação de taxa de transferência de cópia de um HD magnético para um SSD foi de 3,7 MBps usando / dev / rdisk e 45 MBps usando / dev / disk. Portanto, nas versões posteriores do macOS, talvez seja melhor usar / dev / disk em vez de / dev / rdisk para obter o melhor desempenho.
fonte
Acho que antes de discutir qual nó do caminho é mais rápido ou mergulhar em testes seriais. Devemos considerar outro fator que afetará drasticamente a velocidade final de leitura / gravação.
como especificação do cartão Micro SD, classe 4/10 / HC I ... chip e interface de leitor de cartão sd, usb 1.1 / 2.0 / 3.0 / 3.1 os memória total / memória livre, carga do sistema operacional, tipo de disco rígido, disco rígido / disco rígido, disco rígido velocidade de rotação e tamanho do cache, tamanho do SSD / cache / espaço livre / interface do disco rígido do sistema operacional, ata / sata / esata,
se algum fator se tornar um gargalo, teremos uma conclusão falsa.
Aqui está o meu resultado: osx 10.12.6, ssd,
leia o microSD 16G por um cartão USB 2.0, leia e grave em HDD externo de 3,5 polegadas por usb 3.0,
escreva microSD 32G através da leitura interna do cartão e a fonte de dados é um HDD externo de 3,5 polegadas por usb 3.0,
você pode ver, escrever velocidade> velocidade de leitura !!
fonte