Устанавливаем и оптимизируем Linux

Алексей Кошелев

 

Установка

Оптимизация и настройка Linux

Итог

 

То, о чем пойдет речь, является весьма банальным с точки зрения опытных администраторов, хотя будет весьма полезно людям, пусть даже и знающим компьютер, которым пришлось «поднимать» машину. Вообще, опытный программист не всегда является опытным пользователем, хороший пользователь не всегда умеет программировать, а конфигурировать компьютер и тем более работать с сетью, наверное, не сможет ни тот ни другой. Проблема не в том, что это сложно, а в том, что появляется иная специфика. Конечно, делать компьютер для себя — просто. В крайнем случае просто некого винить. Но если это сервер, то его будут использовать многие. Когда вокруг, что называется, все свои, то еще ничего, но даже и тогда стоит хорошо подумать, как все должно быть. Если же не все свои, или вообще все не свои, то это хуже. Однако поставим задачу. Первое: сделаем компьютер под Linux, на котором можно работать одному. Под Linux — потому, что я рассказываю про UNIX, а именно Linux, ибо он наиболее распространен для персоналок. В принципе все дальнейшее с легкостью перенесется на многие разновидности UNIX с небольшими оговорками. Второе: попробуем заставить его работать в сети и даже организуем из него что-нибудь серьезное, например WWW-сервер.

Установка

Итак, у нас имеется компьютер и желание установить на него Linux. Он не обязан быть очень мощным, хотя лишняя память и не повредит. Не собираясь обсуждать минимальные требования, скажу лишь, что стандартная на сегодняшний день конфигурация типа PII-300/32MB/4.3HDD/CD/Video/ и т.д. более чем достаточна. Linux — это UNIX, поэтому придется кое-что о компьютере узнать или вспомнить. Будучи мощной и умной системой, Linux никогда ничего не сделает без вашего согласия. Вопросов при установке возникнет немного, но они будут конкретными: размер части диска, которую хочется отдать системе, установка менеджера загрузки, тип видеокарты и т.п.. Чтобы ничего не прерывать, стоит изначально знать: количество и тип жестких дисков, какой из них первый и какой второй, интерфейс, а для SCSI – номер, интерфейс CD-ROM, тип и параметры сетевой карты (если есть, то параметры SCSI-адаптера), тип мыши, ее подключение, параметры видеокарты и монитора. Скажу чуть подробнее о жестких дисках. Если SCSI нет, тогда это обычная персоналка. В ней имеется два IDE-интерфейса, и к каждому можно подсоединить два диска. В эти же четыре устройства должен входить и CD-ROM. По умолчанию компьютер пытается грузиться с дискеты, потом с первого жесткого диска, потом с CD-ROM. Но если жестких дисков два, то не любая материнская плата «догадается» грузиться со второго, даже если вы этого очень хотите. Более того, если у вас один диск, а вы хотите иметь две операционные системы, то объяснить что-либо на уровне BIOS просто невозможно. Однако на диске в первом секторе располагается MBR (Master Boot Record), куда можно записать все, что хочется. Цель этой записи – хранить информацию о разделах диска. При загрузке она считывается, и управление передается загрузчику первого раздела. Первой разумной командой является переход на исполнение загрузчика первого раздела. Но умные создатели зарезервировали достаточно места, чтобы вписать, например, программу, позволяющую выбрать, какой раздел загружать. Это называется менеджером загрузки. Поэтому большинство систем позволяют устанавливать себя не на весь диск, а на какую-то его часть, потом записывают менеджер загрузки и при включении, еще до всех программ, вы и видите некоторое меню выбора. При этом если, скажем, на первой половине диска стоял Windows, а на вторую вы оставили для чего-либо еще, то менеджере загрузки этой системы оставит вам возможность грузить Windows. К сожалению, Windows в этом смысле является досадным исключением, и если его ставить во вторую очередь, то потом будет грузиться только он и придется вручную восстанавливать возможность множественной загрузки. В том же MBR можно записать, что загружаться надо со второго диска. Параметры других устройств не вызывают вопросов, так как их нельзя делить. Затем, можно начинать установку.

