Уже достаточно давно поглядываю на eBox-2300SX и примеряю его в качестве простенького домашнего сервера. Тем более, что читал на Хабре тему Идеальный NAS? Другая точка зрения, eBox-2300SX. Железка выглядит довольно интересной, но подходит ли она в качестве HTTP-сервера и Jabber? Думаю, что каждый это может решить самостоятельно. А я же просто опишу свой опыт установки на неё Linux.
Временно утянул с работы домой один eBox для экспериментов. У пациента есть следующие разъёмы: 3 USB, 1 Ethernet, 1 PS/2 для клавиатуры, 1 VGA, 1 CompactFlash и 1 питание. В зависимости от конфигурации могут присутствовать и другие интерфейсы. Мне досталась моделька с двумя COM-портами (которые лично мне вообще не нужны).
Первым делом я его вскрыл. Внутри, как уже можно было узнать из обзоров есть и cPCI, и E-IDE разъёмы. Но не стоит раскатывать губу, т.к. разъём стандартного E-IDE шлейфа не лезет в корпус по высоте. Но это меня не расстроило, т.к. IDE дисков у меня нет, зато есть SATA диск с переходником на USB.
Отдельно хочу отметить, что eBox потянул USB CD-ROM. Правда, пришлось занять для этого два разъёма из трёх доступных.
Обладая знаниями того, что eBox-2300SX не имеет математического сопроцессора, я подбирал дистрибутив с учётом этого параметра. Помимо этого хотелось выбрать уже знакомый дистрибутив или его клон — для меня это Slackware и Arch. Немного погуглив, я выбрал SMS. Во-первых, это Slackware для слабеньких машин. Во-вторых, это Slackware c небольшим количеством пакетов. Ну и в-третьих, это Slackware, с которым я немного знаком, начиная с 4.0 и до 13.0.
Скачал SMS 1.6.0 (это была последняя версия на тот момент) и записал на RW болванку. Загрузился с USB CD-ROM и понял, что установка не пойдёт — eBox просто зависал на этапе загрузки. И ещё не хватало одного USB разъёмов, т.к. у меня не было PS/2 клавиатуры.
Тут мне подумалось, что устанавливать Linux на сам eBox вовсе не обязательно, можно воспользоваться возможностями виртуализации. Если быть точнее, то VMWare. Создаём новую виртуальную машину со стандартными настройками и удаляем всё лишнее — звук, флопик и диск. В качестве диска добавляем подключенный к хост-машине USB винчестер. Установка в виртуальной машине проходит вполне легко и знакомо (для тех, кто знаком со Slackware, конечно). К сожалению, грузиться с USB диска как с USB устройства VMWare не умеет (я не нашёл таких опций в её BIOS). Так что переходим к полевым испытаниям на eBox.
Ничего удивительного нет в том, что eBox опять завис с ядром от SMS. По крайней мере я не удивился. Чтобы не мучить почтенную публику, я дальше не буду лить столько воды, а покороче расскажу, с какими трудностями я столкнулся, и как их решил.
Если ядро от SMS не идёт на eBox, то на eBox можно затянуть ядро от X-Linux. Это такой специальный Linux для eBox, в котором ничего толкового нет. Зато он работает на eBox. Просто так взять готовое ядро 2.6.29 не интересно. Лучше всего на основе его .config подготовить ядро 2.6.37.6 (родное для SMS). Для этого делаем следующее:
На моём ноуте установлен Arch x86_64 и после сборки я получил ядро, которому нужен 64-битный процессор. Как-то сильно для eBox, подумал я. Чтобы ядро нормально собралось в системе с архитектурой x86_64 (amd64) надо делать всё также как написано в предыдущем разделе, но добавить префикс ARCH=i386 команде make:
При установке SMS Linux я, конечно, отформатировал корневой раздел в Ext4, а при подготовки ядра отключил поддержку больших файлов. Да и откуда на eBox будут файлы по 2ТБ? Оказалось, что я заблуждался. Для корректной работы Ext4 должна быть установлена опция CONFIG_LBDAF (поддержка больших файлов). Понятное дело, что eBox в моём случае не загружался. Похоже, что есть два способа решить проблему, подумал я. Первый — переустановить SMS на раздел Ext3. Второй — пересобрать ядро с поддержкой больших файлов. И третий — отключить поддержку больших файлов в разделе Ext4. Да, третий способ нашёлся в гугле и он мне понравился больше первых двух. Подключаем USB диск к хост системе и выполняем следующие команды:
Пока USB диск подключен к хост-машине, скопируем в корневой раздел (у меня это /dev/sdb2) новое ядро. Я назвал его vmlinuz-xlinux-5.7-2.6.37.6. Для этого переходим в каталог с исходниками ядра и выполняем команды:
Не забудем подправить конфиг LILO. Я добавил такую секцию:
Понятно, что на eBox у меня только один диск, поэтому не /dev/sdb2, а /dev/sdba2. И обратите внимание на опцию rootdelay=10. Эта опция задаёт задержку перед монтированием корневой файловой системы, что бывает полезно при использовании USB устройства в качестве носителя корневой файловой системы.
После этого вновь надо загрузиться в VMWare с установочного диска SMS и выполнить следующие магические команды (чтобы LILO узнал о новом ядре):
А в результате eBox таки загрузился с SMS Linux. Первая загрузка заняла довольно много времени, на мой взгляд, большую часть из которого (времени, а не взгляда) заняла генерация ключей OpenSSH. Это поубавило мне оптимизма в дальнейшей настройке сервера на eBox.
Для себя я сделал следующие выводы. Преимущества eBox это его малые габариты и бесшумность, т.к. используется пассивное охлаждение. Но поскольку эти преимущества для меня не имеют значения, то я подумываю собрать сервер на VIA PV530. Если добавить туда память и корпус, то можно вполне уложиться в цену eBox (~130$). А это уже будет более шустрое железо и памяти получится 2Гб а не 128Мб (на eBox).
Пока готовил материал, вышла новая версия SMS 1.6.1. Переделывать топик не стал, т.к. принцип установки SMS тот же.
О самом eBox-2300SX
Временно утянул с работы домой один eBox для экспериментов. У пациента есть следующие разъёмы: 3 USB, 1 Ethernet, 1 PS/2 для клавиатуры, 1 VGA, 1 CompactFlash и 1 питание. В зависимости от конфигурации могут присутствовать и другие интерфейсы. Мне досталась моделька с двумя COM-портами (которые лично мне вообще не нужны).
Первым делом я его вскрыл. Внутри, как уже можно было узнать из обзоров есть и cPCI, и E-IDE разъёмы. Но не стоит раскатывать губу, т.к. разъём стандартного E-IDE шлейфа не лезет в корпус по высоте. Но это меня не расстроило, т.к. IDE дисков у меня нет, зато есть SATA диск с переходником на USB.
Отдельно хочу отметить, что eBox потянул USB CD-ROM. Правда, пришлось занять для этого два разъёма из трёх доступных.
Первая попытка установить Linux
Обладая знаниями того, что eBox-2300SX не имеет математического сопроцессора, я подбирал дистрибутив с учётом этого параметра. Помимо этого хотелось выбрать уже знакомый дистрибутив или его клон — для меня это Slackware и Arch. Немного погуглив, я выбрал SMS. Во-первых, это Slackware для слабеньких машин. Во-вторых, это Slackware c небольшим количеством пакетов. Ну и в-третьих, это Slackware, с которым я немного знаком, начиная с 4.0 и до 13.0.
Скачал SMS 1.6.0 (это была последняя версия на тот момент) и записал на RW болванку. Загрузился с USB CD-ROM и понял, что установка не пойдёт — eBox просто зависал на этапе загрузки. И ещё не хватало одного USB разъёмов, т.к. у меня не было PS/2 клавиатуры.
Вторая (и более правильная попытка) установить Linux
Тут мне подумалось, что устанавливать Linux на сам eBox вовсе не обязательно, можно воспользоваться возможностями виртуализации. Если быть точнее, то VMWare. Создаём новую виртуальную машину со стандартными настройками и удаляем всё лишнее — звук, флопик и диск. В качестве диска добавляем подключенный к хост-машине USB винчестер. Установка в виртуальной машине проходит вполне легко и знакомо (для тех, кто знаком со Slackware, конечно). К сожалению, грузиться с USB диска как с USB устройства VMWare не умеет (я не нашёл таких опций в её BIOS). Так что переходим к полевым испытаниям на eBox.
Ничего удивительного нет в том, что eBox опять завис с ядром от SMS. По крайней мере я не удивился. Чтобы не мучить почтенную публику, я дальше не буду лить столько воды, а покороче расскажу, с какими трудностями я столкнулся, и как их решил.
Подготовка ядра
Если ядро от SMS не идёт на eBox, то на eBox можно затянуть ядро от X-Linux. Это такой специальный Linux для eBox, в котором ничего толкового нет. Зато он работает на eBox. Просто так взять готовое ядро 2.6.29 не интересно. Лучше всего на основе его .config подготовить ядро 2.6.37.6 (родное для SMS). Для этого делаем следующее:
- Скачиваем и распаковываем исходники ядра 2.6.37.6
- Скачиваем архив xlinux-5.7-src-sx.zip (Пароль: download)
- Находим конфиг ядра в каталоге etc/kernel-config под именем kernel-2.6.29.6-vortex86sx.config и копируем его в каталог с исходниками ядра 2.6.37.6 как .config.
- Переходим в каталог с исходниками и делаем
make oldconfig
. Отвечаем на несколько простых вопросов. Я отказался от всего нового. - Потом делаем, например,
make menuconfig
и включаем поддержку Ext4 и JFS - После этого уже
make -j12 bzImage
- Ядро готово
Подготовка ядра на хосте x86_64
На моём ноуте установлен Arch x86_64 и после сборки я получил ядро, которому нужен 64-битный процессор. Как-то сильно для eBox, подумал я. Чтобы ядро нормально собралось в системе с архитектурой x86_64 (amd64) надо делать всё также как написано в предыдущем разделе, но добавить префикс ARCH=i386 команде make:
make ARCH=i386 oldconfig
make ARCH=i386 menuconfig
make ARCH=i386 -j12 bzImage
Особенность Ext4
При установке SMS Linux я, конечно, отформатировал корневой раздел в Ext4, а при подготовки ядра отключил поддержку больших файлов. Да и откуда на eBox будут файлы по 2ТБ? Оказалось, что я заблуждался. Для корректной работы Ext4 должна быть установлена опция CONFIG_LBDAF (поддержка больших файлов). Понятное дело, что eBox в моём случае не загружался. Похоже, что есть два способа решить проблему, подумал я. Первый — переустановить SMS на раздел Ext3. Второй — пересобрать ядро с поддержкой больших файлов. И третий — отключить поддержку больших файлов в разделе Ext4. Да, третий способ нашёлся в гугле и он мне понравился больше первых двух. Подключаем USB диск к хост системе и выполняем следующие команды:
# tune2fs -O ^huge_file /dev/раздел
# fsck /dev/раздел
Установка нового ядра на USB диск
Пока USB диск подключен к хост-машине, скопируем в корневой раздел (у меня это /dev/sdb2) новое ядро. Я назвал его vmlinuz-xlinux-5.7-2.6.37.6. Для этого переходим в каталог с исходниками ядра и выполняем команды:
# mkdir /mnt/tmp
# mount /dev/sdb2 /mnt/tmp
# cp arch/i386/boot/bzImage /mnt/tmp/boot/vmlinuz-xlinux-5.7-2.6.37.6
# umount /mnt/tmp
Не забудем подправить конфиг LILO. Я добавил такую секцию:
image = /boot/vmlinuz-xlinux-5.7-2.6.37.6
root = /dev/sda2
append = "rootdelay=10"
label = X-Linux-5.7
# initrd = /boot/initrd.splash
read-only
Понятно, что на eBox у меня только один диск, поэтому не /dev/sdb2, а /dev/sdba2. И обратите внимание на опцию rootdelay=10. Эта опция задаёт задержку перед монтированием корневой файловой системы, что бывает полезно при использовании USB устройства в качестве носителя корневой файловой системы.
После этого вновь надо загрузиться в VMWare с установочного диска SMS и выполнить следующие магические команды (чтобы LILO узнал о новом ядре):
# mount /dev/sda2 /mnt
# chroot /mnt
# lilo
# exit
# halt
В результате
А в результате eBox таки загрузился с SMS Linux. Первая загрузка заняла довольно много времени, на мой взгляд, большую часть из которого (времени, а не взгляда) заняла генерация ключей OpenSSH. Это поубавило мне оптимизма в дальнейшей настройке сервера на eBox.
Для себя я сделал следующие выводы. Преимущества eBox это его малые габариты и бесшумность, т.к. используется пассивное охлаждение. Но поскольку эти преимущества для меня не имеют значения, то я подумываю собрать сервер на VIA PV530. Если добавить туда память и корпус, то можно вполне уложиться в цену eBox (~130$). А это уже будет более шустрое железо и памяти получится 2Гб а не 128Мб (на eBox).
Пока готовил материал, вышла новая версия SMS 1.6.1. Переделывать топик не стал, т.к. принцип установки SMS тот же.