3

У меня необычный вопрос, и я думаю, что это действительно сложно :-)

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

Например, у меня Windows XP на разделе 1 и Win7 на разделе 2. Теперь я хочу включить компьютер и дождаться, пока удаленная команда решит, какой раздел загрузить.

Я сначала попытался сделать это с Grub. Grub может загружаться и ждать команд на последовательной консоли. На этой последовательной консоли я могу отправлять команды со второго компьютера, чтобы решить, какой раздел загрузить. К сожалению, это работает только через традиционные COM-порты. Адаптеры USB to serial не работают :-(

Поэтому я подумал, что могу загрузить мини-Linux и открыть сокет TCP. После прибытия команды я бы хотел загрузить (как-то по цепочке) один из разделов Windows. Возможно ли что-то подобное?

Большое спасибо, Фабиан

6 ответов6

2

если у вас есть отдельный, всегда работающий linux в вашей сети, вы можете настроить свою машину для загрузки по сети с этой машины linux. Затем на этом компьютере с Linux вы можете использовать разные загрузочные образы с загрузкой grub для любой ОС в качестве опции по умолчанию.

2

Идея: добавить дополнительную ОС, которая называется mini Linux, как вы упомянули. Он открывает этот сокет TCP. Когда вы получите команду, измените файл конфигурации GRUB, чтобы установить правильную ОС по умолчанию, и инициируйте перезагрузку. Как только любая из этих ОС запускается, им необходимо повторно изменить конфигурационный скрипт GRUB, чтобы вернуться к мини-Linux.

1

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

Я настроил grub с этим конфигом:

# First we load the current settings
if [ -s $prefix/grubenv ]; then  
  load_env  
fi

set default="DEFAULT ENTRY"

# Load the saved default entry
if [ ${saved_entry} ]; then
  echo Found a saved entry: ${saved_entry}
  set default="${saved_entry}"
fi

# Reset saved_entry to our boot service
set saved_entry="DEFAULT ENTRY"
save_env saved_entry

echo Selected boot entry is: ${default}

Это аналогично ответу Daves, за исключением того, что grub уже сбрасывает загрузочную запись до значения по умолчанию. Поэтому последняя выбранная ОС даже не загружается.

Запись по умолчанию теперь загружает небольшую ОС с tcp-сервером. С tcp-сервером я могу получить команду загрузки, которая вызывает grub-editenv, чтобы выбрать другую загрузочную запись:

grub-editenv.exe D:\boot\grub\grubenv set saved_entry=NewEntry

Это также должно убедиться, что вы случайно не повредили конфигурацию grub.

1

Не делай ничего из этого. Вместо этого поместите Xen (HyperV и т.д.) На коробку и всегда загружайте его, а затем управляйте виртуальными машинами Windows и Linux по своему желанию.

Должно быть проще, чем пытаться удаленно переписать файлы конфигурации Grub, что потенциально может привести к тому, что вы не загрузитесь с устройства.

По моему опыту, виртуальные машины отлично подходят для тестирования в любом случае - если вы допустили ошибку, вы можете просто вернуться к более раннему состоянию.

0

Еще одна идея: сохранить два GRUB на вашем "контрольном компьютере". Управляемый ПК затем использует PXE для получения нужного GRUB. Используйте TFTP-сервер для этого. Сделайте небольшой скрипт, который переключает настройки GRUB в части TFTP.

0

ну .... вы можете получить перенаправитель KVM через сетевое устройство. Например. Карты AMI Mega RAC. Они позволяют вам управлять с экрана загрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .