О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

01.08.2008

Slackware: какая она была

2000 г

Дистрибутив Slackware разрабатывается, начиная с 1993 г., Патриком Фолькердингом. Текущая его версия - 7.1. В ftp-варианте она распространяется в виде трех CD-дисков - инсталляционного, содержащего собственно систему, дисков с дополнительными программами и с исходными текстами. Коробочная версия от Walnut Creek насчитывает 4 CD. Ее распространяет в России, в частности MediaHouse. Для функционирования системы необходим только первый из них. Дистрибутив можно приобрести через службы онлайновой торговли по цене около 10-20 долларов. Кроме того, iso-образы дисков доступны на многих ftp-серверах, список которых - на www.slackware.com. Где, кроме того, регулярно появляются обновления текущей версии.

Дистрибутив Slackware заслуживает несколько более подробного описания, чем все остальные. Потому что установка и конфигурирование его автоматизированы в наименьшей степени, и практически все действия требуется проводить вручную. С одной стороны, это несколько затрудняет его установку и освоение. С другой - позволяет лучше понять смысл многих действий, в других дистрибутивах завуалированный графическим интерфейсом инсталляционных программ и конфигурационных утилит.

Типичная установка Slackware осуществляется с CD ROM и предполагает изготовление двух загрузочных дискет (boot - собственно загрузочная, и root - корневая). Теоретически можно обойтись без них, так как инсталляционный диск является загрузочным. Практически, однако, при не очень стандартной конфигурации компьютера, загрузочные дискеты являются необходимостью.

В дистрибутиве Slackware (как, впрочем, и любом другом) образы загрузочных дискет для компьютеров различных конфигураций (с интерфейсом IDE или SCSI, с поддержкой PCMCI, и т. д.) можно найти в каталогах /bootdisks144 и /boot/bootdisks12 (для 3- и 5-дюймовых дисководов, соответственно), корневых дискет - в каталоге /rootdisks. Для изготовления дискет используется DOS-утилита RAWRITE (здесь и далее в верхнем регистре даются команды для DOS, в нижнем регистре - команды Linux). Она расположена в каталоге /dosutils; впрочем, в Slackware копии этой программы предусмотрительно помещены также и в каталоги с образами дискет - /bootdisks144, /bootdisks12 и /rootdisks. Формат запуска команды - обычный для DOS

RAWRITE ФАЙЛ_ОБРАЗА ЦЕЛЕВОЙ_ДИСКОВОД

Разумеется, верхний регистр необязателен - ведь DOS их не различает, и приведен здесь только для унификации.

Инсталляция Slackware происходит в текстовом режиме. Она начинается с процедуры разбиения диска на разделы, которая осуществляется с помощью программы fdisk (которая является непременным компонентом любого дистрибутива). Процедура эта, не смотря на устрашающие комментарии к ней, приводимые в литературе, не сложна и не опасна для жизни. В частности, потому, что в любой момент можно получить как справку по ней, так и информацию о существующих или вновь созданных разделах. Воспользовавшись случаем, расскажу, какие дисковые разделы вообще необходимы для работы Linux - эти сведения не помешают при использовании любого дистрибутива.

Однако прежде нужно сказать следующее: здесь и далее предполагается. что система устанавливается на "чистую" машину, на которой не предполагается использование какой-либо иной операционной системы. Как будет показано в одной из следующих глав, это не исключает возможности запуска программ для Windows (или другой операционки), используя механизм виртуальной машины. Если все же хочется установить реальный Windows в собственный раздел, или на диске уже имеется установленная система (готов спорить на коньяк, что угадаю, какая), требуются некоторые предварительные действия.

В первом случае все просто. Стандартными средствами DOS/Windows создается раздел соответствующего типа (скажем, FAT32 или FAT16 - по ряду соображений нецелесообразно устанавливать Windows NT/2000 в раздел NTFS) и в него обычным способом устанавливается то, что нужно. Это должно предшествовать установке Linux, так как Windows иногда (хотя - не всегда) при инсталляции имеет обыкновение приводить загрузочный сектор диска в правильное, по ее мнению состояние. Что может сделать невозможной последующую загрузку Linux.

Во втором случае, если на диске кроме системы имеются и данные (или уж очень лень переустанавливать Windows - надоело за время пользования им) нужно прибегнуть к т. н. неразрушающему переразбиению диска. Для этого в любой дистрибутив Linux входит штатное средство - DOS-программа FIPS (помещаемая в каталоге /DOSUTILS). Она позволяет уменьшить размер раздела FAT16 или (в современных своих версиях) FAT32, но не HTFS (если вы установили Windows NT/2000 в этот раздел, придется воспользоваться коммерческой программой вроде Partition Magic).

Для этого требуется дефрагментировать (обязательно!) диск или раздел, подлежащий усекновению, загрузиться в режиме эмуляции DOS, лучше - с дискеты, на которую предварительно скопирована программа FIPS, и запустить ее в командной строке. После этого следует вопрос - отвести ли все свободное место под новый раздел. Разумеется, этого делать не следует, ведь вы сохраняете Windows не для того, чтобы не иметь возможности с ним работать.

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

