Иногда корневая файловая система слишком большая и не пригодна для дискеты даже после сжатия. Есть способы уменьшить размер файловой системы, перечисленные в порядке уменьшения эффективности:
По умолчанию, дискеты форматируются в 1440КБ, но доступны более высокие форматы плотности. fdformat форматирует диски для следующих размеров: 1600, 1680, 1722, 1743, 1760, 1840, и 1920. Большинство приводов 1440КБ поддерживает 1722КБ, и это - то, что я всегда использую для загрузочных дисков. См. fdformat man страницу и /usr/src/linux/Documentation/devices.txt.
Некоторые из популярных оболочек для Linux, типа bash
и tcsh
, большие,
и требуют многих библиотек.
Существуют легкие альтернативы, типа ash
, lsh
, kiss
и smash
, которые намного
меньше и требуют немного библиотек. Большинство этих оболочек замены доступно из
Убедитесь что оболочка, которую Вы используете, способна выполнять команды во всех rc файлах,
которые Вы включаете в ваш загрузочный диск.
Многие библиотеки и бинарники обычно включают отладочную информацию. В этом случае запуск 'file
' на
этих файлах сообщит Вам 'not stripped
'. При копировании бинарников в вашу корневую
файловую систему, хорошо это использовать:
objcopy --strip-all FROM TO
При копировании библиотек, используйте:
objcopy --strip-debug FROM TO
Если некоторые из ваших бинарников не необходимы для загрузки или входа в систему, Вы можете переместить их в сервисный диск. Для подробностей см. секцию Создание сервисного диска. Вы можете также обдумать перемещение модулей на сервисный диск.
Секция Создание корневой файловой системы дает инструкции для создания сжатой корневой файловой системы, которая загружается в ramdisk, когда система загружается. Этот метод имеет много преимуществ, поэтому обычно используется он. Однако, некоторые системы с небольшим объемом памяти не могут предоставить необходимую оперативную память; для таких случаев корневая файловая система может быть создана, как монтируемая непосредственно, вместо копирования на ramdisk.
Такие файловые системы фактически проще создать, чем сжатые корневые файловые системы, потому что они могут быть сформированы на дискете, а не некотором другом устройстве, и они не должны быть сжаты. Мы набросаем структуру процедуры, т.к. она отличается от инструкций, указанных выше. Если Вы выбираете это, имейте в виду, что у Вас будет гораздо меньше доступного пространства.
mke2fs
, создайте корневую файловую систему на дискете соответствующего размера.
rdev
как описано.
Есть несколько сокращений, которые Вы можете сделать. Если Вы формируете набор из двух дисков, Вы можете создать полную корневую файловую систему прямо на втором диске, и Вам не надо перемещать ее в файл жесткого диска, а затем обратно. Также, если Вы создаете одиночный загрузочный диск и используете LILO, Вы можете создать одну файловую систему на всем диске, содержащую ядро, LILO файлы и корневые файлы, и просто выполнить LILO как последний шаг.
Создание сервисного диска - относительно просто, просто создайте файловую систему на форматированном диске и скопируйте файлы на него. Чтобы использовать его с загрузочным диском, смонтируйте его вручную после того, как система загрузится.
В командах выше, мы упомянули, что сервисный диск может быть смонтирован в /usr
. В этом случае,
бинарники могут быть помещены в каталог /bin
на вашем сервисном диске, т.о. получается
путь /usr/bin для доступа к ним. Дополнительные библиотеки нужные бинарники, помещены в /lib
на
сервисном диске.
Есть несколько важных моментов, которые нужно иметь в виду при проектировании сервисного диска:
Приложение
Пример каталога сервисного диска показывает пример содержимого
сервисного диска. Есть несколько полезный идей: программы для проверки и управления дисками (format,
fdisk
) и файловых систем (mke2fs, fsck, debugfs, isofs.o
), легкий текстовый редактор (elvis, jove
),
утилиты сжатия и архивации (gzip, tar, cpio, afio
), ленточные утилиты (mt, tob, taper
),
коммуникационные утилиты (ppp.o, slip.o, minicom
) и утилиты устройств (setserial, mknod
).