Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Обсуждение статьи "Установка Windows XP по сети. RIS, но не Microsoft"

Модераторы: editor, Devils

Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение Rico-X » 05 май 2010, 18:19

Доброго времени суток всем участникам форума. Недавно поднял у себя в компании сервер бэкапов систем (DRBL), а также сетевых инсталяций виндов(тут возникал вопрос как на линукс). Сам проковырялся несколько дней методом проб и ошибок, может кому будет полезно. За основу взят Debian, но можно использовать любой дистр. Опишу в 2х частях, собственно сервер бэкапов и как к нему прикрутить сетевую установку. Итак поехали:
Часть первая Сервер бэкапов
1) Добавляем реп с DRBL
Код: Выделить всё
nano /etc/apt/sources.list

deb http://drbl.sourceforge.net/drbl-core drbl stable
2) Установка, я работаю под рутом:
Код: Выделить всё
apt-get update
apt-get install tftp tftpd drbl
sudo /opt/drbl/sbin/drblsrv -i

Отвечаем на вопросы инсталлятора по желанию. Мои ответы:
1). Дать ли возможность устанавливать линукс с дистрибутива по PXE = Да
2). = Нет
3). Архитектура ядра = 1 (i586) т. к. много процов разных поколений, но ничего младше (i386) нету.
4). Обновить ли систему = ДА (основная установка)
Код: Выделить всё
sudo /opt/drbl/sbin/drblpush -i

Нас спрашивают имена доменов. Ставим от балды.
my.testserver.local
Префикс тоже можно от балды, например
MyServer
Затем спрашивают, собрать ли MAC-адреса клиентов для ограничения DHCP и массовой раскатки образов.
Привязать ли IP к МАК - нет (мне не надо, зачем?)
Начиная с какого числа в последнем октете выдавать адреса? У меня после 100 все свободно, так и скажем - 100
Сколько клиентов может коннектится за раз - 5 (мне больше не надо) На следующем шаге подтверждаем "Да" Нам аж нарисуют красивую псевдографическую схему, кто и куда будет подключаться. Нажимаем Enter.
Хотим ли мы дать возможность бездисковой загрузки линукс = 2 (нет такой возможности)
Режим CloneZilla = 1
Где хранить образы дисков собранные с клиентов
у меня /var/images (ну или куда душа желает)
Нужен ли пароль при PXE-загрузке = Да (чтоб ктоме админа этим никто не пользовался)
Сделать ли PXE меню графическим = Да (просто нравится)
Включить ли NAT на DRBL-сервере = НЕТ
Готовы продолжить (при этом правила файрвола будут переписаны) = ДА
На этом все. Далее
Код: Выделить всё
/opt/drbl/sbin/dcs

Это настройка уже самой Клонзиллы
All select all clients - ok
clonezilla-start - ok
beginner mode - ok
select-in-client - ok (выбирать, что будет делать клонзилла в меню на клиенте)
y1 - default Clonezilla - ok
-p choose - Choose in client... - ok
Готово! Пробуем, выставив в БИОС клиента загрузку с PXE, загрузится в клонзиллу.
Часть первая окончена: далее как прикрутить к этому сетевую установку винды, если вдруг бэкапа на сервере нет:
Rico-X
 
Сообщения: 13
Зарегистрирован: 05 май 2010, 17:59

Сервер бэкапов+сетевая установка винды на Linux (HOWTO) 2

Сообщение Rico-X » 05 май 2010, 19:16

Часть вторая Сетевая установка винды
1)Сначала подготовим нужный дистр. для установки (я делал на виндовой машине, с помощью скрипта потому как лень все делать было ручками под консолью), можно воспользоваться скриптом с форума либо ручками + прикрутить все что надо (например предустановленые дрова и софт) при помощи nLite (http://www.nliteos.com/download.html).
2) ВАЖНО при помощи ТоталКомандера (либо другим удобным способом) все файлы опускаем в нижний регистр. Это надо для корректной работы TFTP сервера, ведь в Unix размер имеет значение :)
3) Дальше работаем с сервером. Ставим основной софт, часть уже стоит в системе с прошлого пункта, но на всякий случай полный список:
Код: Выделить всё
apt-get install tftpd-hpa dhcp3-server samba cabextract syslinux wget

