Que comando para forçar uma unidade a subir?

6

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.

sdparm

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

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?

    
por AttributedTensorField 27.05.2014 / 03:35

3 respostas

5

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.

    
por 27.05.2014 / 03:43
2

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 .

    
por 25.07.2014 / 19:12
0

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.

    
por 27.05.2014 / 08:48