[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