-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
В сообщении от 20 Август 2002 18:20 Michael написал:
> Hi !
>
> Возможно ли установить Debian в минимальной конфигурации ?
> Или чуть побольше. Мегабайт на 10 - в самый раз.
> Где копать ?
Установить не получится, такие вещи делаются обычно ручками. Но это получается
не Debian, и не совсем по FHS.
Основная идея --- то, что тебе не нужно изменять в процессе работы, положи на
систему с прозрачной распаковкой(cloop). Пример-максимум: knoppix (на Debian)
Только в 10 мегабайт не получится не поработав ножницами запихать даже
минимальный Debian, т.к. многие толстые вещи (perl например) унесут за собой
в могилу практически все, что делает систему Debian-ом...
Чуть больше - уже получится. Но в любом случае придется забыть про легкое
внесение изменений в некоторые части файловой структуры.
Итак, возможный сценарий:
1. Ставим на отдельный раздел минимальный debian.
2. Выносим в отдельную иерархию (скажем, /adm) все что может понадобиться
только в особом случае (/usr/share/doc, /var/dpkg, /usr/*/perl*, все от
dpkg/apt), создавая при этом симлинки на старом месте. Если нужно
кириллическую консоль, то придется либо перл оставить на старом месте, либо
делать свой пакет, либо искать готовое, так как console-cyrillic зависит от
perl, правда там он как обертка лишь к стандартным утилитам.
3. Создаем будущую компрессированную систему:
dd if=/dev/zero of=/compr.img bs=1000 count=??? # зависит от того, сколько
# получится вынести в пункте 3
mke2fs /compr.img -F
tune2fs -c0 /compr.img
mkdir /compr
mount -t ext2 compr.img /compr -o loop
3. Переносим в /compr (тоже с созданием симлинков) весь /usr, кое-что из /bin
/sbin /lib, в том числе и /lib/modules (все зависит от того, что нужно
сделать до и в процессе /etc/init.d/mountall.sh)
4. Берем нормальную систему
5. Ставим cloop-utils, подготавливаем исходники ядра и cloop
6. Собираем для результирующей системы ядро с поддержкой того, что нужно;
ставим на место. (модули в /compr/lib/modules создаваемой системы, ядро в
/boot) Надо заранее посчитать все зависимости, а в /etc/init.d/modutils
зарешетить depmod -a
7. Собираем для этого же ядра cloop.o и ставим его в /lib/ создаваемой
системы. Для тестирования стоит собрать и для рабочей системы:
cd /path/to/cloop
make KERNEL_DIR=/patg/to/kernel
8. Подготавливаем файл устройства для cloop:
mkdev /dev/cloop b 0 240
как на рабочей так и на создаваемой системе.
9. Размонтируем compr.img
10. Сжимаем его: create_compressed_fs compr.img 65536 > compr.zimg Для этого у
тебя должно быть достаточно виртуальной памяти, чтобы поместился весь сжатый
образ.
11. Получившийся файл должен быть иметь размер 20..35% от оригинала.
12. Переносим старый (несжатый) образ и /adm в удобное место. Они могут
пригодиться.
13. Помещаем compr.img в удобное место создаваемой системы (например в корень)
14. Изменяем /etc/init.d/mountall.sh:
/sbin/insmod /lib/cloop.o file=/compr.zimg
mount -t ext2 /dev/cloop /compr -o ro
в районе строки с "Mounting local filesystems..."
или делаем свой init-скрипт, что правильнее но немного сложнее в объяснении.
15. Настраиваем boot-loader (grub,lilo)
16. Проверяем :)
Почти таким же образом я создал CD на 29 мегабайт с небольшим набором
стандартных утилит, python, gtk, python-gtk, uisp, XFree86 4.1, blackbox,
ssh, dillo, wget,pppd сотоварищи и программой на python + python-gtk для
которого этот диск создавался :)
- --
regards,
Igor A. Tetuev
www.linux.psu.ru debian.psu.ru
GnuPG key id: 0x49060C09
fingerprint: F8EF 2276 8BE3 1923 95DB 6E4A 3DCE 6528 4906 0C09
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9cegdPc5lKEkGDAkRAichAJsFTkssKQe9cG7TjY/b55+NFB1vZwCcCs6c
XygZIiH8aRC1sNxsr10TlP0=
=MV0y
-END PGP SIGNATURE-