Скорее всего, вы будете устанавливать систему с CD-ROM. Конечно, можно и с жесткого диска или по сети, но установка с CD-ROM это наиболее быстрый способ. — В любом случае вам нужна загрузочная дискета с первичным загрузчиком. Для этого следует с помощью команды rawrite переписать образ загрузочной дискеты boot.img с CD-диска. Это легко сделать на любой машине с MS-DOS. Именно с этой дискеты и нужно начать установку: с нее нужно загрузиться. Заметим, что во время установки можно переключаться с помощью комбинаций Alt+F1 (F2...F5) между различными служебными экранами. По умолчанию включается первый экран, содержащий основные диалоговые окна. После включения машины при загрузке с дискеты появится надпись:

boot:

Смело жмите на Enter. После проверки оборудования и нескольких вопросов о том, какой у вас монитор, о раскладке клавиатуры, типе установки, нужно решить, как разделить жесткий диск. Поясню подробнее. Диск делится на физические разделы, и даже одна операционная система может иметь несколько разделов. Это те самые разделы, которые записываются в MBR. Такая ситуация известна и в MS-DOS. Диски C и D всегда лежат на разных физических разделах. Однако любая операционная система позволяет делать так называемое логическое разбиение разделов. Например, в MS-DOS диски D, E и т.д. лежат на одном (втором) разделе, просто он разбит логически, а не физически. В Linux тоже есть и физические, и логические разделы. Напомню, что в UNIX корень всего обозначается как ‘/’. Все находится здесь. В самой корневой директории находится, в сущности, только ядро операционной системы и директория /etc. Программы лежат в /usr, служебные файлы в /var, некоторые программы в /bin, /sbin, файлы пользователей обычно в /home. Иногда выделяют директорию /usr/local, где лежат программы, не относящиеся непосредственно к системе. По моему мнению, разумно примерно следующее распределение места.

 

/ 32MB
/usr 500-1000MB
/usr/local 250-сколько нужно MB
/var 32-сколько нужно MB
/tmp 32-сколько нужно MB
/home сколько нужно MB

 

Из этих разделов физическими целесообразно сделать ‘/’, /usr, /home. Кроме того, нужен раздел для swap. Его величина зависит от объема памяти и выполняемых задач. Естественно, вышеприведенные цифры являются приблизительными. Конечно, их можно уменьшать или увеличивать. Но, к примеру, размер ‘/’ вряд ли должен быть большим, а угадать, сколько нужно места для пользователей, вообще трудно. Величина /var тоже зависит от количества людей. Там же хранится и вся приходящая почта, поэтому советовать что-либо конкретное весьма сложно. Необходимо иметь в виду, что потом изменить параметры разделов без перестановки системы практически нереально. Следующим важным этапом, помимо весьма стандартных вопросов, будет конфигурация X Windows. Это — графическая система для UNIX. Здесь следует точно указать тип и параметры монитора и видеокарты. Далее идет конфигурация TCP/IP. Если машина в сети, то главное — ввести уникальный номер и имя, правильно указать шлюз и DNS, не ошибиться с доменом. Остается только правильно запомнить пароль пользователя root, который вы введете, и в ответ на вопрос записать загрузчик, затем перегрузиться и...

В начало

В начало

Оптимизация и настройка Linux

