Назад | Перейти на главную страницу

VMware Workstation в Linux: удаление файлов ядра в общую папку

Я использую VMware 6.0.2 на хосте RHEL 4.6. Виртуальные машины - это MontaVista CGE 5.0 (ядро 2.6.21). Я пытаюсь заставить приложения, работающие на виртуальных машинах, сбрасывать любые файлы ядра на том HGFS, то есть в «общую папку». Файлы ядра создаются в соответствии с путем и форматом, указанным в / proc / sys / kernel / core_pattern, но они всегда имеют нулевую длину. Если я изменю путь на локальный (на виртуальном диске в виртуальной машине), все будет хорошо.

Есть идеи, что мне нужно сделать, чтобы основные файлы были записаны в общую папку?

Спасибо за вашу помощь!

Я подтвердил проблему здесь. Я не знаю, почему Linux отказывается выгружать содержимое ядра в общий ресурс HGFS (здесь ядро ​​Arch Linux 2.6.32 с open-vm-tools 2010.01.19), но у меня есть решение.

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

#!/bin/sh

# Where do you want the core to go?
COREFILE=/mnt/hgfs/vmshare/core

tee $COREFILE >/dev/null

Конечно, вы можете реализовать некоторую логику для $COREFILE так что каждый последующий дамп ядра не просто перезаписывает последний.

Сохраните ваш скрипт как /usr/local/bin/core.sh, затем установите исполняемый бит файла и настройте core_pattern следующим образом:

# chmod +x /usr/local/bin/core.sh
# sysctl -w kernel.core_pattern='|/usr/local/bin/core.sh'

Linux будет передавать любые дампы ядра через ваш сценарий оболочки, что не вызовет проблем с записью в общий ресурс HGFS.

Если вам интересно, вы не можете просто поставить tee непосредственно в kernel.core_pattern, потому что в ядрах старше 2.6.24 вы не можете указывать аргументы для команды канала с этим sysctl. По той же причине, к сожалению, я не могу придумать для вас хороший способ включить спецификаторы шаблона core_pattern в имена файлов дампа ядра, используя этот метод, если вы привязаны к ядру 2.6.21.