Для отладки еще можно вкатать:
Код: Выделить всё
apt-get install tftp-hpa
apt-get install ethereal
apt-get install smbclient

4) Скачиваем с сервера binl сервер, распаковываем и кидаем к софту.
Код: Выделить всё
wget http://oss.netfarm.it/guides/ris-linux-0.4.tar.gz
tar xvfz ris-linux.tar.gz
cp –a ris-linux/* /usr/local/bin

5) DHCP у нас сконфигурировалось в прошлом пункте, по этому просто проверяем что работает и все.
6) Конфигурируем tftp
Код: Выделить всё
nano /etc/default/tftpd-hpa

приводим к виду:
Код: Выделить всё
RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot/nbi_img -m /etc/tftpd-hpa.rules -vvv"

Где OPTIONS="-l -s "Путь к корневой папке TFTP" -m "путь к файлу с описанием автозамен" -vvv"
Далее создаем сам файл автозамен
Код: Выделить всё
nano /etc/tftpd-hpa.rules

Наполняем его:
Код: Выделить всё
rg \\ /
rg Q q
rg W w
rg E e
rg R r
rg T t
rg Y y
rg U u
rg I i
rg O o
rg P p
rg A a
rg S s
rg D d
rg F f
rg G g
rg H h
rg J j
rg K k
rg L l
rg Z z
rg X x
rg C c
rg V v
rg B b
rg N n
rg M m

Это надо для того, чтоб когда инсталятор винды попросит у нас фаил с TFTP сервера непонятно в каком виде и регистре, сервер искал фаил на сервере в нижнем регистре(мы ведь не зря перевели во втором пункте все файлы в нижний регистр), ну и конечно разница в прямых и обратных слэшах между виндой и unix.
7) Копируем на сервер подготовленный дистрибьютив установочной винды, у меня он например находится в /tftpboot/nbi_img/winxpsp3
8) далее из дистрибьютива копируем ntldr, ntdetect.com, startrom.n12 (для русской еще и фаил шрифтов) в корневой каталог TFTP (/tftpboot/nbi_img), там же создаем и фаил ответов winnt.sif либо кидаем готовый.
9) Сам не знаю нахрена, но без этого не работает(уходит в ребут, в общем не стал парится и разбираться в тонких материях), создаем симлинк на startrom.n12
Код: Выделить всё
ln –sf startrom.n12 startrom.0

10)
Код: Выделить всё
 fixloader.py /tftpboot/ntldr

11) Настраиваем самбу, тут каждый дрочит как он хочет, главное чтоб был гостевой доступ к каталогу с виндой, мой конфиг ниже, правьте на здоровье.
Код: Выделить всё
[global]
oplocks = false
level2 oplocks = false
encrypt passwords = true
passdb backend = tdbsam guest
obey pam restrictions = yes
guest account = nobody
invalid users = root
socket options = TCP_NODELAY
null passwords = true
[netboot]
path = /tftpboot/nbi_img
browsable = true
read only = Yes
guest ok = Yes


Создаем нового юзверя и даем ему доступ к самбе без пароля:
Код: Выделить всё
adduser osduser
smbpasswd –a osduser


Проверяем чтоб к /tftpboot/nbi_img доступ на чтение был у всех.
12) Перезапускаем сервер и проверяем, что все службы работают.
13) Создаем базу дров сетевух для binl:
Код: Выделить всё
infparser.py /tftpboot/nbi_img/winxpsp3/drivers

14) Запускаем binl как демон
Код: Выделить всё
binlsrv.py -d

15) Добавляем установку по сети в меню DRBL:
Код: Выделить всё
nano /tftpboot/nbi_img/pxelinux.cfg/default

Там по образу и подобию создаем новый пункт (или курим ман, у меня там куча возможностей таких как делать бэкап, устанавливать линух, грузить liveCD, тестить память ставить винду и куча всего еще), где в качестве kernel указываем startrom.0

Теперь должно работать, писал все исключительно по памяти(придя домой и скорее для себя как напоминалку) может что и забыл, если будут вопросы - постараюсь ответить, надеюсь кому то помог.
Rico-X
 
Сообщения: 13
Зарегистрирован: 05 май 2010, 17:59

Re: Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение qw-0 » 05 май 2010, 23:25

А у меня вопрос. Вот вы пишите
2) ВАЖНО при помощи ТоталКомандера (либо другим удобным способом) все файлы опускаем в нижний регистр. Это надо для корректной работы TFTP сервера, ведь в Unix размер имеет значение

А потом
Далее создаем сам файл автозамен

Разве это не одно и тоже? В смысле 2 пункт лишний.
И еще вопрос. Из созданный бэкапа из под Windows можно извлечь файлы?
qw-0
 
Сообщения: 164
Зарегистрирован: 13 апр 2007, 01:20

Re: Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение Rico-X » 06 май 2010, 18:41

Нужны оба пункта. Это связано с тем, что все файлы непонятно в каком регистре, первой заменой мы приводим все файлы к единому виду (нижний регистр, ну можно и верхний главное чтобы у всех одинаковый). А вот второе сопоставление нужно для того, когда лоадер попросит с сервера фаил \winxp\I386\KaKajaToHren.sy_ сервер не искал у себя в корневике ТФТП /winxp/I386/KaKajaToHren.sy_ которого он понятно там не найдет, а подставил лоадеру нужный фаил, который на сервере имеет вид /winxp/i386/kakajatohren.sy_ Надеюсь не сильно муторно объяснил. Наглядно работу Tftp хороше видно в syslog, рекомендую при любых непонятках смотреть туда.
Rico-X
 
Сообщения: 13
Зарегистрирован: 05 май 2010, 17:59

Re: Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение qw-0 » 07 май 2010, 19:59

Спасибо Rico-X. А как насчет второй части вопроса?
qw-0
 
Сообщения: 164
Зарегистрирован: 13 апр 2007, 01:20

Re: Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение Rico-X » 09 май 2010, 10:46

Для создания бэкапов разделов используется Clonezilla, которая помещает образ на сервер, также можно и восстановиться с него по PXE. Вот русское описание сдернутое с сайта.
Программа CloneZilla предназначена для создания и востановления копий как разделов жесткого диска, так и диска целиком. CloneZilla представляет собой альтернативу Acronis True Images, Norton Ghost и Paragon Exact Image. CloneZilla великолепно работает со всеми популярными файловыми системами (ext2, ext3, reiserfs, xfs, jfs, FAT16/32, NTFS). При создании образа раздела/диска копируются только занятые блоки данных, допускается возможность сжатия образа. Полученный образ можно записать как локально, так и на удаленный сервер. Программа на английском, если вы им мало-мальски владеете, то разобраться с ней не составит труда - сначала она запрашивает раздел для образов, потом выбираем действие и диск или раздел который бэкапим, или восстанавливаем.

На счет восстановления отдельного файла - клонзилла хранит образ системы в виде архива, сохраняя всю иерархию данных, тоесть можно открыть образ в архиваторе и выдернуть нужный фаил. Сам данной возможностью не пользовался ни разу (для восстановления файлов в более раннем состоянии есть субвершен), так что нужно пробовать. Я использую связку на фаилсервере предприятия, где стоит задача в минимальный срок восстановить работоспособность системы пользователя, если вдруг образа данной системы не оказалось, то ставится винда по pxe.
Rico-X
 
Сообщения: 13
Зарегистрирован: 05 май 2010, 17:59

Re: Сервер бэкапов+сетевая установка винды на Linux (HOWTO)

Сообщение airfox » 18 апр 2012, 12:21

Все делал по ману, но при загрузке у клиента после получения startrom, появляется черный экран с текстом по середине "INF абракадабра txtsetup.sif абракадабра", подозреваю что binl не раздал драйвера, да и после python ./infparser.py && ./binlsrv.py не видно что пошла раздача.... в чем может быть причина?
airfox
 
Сообщения: 1
Зарегистрирован: 18 апр 2012, 11:51


Вернуться в Установка Windows XP по сети. RIS, но не Microsoft

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron
@Mail.ru