Вот тут-то все и начинается. Давайте оценим, что у нас получилось. Получился компьютер, который умеет грузиться под Linux, существует один пользователь root; имеется куча установленных программ; где-то лежит графический интерфейс; на экране горит унылая командная строка. Дело за всем остальным, и этого остального довольно много. Первое, что приходит в голову, — это переделать ядро. Разумеется, прийти в голову такое может только тому, кто с этим знаком. Общеизвестно, что никто и никогда ничего не переделывал в Windows. К счастью, такая возможность есть в Linux. Являясь абсолютно бесплатной системой, Linux содержит в поставке свои исходные тексты. В том числе имеется и исходный код для ядра операционной системы. И, естественно, вы можете перекомпилировать его. Спрашивается: а зачем? Ответ прост. Сейчас ядро поддерживает все без разбора. А зачем, например, нужна поддержка SCSI, если его нет? Зачем поддерживать много видеокарт, если она одна. Если же оптимизировать ядро, то оно будет быстрее работать и потреблять меньше ресурсов. Чтобы это сделать, нужно запустить

make config

или

make menuconfig

или

make xconfig

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

make boot
make modules

удалить старые модули, если они есть

rm -rf /lib/modules/version-old

перенести текущие на место старых

mv /lib/modules/version /lib/modules/version-old

и установить новые модули, даже если ни одного не создавалось, командой

make modules_install

Далее необходимо скопировать текущее ядро под другим именем

mv /boot/vmlinuz /boot/vmlinuz.old

скопировать новое ядро

cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz

отредактировать конфигурацию загрузчика /etc/lilo.conf, а именно, добавить информацию о старом ядре:

 

image= /boot/vmlinuz.old
  label=old
root=/dev/hda1
read-only

 

Это нужно, поскольку возможны ошибки в новом ядре и должна быть гарантия при загрузке, так что вы сможете загружать как старое, так и новое ядро. Далее нужно собственно перегрузиться и тестировать ядро. Хочется особо предостеречь новичков: не нужно делать того, в чем вы не уверены, особенно если нет времени на перестановку системы. А если все-таки делаете, то не забывайте оставлять исходное ядро.

После того как все вышеописанное завершено, вы имеете дело с оптимизированной системой. Однако предстоит кое-что сделать с остальным программным обеспечением: настроить графический интерфейс, мышь. После этого работать в X Windows будет легко. Итак, у вас появилась возможность работать с удобными графическими программами. Но для большей уверенности еще стоит отредактировать /etc/sendmail.cf,/etc/hosts.allow. Первый файл задает параметры программы sendmail, а второй управляет доступом к интерфейсам. Возможно, вы хотите поставить Web-сервер. По умолчанию его стартовая страничка находится в /home/httpd/html/index.html. Также вы можете добавить что-либо в файл /etc/rc.d/rc.local, который выполняется при загрузке. Тем самым кое-что можно запускать автоматически.

Доработанная таким образом система уже позволяет с оптимизмом смотреть вперед. Однако есть весьма существенный недостаток: всего один реальный пользователь – root. Это опасно даже если это ваш персональный компьютер и вы работаете на нем один. Прежде всего потому, что, работая таким образом, вы имеете очень много прав, и можете случайно что-нибудь испортить, стереть, изменить. Если это сервер, то вам просто необходимо создавать пользователей. Это тоже повод для размышлений, хотя, в отличие от дисков, тут все поправимо. В UNIX любой файл имеет три атрибута: чтение, запись, исполнение. Также есть три градации: все пользователи, группа, сам пользователь. У файла есть хозяин: пользователь и его группа. Атрибуты выглядят следующим образом:

aaaggguuu user group filename

где поля a (all), g (group), u (user) могут иметь значения r, w, x, то есть чтение, запись и исполнение. Например, запись

---r-xrwx

означает, что все пользователи не имеют прав на файл, пользователи из группы могут его читать и исполнять, а сам пользователь может делать все. Из этого следует, что, правильно объединив пользователей в группы, можно эффективно управлять доступом к файлам и директориям. Чтобы создать пользователей, используйте панель управления или команду adduser. После того как пользователи созданы и к тому же настроены параметры остальных программ, можно на деле начинать работать. Конечно, мы не обсудили настройку принтера, SLIP и PPP интерфейсов и наверняка многое другое, но зато есть пользователи, что, по крайней мере, даст им возможность работать.

