Скопировать существующее ядро /boot/core.gz в /tmp и распаковать его с помощью core-remaster в /tmp/core_extract/
tc@box:~$ cp /mnt/sda1/tce/boot/core.gz /tmp
tc@box:~$ core-remaster
- Установить необходимые приложения, выполнить настройки и подготовить пользовательские данные (например, /usr/local/www и /var/db/www/) в текущей операционной системе
- Скопировать все директории приложений /tmp/tcloop/xxx/* в будущее ядро /tmp/core_extract/
- Скопировать все измененные файлы (настройки и данные) из текущей системы /* в будущее ядро /tmp/core_extract/ - часть из них перечислена в /opt/.filetool.lst. Обязательно следить, чтобы не осталось символьных ссылок на /tmp/tcloop/xxx, но оставить ссылки на исправленные скрипты /usr/bin/xxx -> /usr/local/tce-shells/xxx
- Переопределить права на /tmp/core_extract/tmp/appserr и /tmp/core_extract/usr/local/tce.installed (для возможности установки приложений без sudo)
- Изменить владельца и права доступа для пользовательских данных, e.g. /tmp/core_extract/usr/local/www/
- Перейдя в /tmp, собрать новое ядро при помощи core-remaster
- Скопировать новое ядро на загрузочный диск
Можно сделать LIVE-CD с локальной версией сайта (apache2, apache2-mod-php5, sqlite3, phpLiteAdmin_v1-9-8-2), он получится размером около 20Mb. Базу данных сайта можно разместить на виртуальном жестком диске VDI фиксированного размера 15Mb (правда, при этом утилита tce-ab не сможет построить свой индексный файл /mnt/sda1/tce/provide.db, но поиск по ключевым словам будет доступен)
При сборке нового ядра файловой системы можно сохранить архивную копию /www/bsd235/bsd235.sqlite=YYYY-MM-DD
Для чистой загрузки нового ядра не должно оставаться файла /mnt/sda1/tce/mydata.tgz, в котором система хранит пользовательские данные, перечисленные в /opt/.filetool.lst
tc@box:~$ cp /mnt/sda1/boot/core.gz /tmp
tc@box:~$ core-remaster
Скопировать в новую файловую систему данные из всех директорий, перечисленных в файле .filetool.lst
tc@box:~$ cat /opt/.filetool.lst
/opt
/home
/opt
/etc/motd
/etc/fstab
/etc/dropbear/dropbear_rsa_host_key
/etc/dropbear/dropbear_dss_host_key
/etc/shadow
/etc/gshadow
/etc/passwd
/etc/group
/etc/sudoers
/etc/bftpd.conf
/etc/ftpusers
/usr/bin/shutdown
/usr/local/tce-shells
/usr/local/apache2/conf
/usr/local/www
/var/db/www
/tmp/appserr
Проверить пользовательские ссылки на системные объекты
/
tc@box:~$ ls -l /tmp/core_extract/
tce -> /mnt/sda1/tce/
utc -> /usr/local/etc/
www -> /usr/local/www/
/usr/local/etc
tc@box:~$ ls -l /tmp/core_extract/usr/local/etc/
httpd.conf -> /usr/local/apache2/conf/httpd.conf
vhosts-httpd.conf -> /usr/local/apache2/conf/extra/httpd-vhosts.conf
release.txt -> /usr/share/doc/tc/release.txt
Проверить ссылки на исправленные скрипты
/usr/bin
tc@box:~$ ls -l /tmp/core_extract/usr/bin/ | grep tce-shells
backup -> ./../local/tce-shells/backup-v1.4.sh
filetool.sh -> ./../local/tce-shells/filetool-v1.0.sh
shutdown -> ./../local/tce-shells/shutdown.sh
/usr/local/bin
tc@box:~$ ls -l /tmp/core_extract/usr/local/bin/ | grep tce-shells
core-remaster -> ./../tce-shells/core-remaster-v1.2.sh
screen -> ./../tce-shells/screen-v1.1.sh
/var/db/www/bsd235
tc@box:~$ ls -l /tmp/core_extract/var/db/www/bsd235/
bsd235.sqlite -> /tce/bsd235.sqlite
Изменить владельца и права доступа для пользовательских данных
tc@box:~$ sudo chown tc:staff /tmp/core_extract/tmp/appserr
tc@box:~$ sudo chmod 0664 /tmp/core_extract/tmp/appserr
tc@box:~$ sudo touch /tmp/core_extract/usr/local/tce.installed/p7zip ... etc
tc@box:~$ sudo chown root:staff /tmp/core_extract/usr/local/tce.installed
tc@box:~$ sudo chmod -R 0640 /tmp/core_extract/usr/local/tce.installed
tc@box:~$ sudo chown root:staff /tmp/core_extract/usr/local/tce-shells
tc@box:~$ sudo chmod -R 0640 /tmp/core_extract/usr/local/tce-shells
tc@box:~$ sudo chmod 0750 /tmp/core_extract/usr/local/tce-shells/apache2-mod-php5 ... etc
tc@box:~$ sudo chown -R tc:staff /tmp/core_extract/usr/local/www
tc@box:~$ sudo chown -R tc:staff /tmp/core_extract/var/db/www
Собрать новое ядро, повторно запустив core-remaster
tc@box:~$ core-remaster