[devel] propagator - diet vs glibc

Mikhail Yakshin =?iso-8859-1?q?greycat_=CE=C1_altlinux=2Eorg?=
Пт Фев 2 17:57:05 MSK 2007


Nick S. Grechukh пишет:
>>>>> нет, туда кладутся только из списка profile/modules.
>>>> Я как бы немножко в курсе ;)
>>> так откуда 30-40 мегабайт? ;)
>> Ну 30-40 - это если класть все по максимуму.
> 
> ага. так ведь в mar/tar/cpio они ненамного меньше были бы.

Они примерно так:

Выборочные + запакованные ~ 2.5 мега
Выборочные + незапакованные ~ 9-10 мегов
Все + запакованные ~ 10-11 мегов
Все + незапакованные ~ 35-50-55 мегов

Отсюда и решать, сколько не жалко требовать с пользователя.

Кстати, относительно pivot'а в propagator - он делается так:

         /* overmount image under new root if needed */
         if ( statfs(IMAGE_LOCATION, &sfs) )
                 fatal_error("statfs "IMAGE_LOCATION);
         /* if something is mounted under IMAGE_LOCATION ? */
         if ( sfs.f_type != RAMFS_MAGIC && sfs.f_type != TMPFS_MAGIC ) {
                 if ( mount(IMAGE_LOCATION, "." IMAGE_LOCATION, NULL, 
MS_MOVE, NULL) )
                         fatal_error("overmounting image location");
                 /* test for nested mount: disk or nfs with iso image */
                 if ( statfs(IMAGE_LOCATION, &sfs) )
                         fatal_error("nested statfs "IMAGE_LOCATION);
                 if ( sfs.f_type != RAMFS_MAGIC && sfs.f_type != 
TMPFS_MAGIC )
                         if ( mount(IMAGE_LOCATION, "." IMAGE_LOCATION 
"/isolinux", NULL, MS_MOVE, NULL) )
                                 fatal_error("overmounting nested image 
location");
         }

         umount("/sys");
         umount("/proc/bus/usb");
         umount("/proc");

         /* Delete rootfs contents */
         if ( nuke_dir("/") )
                 fatal_error("nuking initramfs contents");

         /* Overmount the root */
         if ( mount(".", "/", NULL, MS_MOVE, NULL) )
                 fatal_error("overmounting root");

         /* chroot, chdir */
         if (chroot(".") || chdir("/"))
                 fatal_error("chroot");

Судя по вот этому вызову nuke_dir - если он действительно отрабатывает и 
у нас ramfs/tmpfs - то все должно быть хорошо. Просто мы поднимаем 
планку минимального количества памяти, на которой запустится наш новый 
propagator.

-- 
WBR, Mikhail Yakshin AKA GreyCat



Подробная информация о списке рассылки Devel