Ясно, что в итоге все равно чего-нибудь может не хватать. Не все программы есть на диске в виде rpm-файлов. Однако ситуацию исправить весьма легко, ибо в Интернете есть довольно много серверов, с бесплатными программами. Иногда они уже скомпилированы, но чаще лежат в виде исходных текстов. Это не должно вас пугать, так как их писали люди умные и поэтому сам текст редко приходится редактировать. Конечно, навык программирования на C или C++ не повредит (именно на этих языках чаще всего пишут исходники), но в большинстве случаев этого не нужно. Обычно в архиве имеется файл Configure, который запускается и определяет параметры вашей системы. Он же модифицирует Makefile. Чтобы установить такую программу, чаще всего необходимо произвести следующие действия:

  • скачать архив по сети;
  • разархивировать все в отдельную директорию;
  • запустить скрипт Configure;
  • запустить программу make, может быть с параметрами;
  • запустить make install.

Последняя операция обычно требует привилегий пользователя root. Конечно, для компиляции нужен компилятор, но он входит в поставку Linux. Обычно это gcc. Если вы никогда с таким не встречались, стоит записать некоторые адреса:

ftp://prep.ai.mit.edu

ftp://ftp.nc.orc.ru

ftp://ftp.funet.fi

Заходя на эти ftp-серверы, вы должны будете ввести в качестве имени пользователя anonymous, а в качестве пароля — свой почтовый адрес (имеется в виду электронная почта).

Вот, собственно, и все. Система стоит, пользователи есть, программы установлены. Таким образом, переход от персоналки к серверу произошел крайне незаметно. Компьютер будет работать в сети, как только вы подключите сетевой провод. Хочется дать еще несколько советов. Перезагрузка с новым ядром, в сущности, может стать последней. Не в том смысле, что больше уже ничего не загрузится, а в том, что впредь не нужно будет перезагружать машину. Это очень удобно, особенно если на ней почта и WWW-сервер. При серьезном отношении к нему компьютер будет всегда включен. В дальнейшем администрированием не нужно особо увлекаться, ибо лучшее – враг хорошего. Нужно просто внимательно создавать пользователей, следить за тем, кто в какой группе и как распределены права. Ни в коем случае нельзя удалять служебных пользователей типа bin, system, daemon и т.п.. И, конечно, нужно помнить или записывать все, что делалось с системой, чтобы знать, что именно в крайнем случае следует исправлять.

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

В начало

В начало

Итог

Итак, просуммируем полученные результаты. Если у нас есть сетевая карта, мы имеем следующее. Получен компьютер с операционной системой типа UNIX. Тем самым автоматически получена многозадачная система с поддержкой неограниченного числа пользователей. Пользователи имеют возможность работать с этим компьютером в терминальном режиме в любой точке с любой машины, если она подключена к сети Интернет. Также можно делать ftp, чтобы забирать файлы. Если установлен WWW-сервер, то через WWW о вас может узнать весь мир. Кроме того, люди могут непосредственно работать за этим компьютером, наслаждаясь удобством графического интерфейса. Если есть модем, то есть и возможность телефонного подключения. По-моему, все обстоит весьма неплохо.

Но, несомненно, за системой надо следить. Будучи очень «аккуратной», сама система пишет на диск массу log-файлов, которые было бы хорошо регулярно просматривать, так как это связано с безопасностью системы. Скорее всего пользователю root будут приходить письма, если они адресованы на эту машину, а такого пользователя нет, а также письма от внешних устройств, если произошел сбой. Кроме того, немаловажно командой last просматривать вхождения в систему. Если проблема безопасности стоит достаточно остро, то необходимо установить Secure Shell, чтобы пароль изначально приходил зашифрованным. Не помешает почаще делать BackUp файлов, чтобы потерь было меньше.

В следующий раз я постараюсь дать некоторую полезную информацию о взаимодействии Windows и UNIX, так как чаще всего именно такая «смесь» реально имеется в сетях.

КомпьютерПресс 3'2000