Как отключить кэш файловой системы на корневом устройстве?

У меня есть виртуальная машина ARM, работающая поверх KVM/QEMU, с файлом, смонтированным как корневая файловая система. У виртуальной машины нет сети, поэтому о монтировании корня NFS не может быть и речи. Я тестирую конкретный транспортный механизм для ввода-вывода, поэтому я как бы застрял с тем, что у меня есть.

Я хочу отправить файлы в гостевую систему, поэтому я хотел бы смонтировать файл на хосте, записать в него что-то, а затем размонтировать его, чтобы принудительно сбросить. Содержимое файловой системы тривиально, и у меня есть резервная копия, поэтому у меня нет проблем с повреждением. Точно так же производительность не является проблемой.

Проблема в том, что когда я делаю это монтирование-запись-размонтирование, гость никогда не видит файл. Я предполагаю, что это результат кеша файловой системы ядра, и когда я делаю ls, файла там нет. Я предполагаю, что метаданные, касающиеся файловой системы, кэшируются в памяти, и обновления файловой системы никогда не появляются.

Я предполагаю, что если я отключу кеширование файловой системы, то все операции чтения будут принудительно выполняться на диск, что приведет к поражению файловой системы и появлению моего файла. Какие-нибудь советы?


person Alex    schedule 12.04.2012    source источник


Ответы (1)


Я могу думать об этом:

sync
echo 3 > /proc/sys/vm/drop_caches

И это:

qemu -drive cache=none,file=file.img
person Z.T.    schedule 15.04.2012