Страница 1 из 2
Нужна помощь в без дисковой загрузке
Добавлено: 26 ноя 2013, 10:11
WShade
Всем привет!
Появилась необходимость перевести парк машин в офисе на без дисковую загрузку. Погуглив понял что самый, на мой взгляд, нормальный вариант это использовать iscsi. Немного разобравшись с технологией и получив представление как это можно реализовать, приступил к работе.
Что сейчас сделано:
Собрал сервак на Debian, в качестве хранилища использую raid 10. На сервак поставил isc-dhcp-server, tftpd-hpa-server и iscsitarget.
В общем идея такая:
На серваке массива raid делю на куски, ну скажем по 50 Гб. С помощью iscsitarget привязываю каждый кусок к iscsi интерфейсу. Через tftp сервер отдаю клиентам ipxe.pxe файл, который выступает в роли загрузчика. При загрузке клиентской машины монтирую iscsi диск. Этот смонтированный диск в системе будет использоваться вместо физического HDD.
Сейчас это работает так:
1. Клиентская машина грузиться через PXE;
2. DHCP дает ей IP адрес и IP tftp сервера;
3. Загружает файл ipxe.pxe через tftp;
4. Монтируется iscsi диск;
5. Ставлю установку set keep-san 1, чтобы при неудачной загрузке диск оставался в системе(по дефолту, при неудачной загрузке диск автоматически отмонтируется);
Вот собственно и все. Так все должно работать, НО. Всегда есть какое-то НО Very Happy
В общем клиент нормально получает данные от DHCP, файл ipxe.pxe успешно загружается. Далее монтируется iscsi диск. Пытается загрузиться с него, но так как там не системы загрузка не получается. Диск остается смонтированным. И вот тут у меня появилась проблема. Вместо того чтобы загрузиться со следующего устройства, как установлено в биосе, вылетает сообщение "PRESS A KEY TO REBOOT".
Если кто-то может объяснить в чем проблема, помогите пожалуйста.
Делал все по официальному мануалу: http://etherboot.org/wiki/pxechaining
Далее привожу конфиги:
Конфиг ietd.conf:
[spoiler]Код: Выделить всё
Target iqn.2013-11.loc.domain.storage:iscsiboot
Lun 0 Type=blockio,Path=/dev/sda5
[/spoiler]
Конфиг dhcp:
[spoiler]Код: Выделить всё
ddns-update-style none;
option domain-name "netboot.uilim.ru";
option domain-name-servers 91.219.136.4, 91.219.137.4;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
#iPXE config options
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.priority code 1 = signed integer 8;
option ipxe.keep-san code 8 = unsigned integer 8;
option ipxe.skip-san-boot code 9 = unsigned integer 8;
option ipxe.syslogs code 85 = string;
option ipxe.cert code 91 = string;
option ipxe.privkey code 92 = string;
option ipxe.crosscert code 93 = string;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option ipxe.bus-id code 177 = string;
option ipxe.bios-drive code 189 = unsigned integer 8;
option ipxe.username code 190 = string;
option ipxe.password code 191 = string;
option ipxe.reverse-username code 192 = string;
option ipxe.reverse-password code 193 = string;
option ipxe.version code 235 = string;
option iscsi-initiator-iqn code 203 = string;
# Feature indicators
option ipxe.pxeext code 16 = unsigned integer 8;
option ipxe.iscsi code 17 = unsigned integer 8;
option ipxe.aoe code 18 = unsigned integer 8;
option ipxe.http code 19 = unsigned integer 8;
option ipxe.https code 20 = unsigned integer 8;
option ipxe.tftp code 21 = unsigned integer 8;
option ipxe.ftp code 22 = unsigned integer 8;
option ipxe.dns code 23 = unsigned integer 8;
option ipxe.bzimage code 24 = unsigned integer 8;
option ipxe.multiboot code 25 = unsigned integer 8;
option ipxe.slam code 26 = unsigned integer 8;
option ipxe.srp code 27 = unsigned integer 8;
option ipxe.nbi code 32 = unsigned integer 8;
option ipxe.pxe code 33 = unsigned integer 8;
option ipxe.elf code 34 = unsigned integer 8;
option ipxe.comboot code 35 = unsigned integer 8;
option ipxe.efi code 36 = unsigned integer 8;
option ipxe.fcoe code 37 = unsigned integer 8;
option ipxe.vlan code 38 = unsigned integer 8;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.sdi code 40 = unsigned integer 8;
option ipxe.nfs code 41 = unsigned integer 8;
#option no proxy
option ipxe.no-pxedhcp 1;
#option space ipxe;
#option ipxe-encap-opts code 175 = encapsulate ipxe;
allow booting;
allow bootp;
subnet 10.222.0.0 netmask 255.255.0.0
{
range 10.222.0.235 10.222.0.245;
option broadcast-address 10.222.0.255;
option routers 10.222.0.1;
next-server 10.222.0.220;
}
host host1
{
hardware ethernet 1c:16:e6:6b:18:b3;
if exists user-class and option user-class = "iPXE" {
filename "";
option root-path "iscsi:10.222.0.220::::iqn.2013-11.loc.domain.storage:iscsiboot";
option ipxe.keep-san 1;
} else {
filename "ipxe.pxe";
}
}
[/spoiler]
Конфиг tftpd-hpa:
[spoiler]Код: Выделить всё
TFTP_USERNAME="nobody"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="10.222.0.220:69"
TFTP_OPTIONS="-m /etc/tftpd.remap --secure"
[/spoiler]
Порядк загрузки в BIOS:
1. LAN
2. HardDisk
3. Disable
В роли HardDisk использую флешку с установщиком Windows 7.
Не уверен что объяснил все понятно. В любом случае, всем кто попытается помочь, огромное спасибо.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 01:14
Raven
Ну, теоретически все правильно - PXE загрузился, поднял загрузчик, а то что не нашел загрузочной записи на диске - это не его траблы. И в биос он уже не вернется, дабы продолжить загрузку с другого устройства, как не продолжается поиск на других устройствах при NTLDR is missing.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 04:56
vovalu
Для начала надо поставить на созданный iscsi диск "Венду", он у же абсолютно пустой поэтому биос "по-чесному" думает что свое основное дело сделал и на другое загрузочное устройство не переходит, как это сделать немного описанно здесь:
http://social.technet.microsoft.com/for ... s-7-iscsi- , т.е надо выставить в Bios загрузку с флешки, на которой установочная "Венда" и дрова на сетевуху, а потом добавлять в качестве места назначения устанавливаемой системе iscsi диск, и после перезагрузки снова возвращать в Bios на загрузку по сети.
А так хотелось бы узнать что у вас получилось в конце.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 06:20
WShade
vovalu
vovalu писал(а):надо выставить в Bios загрузку с флешки, на которой установочная "Венда" и дрова на сетевуху, а потом добавлять в качестве места назначения устанавливаемой системе iscsi диск
Не совсем понимаю как это можно сделать. Просто сам iscsi диск монтируется непосредственно при загрузки через gPXE, т.е. если я сразу начну грузить машину с флешки, то куда я буду ставить винду? ведь диск то у меня не будет смонтирован.
Если и что-то недопонимаю, разъясните пожалуйста и ткните носом в ошибку.
А что касательно той статьи что вы привели, то я на ней уже был. Я вообще навреное уже на всех статьях был посвященных этой теме
Все делал как-раз вот по этому мануалу
http://etherboot.org/wiki/sanboot/win2k8_iscsi_install.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 09:14
WShade
В качестве теста попробовал при запуске iPXE загрузчика сразу нажать Ctrl+B, чтобы войти в командную строку. И ввел команду exit для выхода. Т.е. диск не монтировался. И сразу получаю "PRESS A KEY TO REBOOT". Проблема стало быть в самом загрузчике, как я понимаю.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 11:06
WShade
Нашел статью по теме:
http://umvirt.ru/sanboot там в конце статьи, в разделе "Осуществление загрузки" говориться:
1. Настроить на сервере загрузку сначала с пустого образа а потом с образа установочного диска либо через сценарий либо через меню.
Что-то мне подсказывает, что именно в этом у меня и проблема. Как сделать такую настройку, мне пока не понятно.
Дальше по пунктам идет:
2. Загрузить бездисковую станцию с пустого раздела. Загрузки как таковой не произойдет, но в памяти сохранится адрес iSCSI-цели.
3. Загрузка с образа установочного диска позволит осуществить установку в iSCSI-цель.
Пункт 2 это как-раз и есть опция: option ipxe.keep-san 1; которая оставляет диск в системе, даже если загрузка с него не получилась.
Пункт 3 это, в моем случае, загрузка с флешки на которой дистрибутив Win7.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 12:48
Raven
WShade писал(а):vovalu
Просто сам iscsi диск монтируется непосредственно при загрузки через gPXE, т.е. если я сразу начну грузить машину с флешки, то куда я буду ставить винду?
vovalu пытался донести, что в инсталляторе windows имеется возможность установки на сетевые носители. Т.е нужно загрузиться с флешки, удостовериться что сеть работает, указать инсталлятору в качестве целевого диска LUN и ставить, а после ребута загрузить уже с PXE)
Re: Нужна помощь в без дисковой загрузке
Добавлено: 27 ноя 2013, 12:52
Infernal Flame
WShade
а если рассмотреть вариант предварительного монтирования образа системы из той же iso-хи, потом маунт iscsi?
особо в теме бездискового бута не разбирался, но думаю какие-то директивы для pxe должны быть...
Re: Нужна помощь в без дисковой загрузке
Добавлено: 28 ноя 2013, 06:05
WShade
Raven
пытался донести, что в инсталляторе windows имеется возможность установки на сетевые носители. Т.е нужно загрузиться с флешки, удостовериться что сеть работает, указать инсталлятору в качестве целевого диска LUN и ставить, а после ребута загрузить уже с PXE
Ну смысл то я понял, знать бы как это сделать
Попробую разобраться
Infernal Flame
а если рассмотреть вариант предварительного монтирования образа системы из той же iso-хи, потом маунт iscsi?
особо в теме бездискового бута не разбирался, но думаю какие-то директивы для pxe должны быть...
Именно для pxe конечно врят-ли, а вот при установке Win7 возможно да. Тем более что сами микромягкие заявляли что такая возможность есть, видимо надо документацию почитать внимательно.
Re: Нужна помощь в без дисковой загрузке
Добавлено: 28 ноя 2013, 09:34
WShade
В общем есть такая штука как iscsicli, через которую можно подключать iscsi таргеты через командную строку. Как с ней работать я вроде разобрался, но вот как подключить iscsi диск при установке Windows я так и не понял. Эта утилита входит в Windows 7, но при установке командная строка ее не знает, что вполне логично.
Пробовал скопировать эту утилиту, со всеми ее библиотеками на флешку и напрямую запускать из командной строки при установке винды. Успеха эти манипуляции не принесли. В ответ на мои команды, эта утилита возвращает какие-то странные знаки
Я по началу подумал что проблема, к примеру, с кодировкой. Но на команду ListTargets (выводит список iscsi таргетов) выводятся каждый раз разные значения. Такое чувство, что они вообще рандомно генерируются. Ответы выводятся по 4 символа, причем логики в них вообще никакой. Один раз мне даже выдалось 4 символа, один из них был символ ноты. возможно это был намек на использование бубна? xD