Как почистить кеш / dev / sdx?

Я столкнулся с проблемой в моей системе Ubuntu, так как она предназначена для тестирования, я обычно выдаю команду:

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

Я просто использую порт ata1.

Когда я заканчиваю тесты, я просто выдаю:

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

Но, поскольку я начал использовать команды ata, этот процесс больше не работает, так как он подключен к системе.

Например,

До:

Эта команда всегда возвращала /dev/sdb подключенным, а другая команда просто отключала накопитель, не подключая это в систему.

Сейчас:

Кажется, что упомянутые мной команды работают, но продолжают заполнять кэш следующей буквой для каждого тестируемого диска, скажем:

Первый тест: /dev/sdb

Второй тест: /dev/sdc

и так далее, пока у меня не закончатся буквы, потому что система не может выдать после dev/sdz

Can кто-нибудь подскажет, как очистить кэш или как обойти эту проблему?

Я ДЕЙСТВИТЕЛЬНО буду признателен за любую помощь.

0
задан 8 December 2017 в 18:34

1 ответ

Я обнаружил проблему с настоящим «кэшем».

У меня был фрагмент кода, который позволял открывать файловый дескриптор в каждом тесте диска, пока программа не заполнила все оставшиеся места для выделения fd. Ошибка была в вызове python open(), поскольку он открывал его с аргументом os.O_RDWR, а не os.O_RDONLY.

os.O_RDWR разрешал открывать все файловые дескрипторы после выполнения команды ATA. После изменения его на os.O_RDONLY буфер памяти стал читаемым, а дескриптор файла был правильно закрыт.

Надеюсь, что это поможет любому в крайнем случае.

1
ответ дан 8 December 2017 в 18:34

Другие вопросы по тегам:

Похожие вопросы: