Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n наконец, последний и самый важный совет – удаляйте из ядра все лишнее без сожаления, первыми кандидатами на удаление являются редкие устройства, звуковые карты, система netfilter и прочие полезности со страницы networking options, хотя если вы создаете nfs-дистрибутив, то от этого правила можно отойти, т.к. основная файловая система все равно будет находиться на удаленной машине, а ядро фактически в любом случае влезает на дискету.
Каким образом будет грузиться ядро? Существует несколько способов загрузки ядра с дискеты:
n ядро, будучи записанным на дискету, начиная с 0-го сектора, распаковывается в память и запускается при помощи так называемого kernel loader, этот способ хорош своей быстротой и простотой реализации (фактически ядро записывается непосредственно на дискету без файловой системы), но при этом невозможно непосредственно указывать параметры ядру, что не подходит для создания NFS-дистрибутивов;
n на дискете формируется обычная файловая система ext2, и ядро записывается непосредственно на файловую систему, при этом возможно манипулирование с дискетой как с обычным ext2-томом, загрузка происходит при помощи lilo, записанного на дискету (необходимо формировать специальный конфигурационный файл для lilo, что будет объяснено далее), преимущества такого способа в том, что при помощи lilo очень просто передавать ядру определённые параметры (что необходимо для использования NFS в качестве root-устройства), недостаток – файловая система на дискете не сжата, поэтому создание root-fs на дискете лишено смысла, т.к. на несжатую систему весьма сложно записать все необходимое;
n на дискете формируется msdosfs, и загрузка ядра происходит из msdos-программы syslinux, при таком способе появляется возможность работы с такой дискетой в msdos (win*), сама root файловая система сжимается при помощи zip.
Самая большая проблема при создании floppy-дистрибутивов – это формирование корневой файловой системы (которая обычно загружается в память). Корневая файловая система не находится на дискете в NFS-дистрибутивах, что сильно облегчает создание загрузочной дискеты. Поэтому прежде чем говорить о создании дискет с автономной root-fs, я расскажу о создании NFS-дистрибутивов.
NFS-дистрибутивы содержат на дискете только ядро, которому при загрузке передается параметр nfsroot, показывающий, что root-fs находится на NFS-сервере. Ядро монтирует NFS и запускает init. Все операции ядра с root-fs происходят по протоколу rpc в открытом виде, что, конечно, небезопасно. Поэтому не рекомендуется хранить ценные данные на NFS-разделах, особенно это касается паролей (для NFS-системы обязательно иметь особые пароли, которые также полезно время от времени менять). NFS-системы довольно сильно нагружают сеть и годятся только для LAN. NFS-дистрибутивы полезны во многих случаях: резервное копирование, клонирование, запись CD, аварийное восстановление системы и т. д. Ядро для таких дистрибутивов строится без особых ограничений к размеру (т.к. в основном полноценное ядро занимает около 1 Мб) и обязательно должно содержать TCP/IP и поддержку NFS (см. раздел filesystems в make menuconfig). После компиляции ядра (модули этого ядра должны быть установлены на NFS-раздел в соответствующий каталог) необходимо сформировать ext2fs на дискете:
# mke2fs -N 300 /dev/fd0
Опция -N 300 говорит, что необходимо зарезервировать место для 300 inode (хотя в данном случае это число можно и уменьшить на порядок) для экономии места.
После формирования файловой системы записываем на дискету ядро:
# mount -t ext2fs -o rw /dev/fd0 /mnt/tmp
# cp $KERNELSRC/arch/i386/boot/bzImage /mnt/tmp/vmlinuz
# umount /dev/fd0