Leia a partir do dispositivo de disco bruto em vez do dispositivo de bloco. Isso ignora o cache de buffer do kernel e garante que a unidade vá girar.
Analisei o manual para hdparm
, sdparm
. Eu sei que há argumentos para girar down a unidade, com -y
e -Y
. Eu também sei que existem argumentos para controlar os recursos de economia de energia, como -S
e -B
. No entanto, o que eu quero é ligar o motor e girar para cima a unidade.
Eu vejo a página de manual do sdparm tem os parâmetros load
e start
. Qualquer um desses pode ser usado? Parece mais algo apropriado para uma unidade de fita ou, no beast, uma unidade ótica?
dd if=/dev/hdX of=/dev/null count=512
parece ser a melhor resposta de acordo com Qual comando eu uso para aumentar uma unidade "ligar em espera"?
No entanto, quando isso já estiver no cache, a unidade não será ativada.
Parece estranho não haver comando para informar explicitamente ao dispositivo para iniciar o motor / rotação.
Qual é a melhor maneira de criar HDDs SATA no GNU / Linux?
Leia a partir do dispositivo de disco bruto em vez do dispositivo de bloco. Isso ignora o cache de buffer do kernel e garante que a unidade vá girar.
O sinal direct
de dd deve ignorar o cache (host) e forçar a E / S a ser enviada para a unidade:
dd if=/dev/sda bs=4096 count=1 of=/dev/null iflag=direct
^^^^^^^^^^^^
Teste na minha máquina, isso definitivamente faz a luz de atividade do disco piscar. Não pisca (pelo menos na segunda vez) sem o iflag
.
1) Primeiro, se você puder fazer isso facilmente, sugiro fazer o que Kyle Jones diz: leia diretamente do dispositivo bruto.
2)
Se você não puder fazer isso, leia a partir de uma posição selecionada aleatoriamente da unidade (por exemplo, dd if=/dev/diskdev of=/dev/null seek=$[173<<30] bs=1048576 count=1024
lerá em uma giga a partir do 173. giga do disco). Isso faz muito provavelmente, que os dados de leitura reais não estejam no cache de leitura real, portanto, a unidade precisa ser girada para preencher a operação de leitura.
Se você quiser ter certeza, pode ler várias vezes, selecionar aleatoriamente dados.
3) Como alternativa, você pode ler de uma posição fixa (por exemplo: desde o início do disco) com o mesmo comando dd, mas sempre pelo menos tantas quantas RAM você tiver. Isso garante que haverá alguma região de disco a ser lida, o que certamente não está no cache de leitura de disco real, portanto, o disco precisa ser girado para lê-los.
No seu lugar (se 1 não estiver disponível) eu fiz (3) se precisar de muita precisão e (2) se eu joguei apenas no meu linux doméstico.