Como limpar o cache '/ dev / sdx'?

0

Estou enfrentando um problema no meu sistema Ubuntu, como é para testes, geralmente eu emito o comando:

echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi

Estou usando apenas a ata1 port.

Quando termino os testes, acabo de emitir:

echo "scsi remove-single-device 0 0 0 0" > /proc/scsi/scsi

Mas, quando comecei a usar os comandos ata, esse processo não funciona mais, pois é anexado ao sistema.

Por exemplo,

Antes:

Esses comandos sempre retornaram o /dev/sdb montado e o outro comando simplesmente desmontou o disco, não o anexando ao sistema.

Agora:

Esses comandos que mencionei parecem funcionar, mas continuam a preencher o cache com a próxima letra de cada unidade que testo, digamos:

Primeiro teste: /dev/sdb

Segundo teste: /dev/sdc

e assim por diante até que eu fique sem letras porque o sistema não pode emitir além do dev/sdz

Alguém pode me dizer como liberar o cache ou como solucionar esse problema?

Eu realmente apreciaria qualquer ajuda.

    
por xedge 08.12.2017 / 15:48

1 resposta

1

Encontrei o problema com o "cache" real.

Eu tinha um pedaço de código que deixava um descritor de arquivo aberto em cada teste de unidade até que o programa preenchesse todos os espaços restantes para a alocação de fd. O erro estava na chamada python open() quando estava abrindo com o argumento os.O_RDWR em vez de os.O_RDONLY.

os.O_RDWR deixava todos os descritores de arquivos abertos após a emissão de um comando ATA. Depois de alterá-lo para os.O_RDONLY , o buffer de memória era legível e o descritor de arquivo foi fechado corretamente.

Espero que isso ajude alguém em um aperto.

    
por xedge 12.12.2017 / 21:37