[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Минимальная установка Debian



-----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-----



Reply to: