загрузка клиента с локального диска без использования DHCP и TFTP. Что делаю неправильно? //

У же довольно давно пользую ваши сборки. Клиенты - коробочки на базе VIA EPIA CV860A и им подобные.

Основная конфигурация:

-CPU VIA EDEN 667, VIA C3 800,

-VIA PLE133 chipset (VT8601A + VT82C686B)

-SDRAM DIMM PC133 128-256Mb

-On board VT8601A graphic controller integrated Trident graphics

-CF Reader for IDE/ATA interface (32-1000Mb)

Всего около 80 таких клиентов. Сервера - ферма под Win2003STD + естественно DHCP,DNS,TFTP и все такое прочее. При загрузке образа по pxe никаких проблем не возникает, все работает отлично.

Сейчас возникла потребность, на случай аварии основных серверов, сделать загрузку клиентов с их локальных флешек (видятся как /dev/hdc), с фиксированными IP, и без использования DHCP и TFTP. Т.е система должна грузиться и конфигуриться только с локального диска клиента, без всяких обращений в процессе загрузки к внешним сервисам.

Вроде делаю все как описано в  readme-hdd.txt (сборка 20081126)

 т.е. флешку в FAT16, затем syslinux.exe -sfma _имя_диска_ , затем копирую туда initrd,vmlinuz, syslinux.cfg, thinstation.txt, затем в корне каталог thinstation.profile с файлом thinstation.conf.user следующего содержания

NET_USE_DHCP=Off
NET_USE_TFTP=Off
NET_FILE_ENABLED=Off
NET_IP_ADDRESS=192.168.9.219
NET_MASK=255.255.255.0
TIME_ZONE="Europe/Moscow"
#
#
AUTOSTART=Off
SESSION_1_TYPE=rdesktop
SESSION_1_SCREEN=1
SESSION_1_TITLE="Emergency Terminal Server"
SESSION_1_RDESKTOP_SERVER=192.168.9.168
SESSION_1_RDESKTOP_OPTIONS="-u EmergencyUser -x l"
#
#
RDESKTOP_FDD=Off
RDESKTOP_CDROM=Off
RDESKTOP_USB=On
RDESKTOP_SOUND=Off
RECONNECT_PROMPT=MENU
#
#
X_MONITOR_MODELINE='"1440x900"  106.47  1440 1520 1672 1904 900  901  904  932  -Hsync +VSync'
SCREEN_RESOLUTION="1440x900"
SCREEN_HORIZSYNC="30-65"
SCREEN_VERTREFRESH="60"

 

Загрузка проходит, но конфигурация из этого файла не подхватывается. Доходит до загрузки иксов, появляется курсор (Х) и все. Если вывалиться в консоль, то видно, что никакие настройки из этого файла не подхватились, IP все равно по DHCP получился ну и т.д. Я так понимаю, что все дело в том, что флешка автоматом монтируется как /mnt/disc/hdc/hdc (само устройство - /dev/hdc) а в thinstation.conf.buildtime в параметрах STORAGE_CONFIGх прописано все, что угодно, но только не мой путь. А STORAGE_PATH=y - что это за "у"?

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

 


Нумерация

Нумерация начинается с нуля, т.е. SESSION_0_TYPE and etc...

--

Nikolai V. Ivanyushin <nvi at itadvisor.ru>
IT Advisor Ltd.
http://www.itadvisor.ru
+7 910 743-28-38

Когда гружу по

Когда гружу по PXE такое прокатывает. Странно. 

поменял 1 на 0. Естественно результат тот же.

А эти параметры

NET_USE_DHCP=Off
NET_USE_TFTP=Off
NET_FILE_ENABLED=Off
NET_IP_ADDRESS=192.168.9.219
NET_MASK=255.255.255.0

ведь от номера сессии не зависят?

И как быть с точкой монтирования флешки

/mnt/disc/hdc/hdc (устройство - /dev/hdc)

и что делать с параметрами в thinstation.conf.buildtime

STORAGE_CONFIG.....

и STORAGE_PATH=y - что это за "у"?

 

с

с монтированием не связано... это токо пути к pkg... просто с консоли проверьте путь для профиля где лежит... может опечатались в названии папки или самого файла... они для pxe и локальной загрузки разные(имена всмысле)

причем тут

причем тут пути к pkg?

до этого же не доходит.

я же писал, что thinstation.conf.user не подхватывается

и дело ИМХО именно в точке монтирования

при сборке в параметр STORAGE_CONFIG и STORAGE_PATH прописывается, где искать конфиг при загрузке.

 

параметры

параметры которые вы написали можно вообще не указывать...

вот пример моего рабчего конфига

RECONNECT_PROMPT=On
RDESKTOP_USB=On