Мне не известны случаи разрушения данных при использовании программы FIPS. Однако потенциально это процедура опасная (например, при выключении питания по любой причине). И потому перед этим следует озаботиться архивированием хотя бы данных. Впрочем, привычка к регулярному резервному копированию не является вредной ни в какой операционной системе...

Возвращаемся, однако, к дисковым разделам Linux. Их предполагается создать минимум два - корневой, собственно для Linux с файловой системой, именуемой ext2fs (маркируемой в fdisk шестнадцатиричным номером 83) и раздел подкачки (swap-раздел, аналог области своппинга в Windows) с собственной файловой системой, имеющей 82 номер. Корневому разделу автоматически приписывается точка монтирования /, раздел подкачки точки монтирования не имеет.

Кроме того, целесообразно создать еще два раздела (подробный разговор на эту тему - в одной из следующих глав, а пока поверьте мне, как джентльмену при игре в "очко", на слово): /home (где будут располагаться, в частности, все пользовательские данные) и /usr/local (куда по умолчанию помещается большинство программ, не входящих в дистрибутив, которые вы в дальнейшем будете устанавливать самостоятельно).

Смысл этой операции - тот же, что и в разнесении в DOS/Windows программ и данных на разные логические или физические диски: при переустановке системы (например, вследствие ее фатального разрушения) или модернизации ее достаточно стереть или уничтожить только корневой раздел, сохраняя в неприкосновенности пользовательские программы и данные. Кроме того, это - некоторая дополнительная страховка от ошибочных действий. Которая, впрочем, также не освобождает от необходимости резервного копирования.

В некоторых случаях необходим еще один раздел - загрузочный (/boot), объемом в несколько Мбайт. Дело в том, что ядро большинства из существующих на сей момент времени дистрибутивов может быть загружено только с первых 1023 цилиндров диска. Соответственно, при дисках большего объема, особенно если не создавать дополнительные разделы /home или /usr/local, требуется гарантия. что ядро (которое и представляет содержание раздела /boot) системы попадет в этот предел. Впрочем, ядро текущей версии Slackware может грузиться с любого места физического диска. А к тому времени, как вы будете читать эти строки, думаю, это будет поддерживаться в текущих версиях и всех остальных дистрибутивов.

