Мой личный опыт сборки системы на базе Tiny Core (версии были 3.3 и 3.5.1)


Итак ...


Система с нуля весит всего 11 мб, грузится мгновенно и работает целиком из памяти. Наличие интернет репозитория позволяет создать систему под себя, установив лишь необходимые службы и ничего лишнего.


замечательнейшая инструкция по установке на жесткий диск находится здесь

http://distro.ibiblio.org/tinycorelinux/install.html


Я лишь менял в командах /dev/hda на /dev/sda

в остальном инструкция полностью рабочая


Идеология системы такая, вся система от корня / хранится в памяти, а ваш жесткий диск это лишь /mnt/sda (/mnt/hda). Поэтому надо учитывать это в работе, ведь все, что вы перезапишите в файлах и папках пропадет при перезагрузке.



После установки потребовалось настроить работу с центром приложений через прокси

export http_proxy="http://proxy:port"

(эту строку лучше добавить в /home/tc/.profile чтоб параметр применялся и после перезагрузки. )


ab mc

вот и установил mc в системе


ab nano

мне понадобится вменяемый текстовый редактор (nano) помимо vi


ab bsc

Нормальный графический файловый мэнэджер с двумя панелями


ab putty

Лучший клиент для ssh и telnet


(если надо работать под root просто напиши sudo root, можешь потом запаролить рута passwd root)


в графике лучше тянуть из appbrowser

из командной строки лучше пользоваться ab

ни разу не ошибся на зависимостях пакетов, а вот tce-load -w -i openssh лажанулся не скачав нужных библиотек.

****************************************************************

Хочется работать с системой по ssh

приступим ab openssh


при попытке стартануть

sudo /usr/local/etc/init.d/openssh start

узнаем, что нет файла конфигурации /usr/local/etc/ssh/sshd_config

сделаем его

sudo cp -p /usr/local/etc/ssh/sshd_config.example /usr/local/etc/ssh/sshd_config

снова

sudo /usr/local/etc/init.d/openssh start

стартануло, проверим ssh 127.0.0.1

подмечу, что если пароль для root не установлен, зайти не удастся


/opt/bootlocal.sh здесь прописываются команды, которые выполняются при загрузке системы.

В нашем случае /usr/local/etc/init.d/openssh start


И напомню, все что мы установили, система автоматически запишет на винт только после backup, это случается при корректном выключении или перезагрузке.

Если резко дернуть питание, все что мы настроили пропадет.

Здесь /opt/.filetool.lst прописано, что надо бакапить на винт


значит туда надо добавить строку, где лежит конфиг, который мы создали

usr/local/etc/ssh/sshd_config


чтоб запомнился пароль рута надо в /opt/.filetool.lst вписать строки

etc/passwd

etc/shadow


Бэкап настроек можно сделать в любой момент без перезагрузки из панели управления : ControlPanel – Backup/Restore


или из командной строки filetool.sh -b


*************************************************************

iptables


установил командой ab iptables


потом включил в автозагрузку

(добавил строку в /opt/bootlocal.sh)

/usr/local/sbin/basic-firewall noprompt


Перезагрузил, реально работает, но как сохранять правила ?

Я воспользовался командами iptableas-save, iptables-restore


создаю каталог с конфигами (как в fedora)

mkdir /opt/sysconfig


отмечаю его в /opt/.filetool.ls, чтоб настройки сохранялись на винт — добавил строку opt/sysconfig


Настроил правила iptables


потом iptableas-save > /opt/sysconfig/iptables


в автозагрузку(добавил строку в /opt/bootlocal.sh)

iptables-restore /opt/sysconfig/iptables


надо лишь при внесении изменений в правила iptables сохраняться

или прописать сохранение в файле /opt/shutdown.sh


Пример применения :

Такая задачка устаревший сервер sun netra потребляет электричество с целью раздать инструкции и параметры PAC (proxy auto config) с apache web server по 80 порту. А рядом стоит еще один севак, на нем куча места и аппач есть, и все это он может делать, но ip у него другой и у него свои бизнес задачи, но ресурсами он поделится. Гдавное все проделать, так, чтоб сотня другая пользователей ничего не заметили.


Можно перенаправить пакеты с микро сервера без жестких дисков, а лучше виртуального с помощью iptables. И спокойно проводить работу с пользователями, по окончании которой загасить поделку.


Где в tiny Core находится sysctl.cfg, я не нашел, но мы в автозагрузку можем вставить

sysctl -w net.ipv4.ip_forward=1

разрешаем форвардить пакеты системе


переходим к iptables (10.x.x.180 – адрес локального сервера на tynycore, 10.x.x.118 сервер которому передаем пакеты )


iptables -P FORWARD ACCEPT

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.x.x.118:80

iptables -t nat -A POSTROUTING -p tcp -d 10.x.x.118 --dport 80 -j SNAT --to-source 10.x.x.180


Все работает.(не забываем сохранить конфигурацию)

Я не настаиваю, что решение самое изящное, но одно из рабочих...


*****************************************************

для работы в консоли для скачки приложений рекомендую консольный браузер репозитория appbrowser-cli

(установка ab appbrowser-cli)


********************************************************************


Доступ по VNC

в TinyCore доступ по vnc осуществляется не к текущему экрану, а к виртуальному

начнем с того, что в iptables, если он установлен, добавим доступ к портам vnc

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901:5906 -j ACCEPT

установим пакет realvnc (/usr/bin/ab realvnc)


пароль на сессию командой vnc4passwd

