Работаем с микродистрибутивами |
С теперешней тягой к гигантомании, когда дистрибутивы приходят на шести и более компакт-дисках, хорошо бы вспомнить, что полнофункциональный вариант Linux спокойно размещается на ZIP-диске или, о чём многие уже забыли, всего на паре дискет. Чтобы доказать возможность и практичность применения таких мини-дистрибутивов, я настроил у себя систему на "четвёрке", умещающуюся на двух дискетах и использовал её для написания этой статьи. 1 Введение"Всё это" началось, когда мне досталась пара системных блоков и один монитор. Тот, что помощнее (Aptiva), имел "на борту" 133-й Pentium, жёсткий диск на 2Гб, CD-ROM привод и полное отсутствие оперативной памяти. Второй, HP Vectra 486/33N, был оснащён винчестером на 170Мб, Windows 3.1 и 8Мб ОЗУ (CD не было). Оба системника имели мышь, но ни у одного из них не было клавиатуры. Поход в Wal-Mart и расставание с десятком "удобных единиц" подарили мне PS/2-совместимую клавиатуру. Так как эти два компьютера использовали 72-пиновые SIMM'ы, то первое, что я сделал -- поставил память в Aptiv'у и посмотрел, нет ли чего-нибудь интересного на "двухгигабайтнике". И не напрасно. Я узнал кое-что ценное -- Windows 98 становиться дурно от нехватки оперативной памяти.2 Так получилось, что под рукой у меня не было дополнительной памяти. Поэтому я вставил SIMM'ы обратно в Vectrа и откопал диск с Red Hat 4.0, я собирался...опс, дистрибутив на компакт-диске, а у Vectra не было CD-привода (и разъёмов для его подключения тоже). Очевидно настало время менять стратегию. В поисках чудо-дискетыГазета Linux Daily News -- одна из моих ежедневных остановок в Сети. Если того, что вы ищите нет на LWN, значит там должна быть ссылка на это. Я перешёл на страницу Distributions и стал перемещаться вниз до раздела "Small Disk", содержащего информацию о дистрибутивах, помещавшихся на дискетах. Моя первая мысль была о всеми любимом однодисковом дистрибутиве-спасателе (rescue distribution, rescue-дистрибутив) tomsrtbt. У меня на работе есть лаптоп под управлением Windows, вечно на вторых ролях после моего Mac G3, но временами этот дистрибутив делает его полезным. К сожалению, tomsrtbt использует не совсем стандартный размер для пакета в 1.7Мб, размещая его на дискете в 1.44Мб, к тому же производственная необходимость заставила сделать "апгрейд" лаптопа, установив на нём Windows 2000. W2K не позволяет провернуть такую махинацию, а доступа к другой версии Windows у меня не было. 3 Возвращаюсь обратно к списку. Прошерстив ещё несколько ресурсов, обнаруживаю, что BasicLinux действительно является не-CD-ориентированым дистрибутивом (как и было объявлено на странице Distribution на LWN). Он идёт в виде отдельно zip-файла размером 2Мб, но в распакованном виде легко помещается на двух дискетах и не требует создания образа дискеты8 (использует для загрузки из-под MS DOS LOADLIN.EXE). Создан на базе Slackware 3.5, использует ядро 2.0.34 и libc5. Полностью помещается на виртуальном диске размером в 4Мб, что позволяет Vectra почувствовать вкус "свободы" (точнее свободного программного обеспечения). Наверх, наверх, наверх...9Несмотря на различия используемого программного обеспечения, форматов дисков и назначения, все дистрибутивы, ориентированные на загрузку с дискет, имеют общую схему запуска:
Образ диска, содержащий пользовательское пространство (т.е. содержимое файловой системы), полностью помещается на одной дискете, при распаковке занимая более 3Мб. При использовании виртуального диска, даже 486/33 чувствует себя комфортно и показывает чудеса скорости. КомпромиссыПри размещении Linux на двух дискетах, на ум приходит бессмертное наблюдение Heinlein'а "TANSTAAFL'а" (There Ain't No Such Thing As A Free Lunch -- Задаром никого не кормют). При возможности можно использовать дополнительные утилиты и даже X11, но не ожидайте увидеть KDE, Gnome или Mozilla. Фанаты Emacs могут забыть про него (или, по крайней мере, про большую его часть). Даже основные команды и утилиты, те, которые вы ожидаете увидеть в любой ОС, чьё имя заканчивается на 'X', имеют усечённые варианты. Фактически, большинство из них -- это всего лишь символические ссылки на программу под названием BusyBox. Lineo разработал этот удобный инструмент для встроенных Linux-систем, но он также нашёл применение в дистрибутивах-спасателях и микродистрибутивах. Он включает в себя 54 наиболее важных команды в одном исполняемом файле размером всего в 110Кб. Создайте символическую ссылку (используя ln -s), назвав её cp, и когда вы введёте эту команду, BusyBox будет действовать как команда cp. Когда вы вызываете команду mv, то BusyBox перемещает или переименовывает файлы. Опция --help предоставляет доступ к краткому списку команд, исключая потребность в страницах справочного руководства (man). Смею заметить, что без пакета BusyBox дистрибутивы, помещающиеся на дискетах, пришлось бы создавать с большим количеством компромиссов между размером и функциональностью. Работаем с BasicLinuxBasicLinux -- компактная, работоспособная сетевая система. Помимо основных возможностей (доступных через BusyBox), он обеспечивает Ethernet и dialup-подключение и может работать как сетевой экран (firewall, брандмауэр) используя ipfwadm. Такие утилиты, как fetchmail и links (не lynx, который однажды "кинул" меня) обеспечивают почтовый сервис и возможность просмотра web-страниц. Чтобы закалённые бойцы Linux чувствовали себя, по возможности, комфортно, в качестве оболочки предлагается bash. По умолчанию inittab создаёт три консоли, этого более чем достаточно для моих целей (иногда я использую две консоли одновременно, одну для непривилегированного доступа, другую -- для суперпользователя). В отличие от большинства дистрибутивов, BasicLinux предлагает два текстовых редактора, миниатюрный e3 и популярный pico. 4 Воспользовавшись оставшимся свободным местом в загрузочном образе (baslinux.gz) и архиватором пакетов, исторически являющимся частью Slackware, я заменил два предлагаемых редактора на один -- joe. Joe чуть больше, чем pico, но умеет поддерживает возможность эмуляции pico, WordStar и Emacs (но без функциональных гипервозможностей). В результате полученный (и упакованный) образ стал больше, но продолжал помещаться на дискете. Редактирование образаФайл readme.txt, идущий вместе с BasicLinux краток, но даёт любому знакомому с консолью достаточно информации о том, как настроить систему или как создать образ загрузочной дискеты.Как я уже говорил, файлы BasicLinux лежат на диске C: (по крайней мере он так бы назывался, если бы с него была запущена MS DOS). 5 Настройка образа проста:
Переход на жёсткий дискЭто не сложно, если вы планируете стереть всё с жёсткого диска и заново его переформатировать (имеется ввиду оба процесса -- разбиение на разделы и форматирование). На Vectra была установлена Windows 3.1 и куча приложений, в которых я не нуждался. Прежде чем двигаться вперёд, я провёл небольшое исследование и сделал резервную копию каталога с системными файлами MS-DOS на дискете (используя zip-архиватор, который уже был на компьютере). С жёстким диском на 160Мб и ОЗУ на 8Мб, я полагал, что у меня будет достаточно свободного места для создания работоспособной системы. Google помог мне найти программу для переразбиения существующих разделов на диске -- FIPS (Первая Интерактивная Программа для Переразбиения разделов на диске). Следуя инструкциям, я разместил FIPS на загрузочной дискете и воспользовался ею для уменьшения диска C:. Я хотел уменьшить раздел до 10Мб, но FIPS по какой-то причине выделял на это не менее 16Мб. 11 После удаления всех этих Windows-штучек и проведения дефрагментации диска, я смог уменьшить его до 5Мб. Я не совсем понимаю, как такое получилось. Ну, да ладно. Теперь я запустил Linux снова и воспользовался утилитой fdisk, идущей в поставке вместе с BasicLinux, для создания раздела свопинга (swap) и решил оставшуюся часть отдать под "/". Запустив mkswap, mke2fs и e2fsck, я подготовил новые разделы к использованию. Под конец я распаковал архив instl2hd.zip и, следуя инструкциям, приложенным к нему, загрузил образ виртуального диска (и кое-какие дополнения от себя) на жёсткий диск. Дальше уже проще -- нужно было отредактировать новые точки монтирования для swap и "/" в /etc/fstab. Ещё одна перезагрузка и я уже загрузился с жёсткого диска. Жизнь прекрасна! Скопировав свою статью на Linux-раздел, я продолжил писать. Пойманный СетьюВ системе, настроенной исключительно для работы с консолью, используется не более 5Мб оперативной памяти 6 и остаётся свободными ещё около 3Мб, их я решил использовать по своему усмотрению. И я захотел добавить:
К счастью, Vectra шёл с сетевой картой SMB-Ultra. Поиски нужного модуля не заняли много времени, но документация по BasicLinux предложила сперва попробовать загрузить модуль 8390. Т.к. мой Mac G3 работал сетевым экраном с поддержкой NAT (ipchains) для доступа в Сеть через dialup, то для подключения к сети достаточно было перенести Vectr'у в ту же комнату и подключить. После небольшой мозговой атаки и чтения страниц справочного руководства по route, я наконец понял в какой бубен мне нужно постучать, чтобы заставить Skeeter (так я стал называть Vectra) говорить по сети с внешним миром. Скачивание пакетов X11 напомнило мне, что существуют сети и помедленней, чем мой dialup. Это был один из тех немногих случаев, когда я был рад тому, что у меня нет широкополосного подключения 7, иначе я бы чувствовал себя обманутым. Но, в конечном счёте, я заполучил всё, что мне было нужно на жёсткий диск и приступил к конфигурированию X11. Пошуровав в сети в поисках помощи, я выяснил, что утилита SuperProbe обнаружила, что Vectra имеет встроенное видео и мой монитор поддерживает только режим 640x480. Во второй вечер, я получил работающий GUI и переключился в рекомендуемый для таких случаев icewm. Пейджер от icewm и его небольшой размер заставляют узкий экран выглядеть очень прилично, если не сказать приятно. Но если быть справедливым, то экран rxvt в 35 строк лучше, чем 25 строк текстовой консоли для работы с текстом, так что я доволен. НапоследокС работающей сетью и графическим интерфейсом пришло время заканчивать настройку. Сейчас вся система занимает на жёстком диске около 21Мб (113Мб ещё свободно). Прибавьте сюда пакеты компилятора и занимаемый объём увеличивается до 35Мб. Добавление пакетов, нужных для сборки groff и gawk, плюс сами откомпилированные приложения и вот уже занято более 60Мб. После установки программ и удаления директорий, содержащих исходники я поджал используемое пространство до 57Мб. И раньше печатая по сети через lpr на совместно используемом принтере, я по-быстрому сделал несколько тестовых документов в groff и отправил их на лазерный USB-принтер, подключенный к G3. На этом этапе, Skeeter уже умел делать всё, что я для него планировал. Мне хотелось бы монитор с большим разрешением, и возможно хорошо было бы собрать из исходников графический веб-браузер Chimera 1.x, но этого не было в списках первой необходимости. Поиски собственной "экологической ниши"Уже готовый для того, чтобы служить "пишущей машинкой" (доказательство -- эта статья), Skeeter может подключаться к MUD и использоваться для развлечений (представьте себе трёх человек делящих между собой dialup -- двух использующих telnet, и третьего просто читающего почту через броузер, и никто не жалуется, что связь становится медленной). Rouge очаровал моего сына и его друзей, чем удивил моего друга, который не понимает как может быть интересной игра без графики! Skeeter может использоваться как удалённый дисковод. У iMac (там теперь стоит MacOS X) его уже нет, точнее то, что осталось, представляет из себя что-то непонятное. Поэтому если нам нужно прочитать или записать данные на дискету, мы обращаемся за помощью к Skeeter'у. В будущем он может стать сервером печати, ему это вполне по силам. Итак, я считаю, что эксперимент удался. Благодаря инвестициям в десять долларов и напряжённому труду в поте лица своего, я получил ещё один работающий компьютер и приобрёл новые навыки. Larry KollarРаботу Larry можно охарактеризовать, как "технический писатель", но в душе он мечтает однажды стать настоящим BOFH 10. На работе он умеет находить время для написания скриптов настройки ведомственных Linux-серверов (конечно же "маков") и отгоняет орды завистливых IT-сотрудников, смотрящих жадными глазами на его G3. Дома, у подножия гор Джорджии, он делает всё, что может для того, чтобы сохранить жену, двух детей и четыре компьютера здоровыми и счастливыми.
Copyright (C) 2002, Larry "Dirt Road" Kollar. |
Вернуться на главную страницу |