Я пытаюсь установить nfs-utils (и, следовательно, все его зависимости) в RHEL6 без сохранения состояния. .5 КВМ ВМ. Виртуальная машина настроена на доступ только для чтения через файл /etc/sysconfig/readonly-root
, магию Linux, которую я не реализовал, и параметр «Только для чтения» в графическом интерфейсе настроек виртуальной машины. Установка выполняется с помощью virt-customize -a image.img --run install_script.sh
. Сценарий использует here-document для создания файла .repo (который идет в хранилище CentOS для 6.5), затем я использую yum install -y nfs-utils
для фактической установки. Я выбрал этот подход, потому что он кажется проще, чище и менее подвержен ошибкам, чем загрузка виртуальной машины в режиме чтения/записи, установка, очистка и последующее завершение работы. Кроме того, я не могу понять, как заставить его загружаться в режиме чтения/записи.
Вывод virt-customize
показал, что пакеты были успешно установлены. Единственной ошибкой было удаление .repo из-за опечатки.
После этой установки я загрузил виртуальную машину и попытался войти в систему, как обычно. Мои попытки теперь отклоняются, потому что неверный логин
.
Я проверил с помощью virt-cat
, чтобы убедиться, что оболочка входа для пользователя настроена правильно, а зашифрованный пароль в /etc/shadow
выглядит так же, как и исходный. .
Мой первоначальный подход состоял в том, чтобы создать образ ISO, содержащий все зависимости и nfs-utils, и прикрепить его к виртуальной машине, а сценарий обработал бы установку. Та же проблема возникла тогда. Я сузил источник проблемы до установки одного из пакетов NFS: либо nfs-utils
, либо nfs-utils-lib
(один из двух, не помню) и пакет rpcbind
. Когда один из этих пакетов установлен, а затем загружается виртуальная машина, вход в систему прерывается. Я предполагаю, что это та же самая проблема, возникающая сейчас.
Образ, который я использую для виртуальной машины, — это cp
-ed из исходного образа виртуальной машины, так как это тест, чтобы выяснить, как правильно выполнить установку.
Да, я правильно ввожу пароль. Я пытался изменить пароль пользователя (с помощью инструментов libguestfs
), но я все еще не могу войти в систему, поэтому я не уверен, что изменение не удалось (код возврата для команд указывает на успех) или такая же проблема в действии.
Вопрос:
Основной проблемой здесь был SELinux. Существует несколько способов установки программного обеспечения на виртуальную машину, но все они сводятся к тому, загружается или не загружается виртуальная машина. Последнее — это то, что все испортило, и именно так я сделал установку в посте.
Насколько я могу судить, когда виртуальная машина выключена и программное обеспечение установлено, например. с помощью команды в вопросе SELinux понимает, что что-то изменилось, и не знает, что произошло, когда виртуальная машина загружается после установки, и блокирует все. Разрешение SELinux переименовывать решает проблему, но у меня сломалось много других вещей. По сути, нет никакого способа запустить сценарий установки, когда система находится в автономном режиме, потому что вы, вероятно, столкнетесь с этим. Примечание,эта проблема может быть связана только с виртуальными машинами RHEL6.5 и их версией SELinux (у нас версия -привязана к RHEL6.5 ).
Правильный способ установки такой виртуальной машины — загрузить ее в режиме чтения/записи и выполнить установку либо путем монтирования ISO-образа с требуемыми пакетами RPM, либо с помощью диспетчера пакетов. Во время загрузки SELinux будет знать об установке, и все будет в порядке.