Next Previous Contents

8. Разнообразные темы.

8.1 Уменьшение размера корневой файловой системы

Иногда корневая файловая система слишком большая и не пригодна для дискеты даже после сжатия. Есть способы уменьшить размер файловой системы, перечисленные в порядке уменьшения эффективности:

Увеличьте плотность диска

По умолчанию, дискеты форматируются в 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, которые намного меньше и требуют немного библиотек. Большинство этих оболочек замены доступно из http://sunsite.unc.edu/pub/Linux/system/shells/ Убедитесь что оболочка, которую Вы используете, способна выполнять команды во всех rc файлах, которые Вы включаете в ваш загрузочный диск.

Усечение библиотек и бинарников

Многие библиотеки и бинарники обычно включают отладочную информацию. В этом случае запуск 'file' на этих файлах сообщит Вам 'not stripped'. При копировании бинарников в вашу корневую файловую систему, хорошо это использовать:

        objcopy --strip-all FROM TO

При копировании библиотек, используйте:

        objcopy --strip-debug FROM TO

Переместите не-критичные файлы в сервисный диск

Если некоторые из ваших бинарников не необходимы для загрузки или входа в систему, Вы можете переместить их в сервисный диск. Для подробностей см. секцию Создание сервисного диска. Вы можете также обдумать перемещение модулей на сервисный диск.

8.2 Не - ramdisk корневые файловые системы.

Секция Создание корневой файловой системы дает инструкции для создания сжатой корневой файловой системы, которая загружается в ramdisk, когда система загружается. Этот метод имеет много преимуществ, поэтому обычно используется он. Однако, некоторые системы с небольшим объемом памяти не могут предоставить необходимую оперативную память; для таких случаев корневая файловая система может быть создана, как монтируемая непосредственно, вместо копирования на ramdisk.

Такие файловые системы фактически проще создать, чем сжатые корневые файловые системы, потому что они могут быть сформированы на дискете, а не некотором другом устройстве, и они не должны быть сжаты. Мы набросаем структуру процедуры, т.к. она отличается от инструкций, указанных выше. Если Вы выбираете это, имейте в виду, что у Вас будет гораздо меньше доступного пространства.

  1. Вычислите, сколько пространства у Вас будет для корневых файлов. Если Вы формируете одиночный загрузочный диск, Вы должны разместить все блоки ядра плюс все блоки для корневой файловой системы на одном диске.
  2. Используя mke2fs, создайте корневую файловую систему на дискете соответствующего размера.
  3. Заполните файловую систему как описано выше.
  4. Когда это выполнено, размонтируйте файловую систему и переместите ее в файл на диске но не сжимайте ее.
  5. Переместите ядро на дискету, как описано выше. При вычислении ramdisk слова, установите бит 14 в ноль, для указания, что корневая файловая система не должна загружаться в ramdisk. Выполните rdev как описано.
  6. Переместите корневую файловую систему как и прежде.

Есть несколько сокращений, которые Вы можете сделать. Если Вы формируете набор из двух дисков, Вы можете создать полную корневую файловую систему прямо на втором диске, и Вам не надо перемещать ее в файл жесткого диска, а затем обратно. Также, если Вы создаете одиночный загрузочный диск и используете LILO, Вы можете создать одну файловую систему на всем диске, содержащую ядро, LILO файлы и корневые файлы, и просто выполнить LILO как последний шаг.

8.3 Создание сервисного диска.

Создание сервисного диска - относительно просто, просто создайте файловую систему на форматированном диске и скопируйте файлы на него. Чтобы использовать его с загрузочным диском, смонтируйте его вручную после того, как система загрузится.

В командах выше, мы упомянули, что сервисный диск может быть смонтирован в /usr. В этом случае, бинарники могут быть помещены в каталог /bin на вашем сервисном диске, т.о. получается путь /usr/bin для доступа к ним. Дополнительные библиотеки нужные бинарники, помещены в /lib на сервисном диске.

Есть несколько важных моментов, которые нужно иметь в виду при проектировании сервисного диска:

  1. Не помещайте критические бинарники системы или библиотеки на сервисный диск, так как он не будет смонтирован, пока система не загрузилась.
  2. Вы не можете обращаться к дискете и ленточному накопителю одновременно. Это означает,что если у Вас есть ленточный накопитель, Вы будете не способны обратиться к нему, пока ваш сервисный диск смонтирован.
  3. Доступ к файлам на сервисном диске будет медленный.

Приложение Пример каталога сервисного диска показывает пример содержимого сервисного диска. Есть несколько полезный идей: программы для проверки и управления дисками (format, fdisk) и файловых систем (mke2fs, fsck, debugfs, isofs.o), легкий текстовый редактор (elvis, jove), утилиты сжатия и архивации (gzip, tar, cpio, afio), ленточные утилиты (mt, tob, taper), коммуникационные утилиты (ppp.o, slip.o, minicom) и утилиты устройств (setserial, mknod).


Next Previous Contents