Мой личный опыт сборки системы на базе 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.s
h
Пример применения :
Такая
задачка устаревший сервер
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 8
0
-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
соответственно.
****************************************************************************
Я
добрался до необходимости
русификации
системы, ибо созданные в самбе файлы и папки с русскими именами, в
консоли отражались кракозябликами.
Качаем
только русскую локаль, для этого надо приложение
getlocale.
/usr/bin/ab
getlocale
Запускаем
getlocale.
sh
и
тянем нужную локаль
Редактируем
параметры загрузки ядра в
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
)
Перезагружаемся
Заходим
консолью по
ssh
с
параметрами
utf-8
и
видим русские названия файлов и папок. Ура товарищи!
А
вот в графическом
xterm
все
неважно, русские буквицы и мс кракозябликами, но мне пока это не
критично, я локально запускаю
putty
и
соединяюсь с 127.0.0.1 —
mc
выглядит
прилично, а русские буквы в
названиях...
зачем они здесь?
Все
тема
с русификацией закрыт
а,
установил два пакета
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
******************************************************************************