#настройка сети - отключаем DHCP и TFTP
NET_USE_DHCP=OFF
NET_USE_TFTP=OFF
#указываем IP-адрес тонкого клиента, маску, DNS  и прочие настройки сети
NET_IP_ADDRESS=192.168.1.19
NET_MASK=255.255.255.0
# шлюз
NET_GATEWAY=192.168.1.10
#DNS сервер 1
NET_DNS1=192.168.1.10
#DNS Сервер 2
#NET_DNS2
#Default DNS domain to search
#NET_DNS_SEARCH
#Закомментируйте ненужное и отредактируйте соответственно

#указываем дисплей - если не уверены в значениях, оставьте значения по умолчанию
SCREEN=0
AUTOSTART=Off
# настройки терминального соединения
SESSION_0_TITLE="Имя сессии"
SESSION_0_TYPE=rdesktop
SESSION_0_SCREEN=0
SESSION_0_RDESKTOP_SERVER=192.168.1.10
#   -L utf-8 - кодировка, чтобы USB-носители с русскими именами файлов монтировались корректно
# -a 24 - глубина цвета
# -u '' -имя пользователя по умолчанию, в одинарных кавычках, здесь - пустое
# -r - устройства, которые редиректятся - USB-флеш, звук - локально на ТК
# звук может проигрываться с опозданием при нагрузке в сети или нагрузке на терминальный сервер
SESSION_0_RDESKTOP_OPTIONS="-L utf-8"
#настройки дисплея и мыши
SCREEN_RESOLUTION="1024x768"
SCREEN_COLOR_DEPTH="16"
SCREEN_HORIZSYNC="31-63"
SCREEN_VERTREFRESH="56-75"
SCREEN_BLANK_TIME=10
SCREEN_STANDBY_TIME=20
SCREEN_SUSPEND_TIME=30
SCREEN_OFF_TIME=60

# при таком формате имени на терминальном сервере имя подключенного ТК(MAC-адрес) будет с префиксом ts_
# это помогает бытро ориентироваться в подключениях
NET_HOSTNAME=ts_*

Отлично. А где

Отлично. А где у Вас лежит файл thinstation.conf.user по отношению к файловой системе клиента (т.е. куда монтируется диск, где лежит этот файлик)

P.S.

"параметры которые вы написали можно вообще не указывать...
"

Эти параметры указываются при сборке клиента

как раз

как раз содержание этого файла я и показал

он лежит на usb-flash либо на ide-flash  \thinctation.profile\ thinstation.conf.user

т.е. в папке которая находится в корне загрузочной флехи

а вот пути для пакетов которые цепляются дополнительно уже привязаны к монтированому девайсу... для ide это hda, для usb помоему sda

имхо все так,

имхо все так, да немного не так.

Сперва, естественно грузится и распаковывается ядро, fs, и т.п. C корня загрузочной флешки или чего там еще. Потом уже в эту fs монтируется устройство с которого бутились и ищется файл \thinctation.profile\thinstation.conf.user А ищется он по путям, прописанным в STORAGE_CONFIG и STORAGE_PATH при сборке.

Вы посмотрите, что у Вас выдает mount после загрузки - thinstation.conf.user уж никак не в корне получившейся fs лежит.

на флешке у

на флешке у меня эти параметры стоят:

STORAGE_CONFIG1=/mnt/usbdevice
STORAGE_PATH=y

для миднайт командера стоит следущее:

PKG_PATH=/mnt/usbdevice/sda1
PKG_PREFIX=pkg
PKG_PACKAGES="mc"

больше ничего... и как ни странно все работает

 

ВОТ! т.е. Ваша

ВОТ!

т.е. Ваша флешка маунтится в  /mnt/usbdevice/sda1

и все в шоколаде. Так как этот путь присутствовал при сборке (STORAGE_CONFIG1=/mnt/usbdevice/sda1в thinstation.conf.buildtime)

А у меня флешка маунтится почему-то в /mnt/disc/hdc/hdc (а устройство /dev/hdc)

И поэтому config при загрузке не находится...

И, ИМХО, если при сборке ваш путь не был указан путь в  STORAGE_CONFIGх, то все, поезд прошел мимо.

 

 

качните syslunux

качните syslunux сборку... создайте загрузочную флешку по инструкции... закиньте в папку файл конфига и проверяйте... чегото не так сделали.... я путь уже потом с консоли прописал в конфиг... когда пакеты решил добавить

у вас ide-flash...

у вас ide-flash... поэтому и монтируется в disk... мои точно также... я хонфиг с usb-flash выложил

Блин! Извините

Блин!

Извините, но Вы, DeadMazay, конкретно не в теме. Флейм с Вами продолжать нет никакого желания.

Поэтому вопрос не к  DeadMazay, а к разработчику  (Nikolai V. Ivanyushin)

С простого usb-свистка (/mnt/usbdevice/sda1) у меня все грузится и работает. по pxe тоже. Не работает только загрузка (не находит конфиг) с CF, вставленной в ридер на мамке (мою конфигурацию железа смотри в первом посте)

CF видится в системе как /dev/hdс, а монтируется в /mnt/disc/hdc/hdc (именно так, два раза hdc)

