понедельник, 17 июня 2013 г.

Windows/Linux удалённая смена загрузки по-умолчанию

Описанное решение в статье, у меня работает на множестве машин

Дано: компьютер с Linux и Windows. Загрузчик grub2
Условия: к машине есть только удалённый доступ, grub2 одинаковый, по-умолчанию загружается linux
Задача: загрузить требуемую ось.



Решение задачи сводится к правке конфигурации grub`а и отправке удаленных команд

grub


В /etc/default/grub есть параметр GRUB_DEFAULT, он указывает какой номер раздела загружать по-умолчанию (номера разделов можно посмотреть /boot/grub/grub.cfg). Также, этот параметр может принять значение saved, в этом случае, при следующей загрузке, grub загрузит раздел переданный с помощью команды grub-reboot.

Отмечу, что grub-reboot одноразовая команда, после следующей перезагрузки загрузится раздел #0. Для назначения saved по-умолчанию используйте grub-set-default.

Итак, нам необходимо поправить grub, узнать номер раздела Windows, применить конфигурацию grub:
Указываем в /etc/default/grub
GRUB_DEFAULT=saved
В файле /boot/grub/grub.cfg смотрим раздел Windows(у меня #2)
Обновляем конфиг grub
update-grub

Наша машина готова для интерактивной загрузки

из Linux в Windows


grub-reboot 2
shutdown -r now

размещаем скрипт /scripts/werewolf
#!/bin/bash
grub-reboot 2
shutdown -r now
и удаленно исполняем его средствами ansible:
#ansible-playbook gowin.yaml
файл gowin.yaml

---
- hosts: bewindows
  tasks:
   - name: go windows
     action: command /script/werewolf


из Windows в Linux


Здесь, всё просто. Надо всего лишь перегрузить "винду", а граб сам запустит линукс.
Сделать это можно так - авторизоваться на удалённой машине пользователем имеющим доступ на перезагрузку и запустить команду

net use \\machinename password /USER:user&&shutdown /m \\machinename

скрипт для множества windows машин, на моём примере
for /L %%i (101,1,171) DO 
(
net use \\machinename password /USER:user&&shutdown /m \\machinename
)

Комментариев нет:

Отправить комментарий