запуск сервера vnc4server :n

где n – число от 1 до 6, номер виртуального дисплея

или vnc4server :n -geometry 1024x768

если хочется определить размер виртуального дисплея в данном случае 1024х768.


в клиенте vnc указываем ip_address:n

вводим пароль и … видим голый экран. Чтоб была возможность запускать приложения я в файлике /home/tc/.vnc/xstartup добавил строки (меню и панель запуска)

flwm_topside >/dev/null &

wbar -bpress -config /usr/local/tce.icons >/dev/null &

это дало возможность по клику мыши открывать меню приложений и настроек


Все, мы можем удалено работать и в графике.

P.S.

На версии 3.8 установленной на жесткий диск

комманда vnc4server :3 -geometry 1024x768

прописанная в /opt/bootlocal.sh не исполнялась при загрузке, профиль vnc стал записываться в домашний каталог tc - /home/tc/.vnc/ но владельцем был root.

Помогло тоже самое но принудительно от пользователя tc

su - tc -c "vnc4server :3 -geometry 1024x768"


**************************************************************************

Работа с терминальными серверами windows и xrdp в Linux осуществляется после установки пакета freerdp


подключение xfreerdp server:port

(аналог windows команда mstsc /v:server:port)

***************************************************************************


Установка samba и apache web server прошли без осложнений

открыть порты в iptables 137:139 и 80 соответственно.

ab samba3

ab apache2

(в апаче есть свой исполняемый файл ab, теперь для установки софта надо писать полный путь /usr/bin/ab)

Соответственно их конфиги надо прописать для бэкапа в /opt/.filetool.lst

usr/local/etc/samba/smb.conf

usr/local/apache2/conf/httpd.conf


а их автозапуск в /opt/bootlocal.sh


/usr/local/etc/init.d/samba start

apachectl -k start


Все остальные телодвижения касаются именно настроек конфигов, а они стандартные для этих серверных служб и этого добра в интернетах хватает.

Добавлю, что данные логично будет сохранять на винте, например

/mnt/sda1/samba и /mnt/sda1/www соответственно.


****************************************************************************

Я добрался до необходимости русификации системы, ибо созданные в самбе файлы и папки с русскими именами, в консоли отражались кракозябликами.


  1. Качаем только русскую локаль, для этого надо приложение getlocale.

    /usr/bin/ab getlocale

  2. Запускаем getlocale.sh и тянем нужную локаль

  3. Редактируем параметры загрузки ядра в grub

    sudo nano /mnt/sda1/boot/grub/menu.lst

    там должно быть что-то похожее на

    kernel /boot/bzImage lang=ru_RU.UTF-8 kmap=ruwin_ct_sh-UTF-8 tz=GMT-3 noutc quiet

(

если grub не был установлен то парметры загрузки будут в

/mnt/имя_диска/boot/extlinux/extlinux.conf

к строке начинающейся с APPEND добавить

lang=ru_RU.UTF-8 kmap=ruwin_ct_sh-UTF-8 tz=GMT-3 noutc quiet

)

  1. Перезагружаемся

  2. Заходим консолью по ssh с параметрами utf-8 и видим русские названия файлов и папок. Ура товарищи!

  3. А вот в графическом xterm все неважно, русские буквицы и мс кракозябликами, но мне пока это не критично, я локально запускаю putty и соединяюсь с 127.0.0.1 — mc выглядит прилично, а русские буквы в названиях... зачем они здесь?

  4. Все тема с русификацией закрыта, установил два пакета lxterminal.tcz и lxterminal-locale.tcz. В раздел /usr/share/fonts скопировал ttf шрифты из ubuntu : Freemono и FreeSans (папку с шрифтами не забыл включить в бэкап ).Все по русски теперь и в графике и в текстовой консоли.

***************************************************************************


DC++ HUB PtokaX

ставится не из репозитория. Свежий берется здесь

http://dchublist.ru/static/files/ptokax-110323-i686.tar.bz2

Хотя я использовал пакет ptokax-100131-i686.tar.bz2 скачанный ранее, думаю суть не изменится.(http://ns-home.ru/files/ptokax-100131-i686.tar.bz2) здесь находится версия, с которой я работал.


Можно разархивировать пакет в /usr/local тогда надо позаботится о бэкапе папки. Или скинуть содержимое в папку на жестком диске, например /mnt/sda1/ptokax-100131-i686 и запускать от туда.


В iptables надо добавить правило на 4111 порт

-A INPUT -p tcp -m state --state NEW -m tcp --dport 4111 -j ACCEPT


запускается демоном папка_установки/start_ptokax

останавливается …stop_ptokax

remote_admin – утилита конфигурирования, работает в графике.

(есть версия удаленного админа под windows, ptokaX-remote-Admin.213.win)

Я сразу поменял в настройках порт с 4111 на 411 (не забыв про iptables)

*****************************************************************************


Немного о использовании ресурсов windows машин.

Нужен пакет утилит для монтирования сетевых ресурсов windows — установка:

/usr/bin/ab cifs-utils

переходим в режим суперпользователя

sudo su

Создается раздел например /mnt/export

потом монтируется шара винды

mount -t cifs -o user=domen/username%password ,iocharset=utf8 //comp/share /mnt/export

кстати, в данном случае имя домена обязательно, если его нет, будет mount error(13): Permission denied

если машина не в домене, указывается имя компьютера или даже его IP

отключение ресурса

umount /mnt/export


******************************************************************************




Hosted by uCoz