естественно при загрузке thinstation.conf.user не подхватывается ( /mnt/disc/hdc/hdc нет в STORAGE_CONFIG)

можно как - нибудь это поправить в последующих релизах, например чтобы либо просто тупо искался конфигурационный файл во всех вложенных папках, глубже /mnt/disc....., либо чтобы флешка маунтилась по более вразумительному пути, либо в STORAGE_CONFIG добавить.

Вы  извините, но 99% - косяк где-то в стартовых скриптах. Сам я пока не допер, где.

Хотелось бы

Хотелось бы освежить эту ветку, т.к. вопрос остался открытым.

Загрузка с hdd не находит конфигурационных файлов.

Пробовал эту сборку thinstation-2.2-syslinux-20090329.zip

чтобы указать

чтобы указать другой путь монтирования - смотрите скрипт /etc/udev/scripts/ide.sh

чтобы изменить путь поиска конфига, надо добавить строку в thinstation.defualt вида STORAGE_PATH=/mnt/disc/hdc/hdc и положить конфиг thinstation.conf.user в папку /thinstation.profile на CF

либо, если хотите, можете переделать скрипт /etc/init.d/profile_setup именно в нем задается где искать конфиги....

подробнее можете посмотреть тут http://apps.sourceforge.net/mediawiki/thinstation/index.php?title=FAQ

----------------------------------------------------------- 

Терминальные Решения Санкт-Петербург

терминалы с IP-телефоном

http://tsol.spb.ru

распаковал initrd

распаковал initrd (unsquashfs нужен 1.5)

поправил в /etc/thinstation.default STORAGE_CONFIG8=/mnt/disc/hdc/hdc

запаковал.

Все заработало. Только bootsplash пропал. Как вернуть назад картинку?

Я написал

Я написал скрипт mkinird

--

#!/bin/bash

CURDIR=`pwd`
TOOLSDIR="bootsplash"
TFTPBOOT="/tftpboot"
#KERNEL_PARAMETERS="$KERNEL_PARAMETERS splash=silent vga=791"

splash_setup()
{
        cd $TOOLSDIR

       for filename in `ls *.jpg`
       do
               echo "+ Converting $filename to 16bit colour"
               /usr/bin/convert -depth 16 $filename $filename.tmp
               mv $filename.tmp $filename
       done

        echo -e "+ Adding splash boot logo\n"
        ./splash -s -f bootsplash.cfg >> $CURDIR/initrd

        cd $CURDIR

}

case $1 in
        addimg|a|A)
                cp -f initrd.noimg initrd
                splash_setup
        ;;
        unpack|u|U)
                [ -d initrd.fs ] && rm -rf initrd.fs
                unsquashfs -d initrd.fs  initrd
        ;;
        pack|p|P)
                cp -f initrd.devices initrd
                mksquashfs initrd.fs initrd -all-root
                cp -f initrd initrd.noimg
        ;;
        install|i|I)
                DT=`date +%Y%m%d_%H-%M-%S`
                mv -f $TFTPBOOT/initrd $TFTPBOOT/initrd.$DT
                cp initrd $TFTPBOOT
        ;;
        *)
                echo "$0 {Pack|Unpack|Addimg|Install}"
        ;;
esac

--

СодержимоеTOOLSDIR

~ls bootsplash/
bootsplash.cfg  bootsplash.jpg  silent.jpg  splash

~cat bootsplash/bootsplash.cfg
# This is the configuration file for the 1024x768 bootsplash picture.
#
# This file is necessary to specify the coordinates of the text box on
# the splash screen.
#
# Comments are welcome by stepan@suse.de

# config file version
version=3

# should the picture be displayed?
state=1

# fgcolor is the text forground color.
# bgcolor is the text background (i.e. transparent) color.
fgcolor=7
bgcolor=0

# (tx, ty) are the (x, y) coordinates of the text window in pixels.
# tw/th is the width/height of the text window in pixels.
tx=0
ty=0
tw=1024
th=768

# name of the picture file (full path recommended)
jpeg=bootsplash.jpg
silentjpeg=silent.jpg

progress_enable=1

# background
box silent noover 204 666 820 686 #515151
box silent inter  204 667 204 685 #b77200 #f2b700 #b77200 #f2b700
box silent        204 667 820 685 #b77200 #f2b700 #b77200 #f2b700

# black border
box silent         204 666 820 666 #b5b5b5
box silent         204 686 820 686 #b5b5b5
box silent         204 666 204 686 #b5b5b5
box silent         820 666 820 686 #b5b5b5

overpaintok=1

--

Картинки размером 1024х768 сделать в Gimp Сохранить как - дополнительно bp=24, 2x2,1x1,1x1 No progressive

 

./splash -s -f

./splash -s -f bootsplash.cfg >> $CURDIR/initrd

это понятно, только чего-то у меня нет этой команды  splash (CentOS)

какой пакет надо добавить?