Разделы программой в Slackware создаются таким образом: после загрузки программы и появления приглашения в командной строке вводится fdisk с указанием дискового устройства (например, hda или hdb - первый или второй физические диски IDE, sda или sdb - то же для дисков SCSI):
fdisk /dev/hda
Появляется предложение ввести буквенный индекс необходимой команды (с указанием в скобках, что команда m вызывает список всех доступных опций. Целесообразно просмотреть его для общего образования. После чего командой p (от print) вызвать список всех существующих дисковых разделов. И убедиться, что таковых не имеется (повторяю, рассматривается случай чистого диска).

Теперь командой n (от new) создаем первый раздел, для определенности - корневой. После ввода его номера (1-го, разумеется) нас спросят, хотим ли мы видеть его первичным (primary) или расширенным (extended). Если нам не требуется более четырех дисковых разделов, все их можно сделать первичными. Если требуется больше разделов - какие-то из них придется делать расширенными, так как более четырех первичных разделов на одном физическом устройстве содержаться не может.

Затем нам предлагают указать первый цилиндр нового раздела. По умолчанию - это цилиндр 1 для чистого диска или первый свободный - для диска частично занятого. Чтобы согласиться с этим (а не соглашаться - оснований нет), достаточно нажать Enter.

После чего будет предложено ввести последний цилиндр раздела. По умолчанию это последний физически цилиндр, что нас, скорее всего, не устроит. Однако высчитывать потребные цилиндры нет необходимости - достаточно указать требуемый объем диска в форме +XXXXMb (не забыв ни про +, ни про Mb - иначе можно получить неизвестно что, вплоть до диска размером в XXXX байт).

Раздел (с файловой системой 83, по умолчанию) создан. Чтобы убедиться в этом - даем команду p. И переходим к созданию раздела подкачки. процедура эта полностью аналогична, но требует дополнительного действа - смены файловой системы. Для чего даем команду t, выбираем номер требуемого раздела (в нашем случае - 2) и вводим шестнадцатеричный номер 82. Если же мы забыли, какой номер соответствует swap-разделу - посредством команды l (от list) обращаемся к шпаргалке. А заодно узнаем, какое количество файловых систем вообще поддерживает Linux (скажу сразу - изрядное их количество).

Теперь при необходимости повторяем процедуру для других разделов (уже не меняя их тип, сохраняя файловую систему ext2fs). Затем вызываем список созданных разделов командой p и, закурив, внимательно его рассматриваем: а не напортачил ли я чего?

До сих пор мы не совершили ни одного необратимого действия. И если что-то не понравилось, в любой момент можно:
  • командой t изменить тип раздела, вплоть до того, что создать FAT-раздел для обмена данными по сети с машинами, не знающими о существовании Linux; правда, DOS (да и Windows) не признает его за своего, в процессе инсталляции для него можно будет определить точку монтирования и определить как видимый и Linux; ну а потом никто не помешает, загрузившись с DOS-дискеты, окончательно оDOS'ить его командами FDISK и FORMAT;
  • командой d (от delete) истребить любые из созданных разделов, а затем командой n создать новые, иного размера;
  • наконец, командой q (от quit) можно выйти из программы fdisk, не сохранив никаких сделанных нами изменений, выпить сто грамм для храбрости и возобновить процесс; или - отказаться от установки вообще - ведь Linux не тюрьма же народов, право...


Если же размышления привели нас к выводу о правильности своих действий - бестрепетно вводим команду w (от write) для записи сделанных изменений. Вот после этого пути к отступлению действительно отрезаны. И если мы сгоряча уничтожили раздел FAT, содержащий труд всей предшествующей жизни - хвататься за голову и рвать волосы на ней (или где они еще остались) - поздно. Вернуть его обратно не удастся никакими силами.

Однако все не так суицидально. Скорее всего мы все сделали как надо (да и данные, если они были, предусмотрительно сохранили). Так что можно спокойно приступать к установке Linux.

Для этого не обязательно даже перезагружаться. Просто запускаем в командной строке (появившейся после выхода из fdisk) инсталляционную программу - setup. И ее помощью сначала последовательно осуществляем следующие процедуры:
  • активизацию и форматирование раздела подкачки;
  • выбор раздела для установки системы;
  • форматирование созданных разделов, кроме swap;
  • выбор источника инсталляции (кроме диска CD, это может быть также жесткий диск, сервер локальной сети или ftp-сервер).


После этого начинается собственно установка. Для чего сначала предлагается выбрать ее тип - нормальный, с записью всех компонентов на жесткий диск, или разного рода облегченные варианты, с запуском части компонентов системы с инсталляционного CD.

Вслед за этим - второй ключевой момент инсталляции, выбор пакетов. В Slackware они разбиты на серии по их назначению. Так, серия A включает в себя базовые средства операционной системы, AP - основные приложения консольного режима, D - средства разработки, включая различные компиляторы, X - базовый набор XFree, XAP - приложения графического режима и т. д. Приложения можно выбирать прямо сериями. А можно - заняться индивидуальным выбором пакетов, благо они сопровождаются краткими описаниями и указаниями на то, являются ли они необходимыми, рекомендуемыми или необязательными.

Можно выбрать также полную установку - это займет около 900 Мбайт. Объем при нынешних дисках не смертельный, но разобраться в изобилии утилит и приложений потом будет нелегко.

Характерной особенностью Slackware, отличающей его от всех других известных мне дистрибутивов, является то, что он не сделает (абсолютно!) ничего, о чем его прямо не попросят. То есть в итоге в системе будет только то, что вы отметили для установки своими руками, и заведомо не будет никакой отсебятины. Что, с одной стороны, хорошо. Но, с другой - Linux существует понятие т. н. зависимости пакетов - то есть пакет x1 для своего функционирования требует обязательного наличия пакета x2, а иногда и x3. Чтобы предотвратить установку заведомо неработоспособных приложений, система осуществляет проверку зависимостей и при нарушении их сообщает, что для установки данного пакета требуется установка другого, и запрашивает разрешение на это.

Покончив (или думая, что покончив) с выбором пакетов, выходим из этого режима. Начинается собственно копирование файлов. При этом обязательные компоненты (такие, как ядро) системы копируются в один присест. А при переходе к дополнительным пакетам у нас запрашивают подтверждения на установку каждого из них. Или же - сообщается о неудовлетворенных зависимостях и даются рекомендации по их устранению. На современных машинах процедура копирования занимает, в зависимости от количества пакетов, не более получаса.

Завершив копирование пакетов на диск, система запрашивает, какой из образов ядра устанавливать (обычно следует выбирать тот же, с которого делались загрузочные дискеты - он заведомо работоспособен в вашей конфигурации). После чего происходит переход к конфигурированию установленной системы.

Первый шаг в этом направлении - вопрос о наличии модема, и в случае положительного ответа, его конфигурирование.

Затем - вопрос о том, какой экранный шрифт использовать в консольном режиме. Далее - как осуществлять загрузку Linux. После чего конфигурируется мышь, определяется часовой пояс для системных часов, и, наконец, оконный менеджер по умолчанию. Наконец - выход из программы установки и перезагрузка системы.

Как можно заметить, в ходе установки не было никакой настройки системы X Window - это тоже характерная черта Slackware, отличающая его от большинства современных дистрибутивов. Предполагается, что такая настройка будет выполнена после инсталляции.

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

Я написал о установке и конфигурировании Slackware довольно много, но далеко не все. На самом деле она имеет много тонкостей. Детальное и предельно ясное описание всего процесса, в том числе и перекомпиляции ядра, иллюстрированное многочисленными примерами конкретных ситуаций, можно найти в книге создателя этого дистрибутива - Патрика Фолькердинга и его соавторов (библиографическое описание и аннотация ее - в приложении). Если вы всерьез собираетесь использовать Slackware - книга эта незаменима.