Linux разное

         

Администрирование


Эта глава представляет обзор функций администрирования системы Linux, включая ряд особых функций, предназначенных исключительно для администратора системы.

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

Мы постараемся обсудить здесь наиболее важные вещи, связанные с администрированием, о котором вы должны знать при использовании Linux, чтобы не испытывали неудобств при работе с ОС. Чтобы быть не слишком болтливыми и приятными собеседниками, мы и раньше рассматривали только основные черты, пропуская многие важные детали. Вам следует прочитать книгу " Linux System Administrator's Guide", если у вас относительно Linux серьезные намерения. Это поможет вам лучше понять как там все происходит, и как там все взаимодействует. В крайнем случае, стоит все это просмотреть, чтобы знать что в книге содержится и какой помощи вам следует от нее ожидать.



Аппаратные проблемы


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

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



Архивация и компрессирование файлов


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



Борьба с глюками


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

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



Что делать при ЧП




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

Linux не является нестабильной (прим. переводчика: так в оригинале)

версией UNIX. Действительно, у меня было значительно меньше проблем с зависанием системы, чем с коммерческими версиями UNIX на многих платформах. Linux также выигрывает от большого расположения к нему крутых программистов, которые могут помочь выпутаться из сложной ситуации.

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

Очень редки случаи, когда после краха системы требуется переинсталляция. Многие начинающие пользователи случайно удаляют некоторые важные системные файлы и немедленно бегут за инсталляционным диском. Это не "Боже мой"! Прежде чем применять такие отвратительные меры, исследуйте проблему и попросите других помочь ее решить. В большинстве случаев вы можете восстановить систему с дискеты сопровождения (maintenance diskette).



Что все это значит


Мы не можем до последней детали расписать вам, как эксплуатировать систему. Большая часть философии зависит от того, как вы используете систему. Если у вас много пользователей, то это сильно отличается от того, когда их мало, или вообще вы один. Но при любом раскладе очень полезно задуматься, что в данной конкретной системе действительно означают слова "системный администратор" (или "администратор системы").

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

Наконец, быть системным администратором, это невесть что. При этом не имеет значения, опекаете вы маленький 386-ой или суперкомпьютер Cray. Знание заветного пароля root не принесет вам денег и славы; оно поможет сопровождать систему и поддерживать ее работоспособность. Вот так.



Дисководы и разделы под Linux


Многие дистрибутивы предполагают ручное создание разделов Linux с использованием программы fdisk. Другие могут автоматически создавать разделы. В любом случае вы должны знать о существовании разделов и имен дисководов. Дисководы и разделы под Linux имеют другие имена, по сравнению с другими операционными системами. Под MS-DOS дисководы гибких дисков именуются A:

и B:, в то время, как разделы жесткого диска именуются C:, D:, и т.д. В Linux соглашение о именах совсем другое.

Драйверы устройств,находящиеся в каталоге /dev, используются для общения с устройствами системы (такими, как жесткий диск, мышь и т.п.)

Например, если у вас есть мышь, вы имеете к ней доступ через драйвер /dev/mouse. Дисководы гибких дисков, жестких дисков и отдельные разделы имеют индивидуальные драйверы. Пока можете не беспокоиться относительно интерфейса; пока важно только понять, как именуются различные устройства при их использовании.

Таблица 2.1 содержит имена различных драйверов.

Несколько замечаний по поводу этой таблицы. Обратите внимание, что /dev/fd0 соответствует первому дисководу (A: для MS-DOS) и /dev/fd1 соответствует второму дисководу (B:).

SCSI-драйверы жестких дисков названы иначе, чем другие драйверы. Драйверы IDE, MFM и RLL доступны через устройства /dev/hda, /dev/hdb и т.д. Индивидуальные разделы на дисководе /dev/hda будут /dev/hda1, /dev/hda2 и т.д. А SCSI-драйверы именуются /dev/sda, /dev/sdb, и т.д., с разделами, именуемыми /dev/sda1 и /dev/sda2.

Вот например. Предположим, что у вас один IDE-дисковод с тремя первичными разделами. Два первых выделены под MS-DOS, а третий раздел - расширенный, содержащий два логических раздела под Linux. Устройства, соответствующие этим разделам, будут:

Первый раздел MS-DOS (C:) /dev/hda1 Второй раздел MS-DOS (D:) /dev/hda2 Расширенный раздел /dev/hda3 Первый логический раздел Linux /dev/hda5 Второй логический раздел Linux /dev/hda6

Обратите внимание, что пропущен /dev/hda4, он соответствует четвертому первичному разделу, которого нет в этом примере. Логические разделы именуются, начиная с /dev/hda5.


Устройство Имя Первый дисковод (A:) /dev/fd0 Второй дисковод (B:) /dev/fd1 Первый жесткий диск (весь) /dev/ hda Первый жесткий диск, первичный раздел 1 /dev/hda1 Первый жесткий диск, первичный раздел 2 /dev/hda2 Первый жесткий диск, первичный раздел 3 /dev/hda3 Первый жесткий диск, первичный раздел 4 /dev/hda4 Первый жесткий диск, логический раздел 1 /dev/hda5 Первый жесткий диск, логический раздел 2 /dev/hda6 .. Второй жесткий диск (весь) /dev/hdb Второй жесткий диск, первичный раздел 1 /dev/hdb1 .. Первый SCSI драйвер диска (весь) /dev/sda Первый SCSI драйвер диска, первичный раздел 1 /dev/sda1 .. Второй SCSI драйвер диска (весь) /dev/sdb Второй SCSI драйвер диска, первичный раздел 1 /dev/sdb1 .. Табл. 2.1: Имена разделов Linux


Дистрибуции Linux


Поскольку Linux относится к свободно распространяемым программам, не существует организации или личности, отвечающей за его сопровождение. Поэтому каждый волен формировать и распространять дистрибутивы Linux, находясь в рамках GPL (General Public License). В результате, множество вариантов дистрибутивов Linux можно взять на FTP-серверах или по электронной почте.

Поэтому вы сталкиваетесь с проблемой, какой дистрибутив Linux вам нужен. Дистрибутивы бывают разные. Есть "всеобъемлющие" дистрибутивы, содержащие все, что может использоваться в системе. Другие дистрибутивы Linux "маленькие", предназначены для пользователей, не обладающих неисчерпаемыми запасами дискового пространства. Многие дистрибутивы содержат только базовые программы Linux и предполагают в дальнейшем самостоятельную инсталляцию больших пакетов, вроде X Window System. (В Главе 4 мы опишем, как это делается).

В Приложении А содержится список дистрибутивов Linux, доступных по Internet и электронной почте.

Как выбрать из возможных дистрибутивов? Если у вас есть доступ к новостям USENET или другой системе компьютерных телеконференций, вы можете спросить мнение тех людей в сети, кто уже имеет опыт инсталляции Linux. Еще лучше - попросить помощи у знающего Linux, кого, в свою очередь, знаете вы. Надо учитывать много факторов при выборе дистрибутива, но мнения различных людей на этот счет различны. Но на самом деле большинство популярных дистрибутивов Linux содержат примерно один и тот же набор программ, так что можно выбирать, не очень мучаясь. В этой книге обсуждаются инсталляции популярных дистрибутивов Linux Slackware и Slackware Pro.



Добавление пользователей


При добавлении пользователя следует совершить несколько шагов. Первое, пользователь должен быть занесен в файл паролей /etc/passwd под уникальным именем и идентификатором. Должны быть описаны идентификатор группы (GID), полное имя и другая информация.

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

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

или adduser, в зависимости от вашего дистрибутива. Страницы руководства для этих программ должны быть достаточно понятными.



Дополнительные процедуры инсталляции


Некоторые дистрибутивы Linux снабжены рядом дополнительных инсталляционных процедур, позволяющих конфигурировать различные пакеты, такие как TCP/IP, X Window System и т.д. Если у вас есть эти конфигурационные опции периода инсталляции, вам может быть будет интересно предварительно прочитать в этой книге об особенностях конфигурации этих программ. Иначе вам следует отложить эти процедуры до тех пор, когда вы не придете к полному пониманию, как конфигурировать программы.

Как хотите, если все идет наперекосяк - плывите по течению и смотрите, что из всего этого получится. Весьма сомнительно, что все, что вы натворите сейчас, нельзя будет переделать потом (впрочем, постучите по дереву).



Файлы установки системы


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

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

захватывает ВК (Виртуальную Консоль) и запускает на ней процесс login. Это позволяет вам входить на каждой ВК. Если /etc/inittab

не содержит процессов getty для конкретной ВК, на эту ВК вы не войдете.

Другой процесс, выполняемый из /etc/inittab - это /etc/rc, главный системный файл инициализации (прим. переводчика: или главный файл инициализации системы - что тоже верно).

Этот файл представляет из себя shell-сценарий, который выполняет любые необходимые команды инициализации во время загрузки, такие например, как монтирование файловых систем (смотрите Раздел 4.8) и инициализации области своппинга.

Ваша система может также выполнять и другие сценарии, например /etc/rc.local. /etc/rc.local обычно содержит команды инициализации, специфичные для вашей системы, такие как установка хост-имени (смотрите следующий раздел ). rc.local может запускаться из /etc/rc или прямо из /etc/inittab.



Группы


Как мы говорили, каждый пользователь принадлежит к одной или более группам. Единственное значение группы замыкается на права доступа к файлу, как вы помните из Раздела 3.9. Каждый файл имеет "групповое владение" (``group ownership''), то есть хранит права доступа, которые определяют, как члены группы могут обращаться с файлом.

Существует несколько групп, определяемых системой, вроде bin, mail и sys. Пользователи не могут принадлежать к какой-либо из этих групп. Эти группы используются для системных файлов. А пользователи, наоборот, принадлежат к специальной группе, например users. Если вам хочется больше проблем, вы можете поддерживать несколько групп пользователей, например student, staff и faculty.

Файл /etc/group содержит информацию о группах. Формат каждой строки следующий

group name:password:GID:other members

Примерами групп могут быть:

root:*:0: users:*:100:mdw,larry guest:*:200: other:*:250:kiwi

Первая группа, root, специальная системная группа зарезервированная для root. Следующая группа, users, для обычных пользователей. Она имеет идентификатор группы (GID) 100. К этой группе имеют доступ пользователи mdw и larry. Помните, что в /etc/passwd каждый пользователь получил (выдаваемый по умолчанию) GID. Но пользователь может принадлежать более, чем к одной группе, путем добавления имен пользователей в другие группы (в строки файла /etc/group). Команда groups

перечисляет, в какие группы вы входите.

Третья группа, guest, для гостей, а other для "других" пользователей. Пользователь kiwi имеет доступ и в эту группу.

Как вы можете видеть, поле "пароль" в /etc/group редко используется. Иногда оно используется для установления пароля на доступ к группе. Это редко бывает нужно. Для защиты привилегированных групп от обычных пользователей (с помощью команды newgroup) установите в поле пароля звездочку ("*").

Команды addgroup или groupadd могут быть использованы для добавления групп в вашу систему. Обычно легче просто самому добавить запись в /etc/group, поскольку не требуется других настроек при добавлении группы. Для удаления группы просто удалите соответствующую запись в /etc/group.



Linux разное


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

Команда

# gzip -9 backup.tar

скомпрессирует backup.tar и оставит вас наедине с backup.tar.gz, скомпрессированной версией файла. Опция -9 говорит команде gzip, что следует использовать максимальную возможную компрессию.

Команда gunzip может быть использована для раскомпрессирования "зазипованного" файла. С аналогичным эффектом вы можете использовать ``gzip -d''.

gzip - сравнительно новый инструмент в кругах, приближенных к UNIX. Долгие годы вместо этого использовалась команда compress. Однако, по нескольким причинам (тут и патентные дрязги относительно алгоритма, и то, что gzip значительно эффективнее) compress оказался не у дел.

Обработанные командой compress файлы заканчивались расширением .Z. Например, backup.tar.Z - это компрессированная версия файла backup.tar, а backup.tar.gz - зазипованная версия. (Чтобы еще надежнее запутать дело, для обозначения зазипованных файлов некоторое время использовалось расширение .z (маленькая ``z''). В настоящее время (прим. переводчика: это для современников автора) официальное расширение - .gz.

Команда uncompress используется для развертывания файла, который был обработан командой compress. Но команда gunzip тоже знает, как обращаться с такими файлами.



Инсталляция Linux


После того, как вы переразбили диск, чтобы выделить место под Linux, вы можете начать инсталляцию. Здесь дано краткое описание процедур:

Загрузите средства инсталляции Linux;

Выполните fdisk под Linux для создания разделов;

Выполните mke2fs и mkswap для создания файловой системы Linux и области своппинга;

Инсталлируйте программы Linux;

Наконец, инсталлируйте либо загрузчик boot-файла LILO на диске, или создайте загрузочную дискету для загрузки новой Linux-системы.

Как мы уже сказали, некоторые шаги могут быть автоматизированы, в зависимости от используемого дистрибутива Linux. Пожалуйста, посмотрите более подробные инструкции в документации.



Инсталляция программ


Наконец вы готовы инсталлировать программы. Каждая дистрибуция имеет для этого свой механизм. Многие дистрибутивы имеют самодокументированные программы, которые помогают пользователю пройти весь путь инсталляции. В других дистрибутивах вы должны примонтировать файловую систему к конкретному каталогу (например, /mnt) и вручную скопировать туда программы. В дистрибутивах на CD-ROM вам может быть дана опция инсталлирования части программ на жестком диске, оставив большую часть на CD-ROM.

Некоторые дистрибутивы предлагают несколько различных путей инсталляции. Например, вам может быть предоставлена возможность инсталлировать прямо из раздела MS-DOS вашего жесткого диска вместо дискет. Или вы будете иметь возможность инсталлировать по TCP/IP через FTP или NFS. Детали смотрите в документации на ваш дистрибутив.

Например, дистрибутив Slackware требует от вас только создания разделов с помощью fdisk, возможно, создания области своппинга с помощью mkswap и swapon (если у вас RAM 4M и меньше), а затем запуска программы setup. setup представит вам меню с объяснениями. Использование setup в деталях описано ниже.

Конкретный метод инсталляции может существенно отличаться в различных дистрибутивах. Мы надеемся, что инсталляция Linux будет происходить с достаточными комментариями системы (что имеет место в большинстве дистрибутивов).



Инсталляция Slackware с setup


Если вы инсталлируете Slackware, после создания разделов (возможно, и области своппинга) используйте команду

# setup

Она предоставит вам меню, с помощью которого будет направлять вас в процессе инсталляции.

Процедура, описанная здесь, соответствует находящейся на корневых дисках color144 и colrlite; другие корневые диски могут иметь несколько отличающиеся процедуры.

Меню setup состоит из следующих пунктов. Используйте стрелки для перемещения по пунктам и нажимайте enter или spacebar при выборе пункта.

Help

Выводит help-файл программы setup.

Keymap

Эта опция позволяет описывать отображение клавиатуры в вашей системе, если у вас не US-клавиатура. Список keymaps (образов клавиатур) будет представлен; выберите соответствующий пункт из списка.

Quick

Позволяет выбирать между режимами ``quick'' (быстро) и ``verbose''(с подробными комментариями). ``Verbose'' - режим, устанавливаемый по умолчанию, рекомендуется, если только вы не занимались уже этим десятки раз.

Make tags

Позволяет экспертам по инсталляции Slackware создавать настроенные tag-файлы. Это необходимо только для настройки инсталляционной процедуры; но это все не ваша забота.

Addswap

Это будет первый пункт, который выберет большинство пользователей при инсталляции Slackware. Будет предъявлен список доступных разделов для своппинга (эти разделы будут типа ``Linux swap'' как наборы в fdisk). Вы сможете описать, какие разделы вы хотите использовать для области своппинга. Затем вам будет задан вопрос, хотите ли использовать mkswap для этих разделов.

Если вы уже выполнили mkswap и swapon (как описано в Разделе 2.3.4) над своими разделами своппинга, то нельзя в setup

выполнять над этими разделами mkswap.

Даже если вы уже выполнили mkswap и swapon, необходимо использовать пункт Addswap меню: это гарантирует, что разделы своппинга будут доступны по завершении инсталляции.

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


Target

Этот пункт позволяет описывать разделы, на которые будет инсталлироваться Linux. Список доступных разделов (с типом ``Linux native'' ("исходный Linux" - описывается командой fdisk) будет отображен и вас попросят ввести имя корневого раздела Linux, например /dev/hda2. Далее вы получите подсказку относительно типа создаваемой файловой системы. Мы предлагаем использовать файловую систему типа ext2fs, как описано в Разделе 2.3.5. Это создаст файловую систему в названном разделе, нечто аналогичное форматированию раздела под MS-DOS. Вы также получите подсказки относительно любых других разделов, которые вы можете захотеть использовать в Linux. Например, если вы создали раздел для /usr (смотрите Раздел 2.2.3), вы сможете описать имя и куда примонтировать раздел (скажем, на /usr или /usr/bin).

! Предупреждение! Создание файловой системы в разделе разрушает данные, находившиеся на этом месте. Убедитесь, что вы не уничтожаете данные, которые следует сохранить. Даже если вы уже создали файловую систему, используя mke2fs (смотрите Раздел 2.3.5), вы должны использовать пункт меню Target

(цель) для описания разделов, в которые будет инсталлирован Linux.

Source

Этот пункт меню позволяет описать, с чего будет инсталлироваться Slackware: с дискеты, жесткого диска или CD-ROM. Если вы инсталлируете с жесткого диска, вам будет задан вопрос, какой раздел выделяется файлам Slackware и какого он типа. Например, Если у вас Slackware-файлы в разделе MS-DOS, введите имя раздела (скажем, /dev/hda1) и выберите MS-DOS FAT в качестве типа. Далее вам будет задан вопрос, в каком каталоге данного раздела можно найти эти файлы. Например, у вас Slackware-файлы, размещенные в каталоге C:\SLACK в вашем разделе MS-DOS, введите

/slack

как местоположение. Обратите внимание, что здесь обычный слэш "/". Если вы инсталлируете с CD-ROM, вас спросят тип используемого устройства CD-ROM, а также, где на CD-ROM находятся файлы. Многие CD-ROM содержат файлы в каталоге /slakware, но это зависит от версии. Если вы инсталлируете Slackware Professional (Slackware Professional - версия Slackware, поставляемая Morse Telecommunications), то используются два каталога CD-ROM. slakware используется для стандартной системы, которая инсталлирует файлы прямо на ваш жесткий диск. slackpro используется на базирующейся на CD-ROM системе, где многие файлы доступны прямо с CD-ROM. Это позволяет сэкономить дисковое пространство, но доступ ко многим файлам заметно медленнее. Некоторые другие поставщики Slackware предоставляют возможности работы прямо с CD-ROM. Но, если у вас есть свободное место на диске, мы не рекомендуем работать со Slackware прямо с CD-ROM. Это медленно.



При инсталляции может быть сообщение Slackware об ошибке монтирования. Это часто говорит о проблеме доступа к жесткому диску или CD-ROM. Если вы увидите такие сообщения об ошибках, посмотрите дополнительную информацию в Разделе 2.5.3.

Disk sets

Эта опция меню позволяет выбрать дисковые наборы, которые вы будете инсталлировать. Как минимум, вы должны инсталлировать дисковый набор A. Для выбора дисковых наборов просто используйте стрелки и клавишу пробела. Обратим внимание, что выбор конкретного дискового набора не означает, что все пакеты диска будут инсталлированы; перед инсталляцией пакетов вам будут выдаваться комментарии ``optional'' или ``recommended.''

Install

Наконец, этот пункт меню непосредственно инсталлирует программы в вашу систему. Можно при этом следовать подсказкам. Большинство пользователей выбирает режим ``normal.'' Для каждого выбранного дискового набора выбираются "нужные" пакеты для инсталляции, что сопровождается подсказками. Если вы инсталлируете с дискеты, то будут выдаваться также сообщения о необходимости вставить следующую дискету.

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

Наиболее типичная ошибка, с которой здесь можно столкнуться - на дискете не обнаруживается нужный файл или ошибка возникает при чтении с дискеты. Последнее сообщение может свидетельствовать о том, что файлы на дискете попорчены или неполны. Любые дискеты, порождающие эти сообщения, должны быть заменены, и вам следует заново инсталлировать дисковые наборы, содержащиеся на этих дискетах. Смотрите также Раздел 2.5.3.

Вы можете также столкнуться с сообщениями об ошибках, при попытке обращения к CD-ROM; убедитесь, что CD-ROM чистый, нет следов от пальцев и т.п.

Configure

Этот пункт меню выполняет пост-инсталляционное конфигурирование системы. Это описывается в следующем разделе.


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


Простейший способ резервирования на дискетах, это использование команды tar.

# tar cvfzM /dev/fd0 /

сделает полную копию вашей системы с использованием дисковода /dev/fd0. Опция ``M'' позволяет копировать на несколько дискет (multivolume backup); то есть, когда одна дискета заполнится, tar запросит следующую. Команда

# tar xvfzM /dev/fd0

может быть использована для полного восстановления. Этот метод может быть также использован для лент (/dev/rmt0).

Существует несколько других программ для осуществления многотомного резервирования. Вам могут пригодиться программы "backflops", которые можно взять на tsx-11.mit.edu.

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

Команда find может быть полезна в выискивании файлов, которые изменились после какой-то даты. Несколько сценариев (командных файлов на shell) для инкрементального резервирования можно найти на sunsite.unc.edu.



Использование дискет в качестве файловых систем


Вы можете создать файловую систему на дискете точно также, как в разделе жесткого диска. Например,

# mke2fs /dev/fd0 1440

создает файловую систему на дискете на /dev/fd0. Размер файловой системы должен соответствовать размеру дискеты. Дискеты high-density 3.5" - размером в 1.44 Mбайт или 1440 блоков. Дискеты high-density 5.25" - размером в 1200 блоков.

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

# mount -t ext2 /dev/fd0 /mnt

примонтирует дискету, находящуюся на /dev/fd0 к каталогу /mnt. Теперь все файлы, находящиеся на дискете, будут находиться в каталоге /mnt вашего жесткого диска. (прим. переводчика: в /mnt непосредственно будет находиться вершина дерева файловой системы дискеты, все остальное опосредовано - ниже по дереву).

``-t ext2''указывает тип файловой системы (ext2fs). Если вы создали другой тип файловой системы на дискете, вам потребуется описать его тип команде mount.

"Точка монтирования" (каталог, к которому вы примонтируете файловую систему) должен существовать, когда вы применяете команду mount. Если он не существует, создайте его с помощью команды mkdir - и все проблемы.

Дополнительную информацию по файловым системам, монтированию и точкам монтирования смотрите в Разделе 4.8.

Важное замечание! Ввод/вывод на дискету буферизируется точно также, как и для жесткого диска. Когда вы меняете (достаете) дискету, вы не должны видеть горящую лампочку дисковода (пока ядро работает с буферами ввода/вывода). Важно, чтобы вы не извлекали дискету из дисковода до ее размонтирования, которое можно выполнить командой

# umount /dev/fd0

Нельзя просто взять и вытащить дискету, как в MS-DOS. При замене дискет сначала размонтируйте одну, а затем примонтируйте вторую.



Использование файла своппинга


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

Если у вас есть инсталлированная система Linux, вы можете использовать следующие команды для создания файла своппинга. Ниже мы собираемся создать файл своппинга размером в 8208 блоков (около 8 Мбайт).

# dd if=/dev/zero of=/swap bs=1024 count=8208

Эта команда создает файл своппинга. Замените ``count='' размером файла своппинга в блоках.

# mkswap /swap 8208

Эта команда инициализирует swap-файл; вновь замените имя и размер своп-файла соответствующими значениями.

# /etc/sync # swapon /swap

Теперь в своппинге будет задействован файл /swap, который мы создали, после синхронизации, которая гарантирует, что файл был записан на диск.

Главная неприятность, связанная с использованием swap-файлов, состоит в том, что доступ к ним происходит через файловую систему. Это означает, что блоки, составляющие swap-файл могут быть не смежными на диске. То есть скорость своппинга при использовании swap-файла ниже, чем при использовании swap-раздела, для которой блоки всегда смежны (последовательны) и запросы на ввод/вывод происходят прямо к устройству.

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

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

Для того, чтобы избавиться от файла своппинга, вначале используйте swapoff

# swapoff /swap

А теперь вы можете смело удалить файл.

# rm /swap

Помните, что каждый файл своппинга (или раздел) может быть размером до 16 Мбайт, но вы можете использовать до 8 файлов своппинга или разделов на своей системе.



Использование LILO


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

LILO может быть также использована, как начальный загрузчик для нескольких операционных систем, позволяя вам выбирать во время загрузки, какую операционную систему (например, Linux или MS-DOS) загружать. Когда вы загружаетесь с использованием LILO, то загружается операционная система, установленная по умолчанию, если вы не нажмете ctrl, alt или shift во время выполнения загрузочной последовательности. Если вы нажмете любой из этих ключей, то вам будет выдана подсказка загрузчика, в ответ на которую вы напечатаете имя операционной системы, которую надо загрузить (например, ``linux'' или ``msdos''). Если вы нажмете tab в ответ на подсказку загрузчика, вам будет выдан перечень доступных операционных систем.

Простой способ инсталлировать LILO - отредактировать файл конфигурации /etc/lilo.conf и выполнить команду

# /sbin/lilo

Файл конфигурации LILO содержит ``stanza''("стансы" - не пугайтесь, это действительно про поэзию). для каждой операционной системы, которую вы желаете загрузить. Лучший способ продемонстрировать это на примере конфигурационного файла LILO config. Нижеприведенные установки для системы, которая имеет корневой раздел Linux на /dev/hda1 и раздел MS-DOS на /dev/hda2.

# Tell LILO to modify the boot record on /dev/hda (the first # non-SCSI hard drive). If you boot from a drive other than /dev/hda, # change the following line. boot = /dev/hda # Name of the boot loader. No reason to modify this # un less you're doing some serious hacking on LILO. install = /boot/boot.b # Have LILO perform some optimization. compact # Stanza for Linux root partition on /dev/hda1. image = /etc/Image # Location of kernel label = linux # Name of OS (for the LILO boot menu) root = /dev/hda1 # Location of root partition vga = ask # Tell kernel to ask for SVGA modes at boot time # Stanza for MSDOS partition on /dev/hda2. other = /dev/hda2 # Location of partition table = /dev/hda # Location of partition table for /dev/hda2 label = msdos # Name of OS (for boot menu)

Стансы первой операционной системы в файле config - это та ОС, которую LILO загружает по умолчанию. Вы можете выбрать другую ОС во время загрузки в ответ на подсказку LILO, как это уже обсуждалось ранее.

Помните, что каждый раз, когда вы изменяете образ ядра на диске, вы должны заново выполнить /sbin/lilo, чтобы изменения отразились в загрузочном секторе вашего диска.

Имейте также в виду, что если вы используете здесь строку ``root ='', нет смысла использовать rdev для установки корневого раздела в образе ядра. LILO установит ее во время загрузки.

Linux FAQ (смотри Приложение A) дает дополнительную информацию по тому, как использовать LILO при загрузке Boot Manager OS/2. (прим. переводчика: The Linux FAQ - Часто Задаваемые Вопросы по Linux.



Использование tar


Команда tar наиболее часто используется для архивации файлов. Формат команды tar

tar <options> <file1> ... <fileN>

где <options> есть список команд и опций для tar, a <file1> ... <fileN> есть список файлов добавляемых в архив или извлекаемых из него.

Например, команда

# tar cvf backup.tar /etc

упакует все файлы, содержащиеся в /etc, в архив tar под именем backup.tar. Первый аргумент команды tar -``cvf', это (внутренняя) "команда" tar. ``c'' указывает tar

создать новый архивный файл. Опция ``v'' заставляет tar выводить имя каждого архивируемого файла. Опция ``f'' говорит, что следующий аргумент - backup.tar - имя созданного архивного файла. Остальные аргументы команды tar - имя файла и имя добавляемого в архив каталога.

Команда

# tar xvf backup.tar

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

Поэтому перед извлечением архивированных файлов важно знать, где файлы следует распаковать. Например, вы заархивировали следующие файлы: /etc/hosts, /etc/group

и /etc/passwd. Если вы используете команду

# tar cvf backup.tar /etc/hosts /etc/group /etc/passwd

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

# cd / # tar xvf backup.tar

поскольку файлы извлечены с сохраненной в архиве тропой

Если вы заархивировали файлы командой

# cd /etc # tar cvf hosts group passwd

имя каталога не сохраняется в архивном файле. Поэтому вы должны выполнить ``cd /etc'' перед извлечением файлов. Вы обратили внимание: то, как вы создали архивный файл сильно влияет на то, в каком месте его следует извлекать. Команда

# tar tvf backup.tar

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



Использование загрузочной дискеты


Многие загружают Linux используя ``загрузочную дискету'', которая содержит копию ядра Linux. В ядре есть информация о корневом разделе Linux, так что ядро знает, где искать на жестком диске корневую файловую систему. (Команда rdev может использоваться для установки корневого раздела в образе ядра; см. ниже). Это тип дискеты, созданной, например, Slackware в процессе инсталляции.

Для создания своей собственной загрузочной дискеты, сначала разместите образ ядра на своем жестком диске. Оно должно быть в файле /Image или /etc/Image. Некоторые инсталляции используют для формирования ядра файл /vmlinux.

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

Зная, где у вас находится ядро, установите корневое устройство в образе ядра на имя вашего корневого раздела командой rdev. Формат команды:

rdev <kernel-name> <root-device>

где <kernel-name>; это имя образа ядра, a <root-device> - имя корневого раздела Linux. Например, для установки корневого устройства в ядре /etc/Image на /dev/hda2 используется команда

# rdev /etc/Image /dev/hda2

rdev может устанавливать другие опции в ядре, такие как взятый по умолчанию режим SVGA, для использования во время загрузки. Используйте ``rdev -h'' для получения помощи.

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

Например, для копирование файла ядра /etc/Image на дискету в /etc/fd0 используйте команду

# cp /etc/Image /dev/fd0

Теперь эта дискета должна загружать Linux.



Концепция работы с пользователями


Система сохраняет различную информацию о каждом пользователе К такого рода информации относится перечисленная ниже.

username

уникальный идентификатор, присваиваемый каждому пользователю в системе. Примеры имен пользователей larry, karl и mdw. Могут использоваться буквы и цифры, а также нижнее подчеркивание и точка. Обычно имена пользователей ограничиваются восемью символами.

user

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

group

ID (или GID) - идентификатор группы это идентификатор группы пользователя. В Разделе 3.9 мы обсуждали права группы; каждый пользователь принадлежит к одной или более группам, определенных системным администратором. Подробнее об этом ниже.

password

Система также хранит в зашифрованном виде пароль пользователя. Команда passwd используется для установки и изменения пароля.

full name

"Полное имя" или "действительное имя" хранится вместе с именем пользователя. Например, пользователь schmoj может иметь действительное имя ``Joe Schmo'' (прим. переводчика: неужели для английского уха оно звучит также красиво, как для русского).

home directory

Домашний каталог - это каталог, в который пользователь начально попадает при входе в систему. Каждый пользователь должен иметь свой собственный домашний каталог, обычно ниже /home.

login shell

Исходный shell - это shell, который запускается для пользователя при его входе в систему. Это, например, может быть /bin/bash и /bin/tcsh.

Файл /etc/passwd содержит эту информацию про пользователей. Каждая строка этого файла содержит информацию об одном пользователе; формат строки имеет вид:

username:encrypted_password:UID:GID:full_name:home_directory:login_shell

Например, это может выглядеть так:

kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

Как видно, первое поле ``kiwi'' - имя пользователя. Следующее поле ``Xv8Q981g71oKK'' - зашифрованный пароль. Пароли в читаемом виде в системе не хранятся. Сами пароли шифруются как секретные ключи. Другими словами, вы должны знать пароль, чтобы его расшифровать. Эта форма шифрации достаточно надежна.


Некоторые системы Linux используют "теневой пароль", в котором информация о паролях хранится в файле /etc/shadow. Поскольку /etc/passwd

всем доступен, /etc/ shadow обеспечивает дополнительный уровень секретности своей недоступностью. Теневой пароль обеспечивает и некоторые другие свойства, вроде прекращения действия пароля и т.д.; мы здесь не будем вдаваться в эти тонкости.

Третье поле, ``102'', - идентификатор пользователя (UID). Оно должно быть уникальным для каждого пользователя. Четвертое поле, ``100'', идентификатор группы (GID). Этот пользователь принадлежит к группе номер 100. Информация по группе хранится в файле /etc/group. Смотрите дополнительную информацию в Разделе 4.4.5.

Пятое поле - полное имя пользователя , ``Laura Poole''. Последние два поля - домашний каталог пользователя (/home/kiwi) и исходный shell (/bin/bash) соответственно. Домашний каталог пользователя не обязательно должен иметь имя, совпадающее с именем пользователя (username). Однако это помогает в идентификации.


Концепция разбиения на разделы


В общем случае жесткие диски разбиваются на разделы, где отдельные разделы выделяются отдельным операционным системам. Например, вы можете сделать на диске несколько независимых разделов: один, скажем, для MS-DOS, другой для OS/2 и третий для Linux.

Если у вас уже есть инсталлированные программы, вам может потребоваться переразбиение диска, чтобы выделить место для Linux. Затем вы создадите на освободившемся месте один или несколько разделов для Linux и области своппинга.

Многие системы MS-DOS используют один раздел, заполняя все дисковое пространство. В MS-DOS этот раздел известен, как C:. Если у вас более одного раздела, MS-DOS дает им имена D:, E: и т.д. Каждый раздел выступает как независимый диск.

На первом секторе диска находится master boot record с таблицей разделов. boot record (загрузочная запись) используется для загрузки системы. Таблица разделов содержит информацию о местоположении и размере разделов.

Существует три типа разделов: первичные, расширенные и логические (primary, extended и logical). Наиболее часто используются первичные разделы. Однако, из-за ограничений на размер таблицы разделов, можно иметь не более четырех разделов на любом диске.

Чтобы обойти ограничение четырех разделов, используются расширенный раздел. Расширенные разделы сами по себе не содержат данных. Они выступают как хранилища логических разделов. Поэтому вы можете создать один расширенный раздел, покрывающий весь диск, и внутри создать много логических разделов.



Локализация аппаратных проблем


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

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

Например, предположим, что система зависла во время загрузки при распознавании платы Ethernet. Вы можете предположить, что имеет место конфликт или это проблема данной платы Ethernet. Простой и быстрый способ определиться - это вытащить плату Ethernet и попытаться вновь загрузиться. Если все пойдет нормально, то (a) плата Ethernet не поддерживается Linux (смотри Раздел 1.8 относительно совместимых плат), или (b) существует адрес или IRQ, конфликтующие с платой.

``Конфликт адреса или IRQ ?'' А это-то, скажите на милость, что еще может значить? Все устройства в вашей машине используют IRQ прим. переводчика: IRQ - Interrupt ReQuest или линию запросов прерывания, чтобы сообщить системе, что система должна для них что-то сделать. Вы можете представить себе IRQ как веревочку, за которую устройство дергает, когда ему надо, чтобы система позаботилась о выполнении какого-то поступившего запроса. Если более, чем одно устройство дергает за эту веревочку, ядро не способно определить, какое устройство нуждается в обслуживании. Вот вам и глюк.

Поэтому убедитесь, что все инсталлированные вами устройства используют уникальные линии IRQ. В общем случае IRQ для устройства может быть установлен с помощью переключения джамперов (jumpers) на плате; детали смотрите в документации на конкретное устройство. Некоторые устройства вообще не используют IRQ, но предполагается, что вы конфигурировали их, так, что они смогут им воспользоваться. (Хорошие примеры тому контроллеры Seagate ST01 и ST02 SCSI).


В некоторых случаях ядро, находящееся на ваших средствах инсталляции, конфигурируется для использования конкретного IRQ для конкретного устройства. Например, в некоторых дистрибутивах Linux ядро предварительно сконфигурировано так, чтобы использовать IRQ 5 для контроллера TMC-950 SCSI, контроллера CD-ROM Mitsumi и драйвер мыши busmouse. Если вы хотите использовать два или более из этих устройств, вам необходимо будет вначале инсталлировать Linux только с одним из этих устройств, подключенным к системе, а затем перекомпилировать ядро, чтобы сменить IRQ, выделенное для другого из них по умолчанию. (Смотри Главу 4 по поводу перекомпиляции ядра).

Другая область, где могут возникнуть конфликты аппаратуры - это каналы DMA (Direct Memory Access) (каналы прямого доступа к памяти), адреса ввода-вывода (I/O) и адреса разделяемой памяти (shared memory addresses). Все вышеперечисленное есть механизмы, через которые система взаимодействует с различными устройствами. Некоторые платы Ethernet, например, используют разделяемую память также как и IRQ в качестве интерфейса с системой. И если они конфликтуют с другими драйверами - система ведет себя непредсказуемо. Вы должны быть готовы к изменению канала DMA, адресов ввода-вывода или разделяемой памяти для различных устройств с помощью переустановки джамперов. (К сожалению, некоторые устройства не позволяют сделать такие переустановки).

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

Таблица 2.2 представляет перечень IRQ и каналов DMA, используемых различными "стандартными" устройствами, стоящими во многих системах. Практически все системы имеют эти устройства, так что вам следует избегать установок IRQ и DMA других устройств на эти значения.

Device I/O-адрес IRQ DMA ttyS0 (COM1) 3f8 4 n/a ttyS1 (COM2) 2f8 3 n/a ttyS2 (COM3) 3e8 4 n/a ttyS3 (COM4) 2e8 3 n/a lp0 (LPT1) 378 - 37f 7 n/a lp1 (LPT2) 278 - 27f 5 n/a fd0, fd1 (floppies 1 and 2) 3f0 - 3f7 6 2 fd2, fd3 (floppies 3 and 4) 370 - 377 10 3 Таблица 2.2: Обычные установки для устройств


Методы инсталляции


Slackware поддерживает несколько вариантов инсталляции. Наиболее популярный - инсталляция из раздела MS-DOS вашего жесткого диска; другой способ инсталлировать с дискет в формате MS-DOS, созданных с дискового набора, который вы переписали.

Если у вас есть Slackware на CD-ROM, вы можете инсталлировать файлы прямо с него. Дистрибутив Slackware Pro от Morse Telecommunications позволяет инсталлировать Slackware так, что многие файлы доступны прямо с CD-ROM. Это может сэкономить много пространства на диске, но некоторые приложения будут работать медленнее.



Модернизация библиотек


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

Если вы увидите сообщение

Incompatible library version (Несовместимая версия библиотеки)

При попытке выполнить программу, вам необходимо модернизировать версию ваших библиотек, которые использует программа. Библиотеки совместимы в обратном направлении, то есть программа, откомпилированная для использования с более ранней версией библиотек, должна работать с новой версией библиотек. А обратное не справедливо.

Самая последняя версия библиотек может быть найдена FTP-серверах Linux. На sunsite.unc.edu они расположены в /pub/Linux/GCC. Файлы "версии" (``release'') должны описывать, какие файлы вам необходимо скачать, и как их инсталлировать. Кратко, вы должны иметь файлы image-version.tar.gz и inc-version.tar.gz, где версия указывает версию инсталлируемых библиотек, например 4.4.1. (прим. переводчика: На момент перевода книги последняя версия была 5.3.9.)

Это зазипованные tar-файлы. Файлы образов содержат образы инсталлируемых библиотек в /lib and /usr/lib. Файл inc содержит include-файлы для инсталляции в /usr/include.

Файл release-version.tar.gz об'ясняет инсталляционную процедуру в деталях (конкретные инструкции для конкретных версий отличаются). В общем случае вы должны инсталлировать библиотечные .a и .sa файлы в /usr/lib. Эти библиотеки используются на этапе компиляции.

Дополнительно, разделяемая библиотека образов файлов libc.so.version инсталлируется в /lib. Это разделяемые библиотеки образов загружаются во время выполнения использующими их программами. Каждая библиотека имеет символическую связь, использующую старшее число версии библиотеки в /lib.

Например, библиотека libc версия 4.4.1 имеет старшую цифру версии 4. Файл, содержащий библиотеку - libc.so.4.4.1. Символическая связь с именем libc.so.4, указывающая на этот файл, также в /lib. Вы должны изменить эту символическую связь, когда модифицируете библиотеки. Например, когда идет смена версий, вы должны изменить символическую связь файла libc.so.4 на новую версию.

Важное замечание! Надо менять символическую связь за один шаг, как показано ниже. Если вы каким-то образом удалили символическую связь libc.so.4 тогда программы, которые зависят от этой связи (включая базовые утилиты вроде ls и cat) перестанут работать. Используйте следующую команду для обновления символической связи libc.so.4, чтобы она указывала на файл libc.so.4.4.1:

# ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4

Вы должны также изменить символическую связь libm.so.version

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



Модернизация других программ


Модернизация других программ, это в основном проблема добычи соответствующих файлов и их инсталляции. Большинство программ для Linux распространяются как зазипованные tar-файлы, включая как исходные, так и выполняемые, или те и другие. Если выполняемые файлы не включены в версию, вам может потребоваться самостоятельно их откомпилировать. Обычно это означает запуск make в каталоге, где находятся исходники.

Чтение группы новостей USENET comp.os.linux.announce - простейший путь, чтобы выловить информацию о новых программах. Так что самый простой способ отыскать какие-то программы, это побродить по FTP-серверам, поскачивать с серверов (ls-lR) индексные файлы и, используя grep, найти желаемые файлы. Если вам доступен архив, это также может помочь. Детали смотрите в Приложении А. (Если у вас нет архива, вы можете по telnet выйти на архивный сервер вроде archie.rutgers.edu, войти как ``archie'' и воспользоваться командой ``help''). Детали смотрите в Приложении А.

Один из удобных источников программ Linux - дисковый образ Slackware. Каждый диск содержит ряд файлов .tgz, просто зазипованных tar-файлов. Вместо переписывания диска вы можете переписать желаемые .tgz файлы из каталогов Slackware на FTP-сервере и прямо их инсталлировать. Если вы используете дистрибутив Slackware, команда setup может автоматически загрузить и инсталлировать полный набор дисков.

И еще раз, обычно не самое умное дело заниматься модернизацией путем переинсталляции новейшей версии Slackware или другого дистрибутива. Если вы таким образом реинсталлируете, вы обязательно уничтожите ваш сегодняшний вариант, включая каталоги пользователей и ваши стандартные настройки. Лучше заниматься модернизацией по частям, то есть, если нашлась программа, которую вы часто используете и которая имеет новую версию, модернизируйте ее. А иначе не волнуйте себя по пустякам. Правило усталого ветерана: "Если само не ломается - не трогай". Если ваша система работает - нет достаточных оснований для модернизации.



Модернизация gcc


Компиляторы gcc C и C++ используются для компиляции программ вашей системы, в первую голову - ядра. Новейшую версию gcc можно найти на FTP-серверах Linux. На sunsite.unc.edu его можно найти в каталоге /pub/Linux/GCC (вместе с библиотеками). Должен существовать файл версии для дистрибуции gcc, детализирующий, какие файлы вы должны переписать и как их инсталлировать.



Модернизация и инсталляция программ


Другая обязанность системного администратора - модернизация и инсталляция новых программ.

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

Ну, так когда желаете заняться модернизацией? Некоторые нутром чувствуют, что заниматься модернизацией пристало тогда, когда появилась новая версия дистрибутива, например, когда появляется новая версия Slackware. Многие пользователи Linux каждый раз при этом полностью переинсталлируют свою систему. Это тоже потеря времени. Обычно изменения от версии к версии Slackware незначительные. Бессмысленно переписывать и переинсталлировать 30 дисков, когда только 10% программ были действительно модифицированы.

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

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

Вы обнаружите, что когда вы модернизируете одну компоненту вашей системы, другие вещи не должны ломаться. Например, большая часть моей системы оставлена со времен древней 0.96 MCC Interim installation. Тем не менее, я использую новейшую версию ядра и библиотек без проблем. Большей частью бессмысленно заниматься модернизациями, чтобы "не отстать от моды". Суета все это. Это вам не MS-DOS или Microsoft Windows. У нас нет серьезных причин обязательно работать на новейшей во все времена версии системы. Если вы осознаете, что вам действительно нужны некоторые вещи из новой версии - тогда модифицируйте на здоровье. А если нет, то лучше не надо. Другими словами модернизируйте только то, что надо, и только тогда, когда надо. Не модернизируйте во имя модернизации.

Наиболее важная часть вашей системы, как возможный об'ект модернизации, это ядро, библиотеки и компилятор gcc. Это три ключевые части вашей системы, и в некоторых случаях они бывают взаимозависимыми. Большая часть остального хозяйства вашей системы и без периодических модернизаций сойдет.



Модернизация ядра


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

Исходные тексты ядра можно раздобыть на любом Linux-овском FTP-сервере (список смотрите в Разделе C). На sunsite.unc.edu, например, исходники ядро находятся в pub/Linux/kernel/. Версии ядра нумеруются с использованием номера версии ядра (kernel) и уровня исправления (patchlevel). Например, kernel version 0.99 patchlevel 11 обычно записывается как 0.99.pl11, или еще проще 0.99.11.

Исходники ядра распространяются в виде зазипованных tar-файлов. ( Часто patch-файлы ("заплаты") выпускаются для текущей версии ядра, которая позволяет модернизировать исходники вашего действующего ядра на основе последнего уровня исправлений, используя программу patch. В большинстве случаев, между тем, обычно проще инсталлировать целиком новую версию ядра. Например, файл, содержащий исходники ядра 0.99.pl11 - linux-0.99.11.tar.gz. ( прим. переводчика: На момент перевода книги существуют следующие серии ядер: 0.1-0.99, 1.0.1-1.0.9, 1.1.1-1.1.95, 1.2.1-1.2.13, 1.3.1-1.3.83. Ядра, принадлежащие серии с четной 2-й цифрой (1.0, 1.2), являются стабильными (то есть не включают никаких экспериментальных кодов). Ядра серии (1.1, 1.3) включают экспериментальные коды (такие как Mobile IP, IP-masquarading и т. п. в серии 1.3). Переводчик, исходя из декларированного автором принципа "от добра добра не ищут", работает в версии 1.2.13 и с нетерпением ждет появления версии 1.4.1 или 2.0.)

Распакуйте этот файл из каталога /usr/src; он создаст каталог /usr/src/linux, который содержит исходники ядра. Вам следует удалить или переименовать существующий /usr/src/linux

перед распаковкой новой версии.

Когда исходники распакованы, вам необходимо убедиться, что две символические связи в /usr/include корректны. Для создания этих связей используйте команды


# ln -sf /usr/src/linux/include/linux /usr/include/linux # ln -sf /usr/src/linux/include/asm /usr/include/asm

Если вы однажды создали эти связи, нет причины создавать их

снова, когда вы инсталлируете следующую версию ядра. (Смотрите Раздел 3.10 по поводу символических связей).

Обратите внимание, что для компиляции ядра у вас в системе должны быть инсталлированы компиляторы gcc и g++ C и C++. Если вы нуждаетесь в более свежих версиях этих компиляторов, смотрите ниже Раздел 4.7.3.

Для компиляции ядра прежде всего выполните cd в /usr/src/linux. Выполните команду make config. Эта команда запросит у вас несколько настроечных опций, таких как "Какой тип файловой системы вы желаете включить в новое ядро". Затем, отредактируйте /usr/src/linux/Makefile. Убедитесь, что определение для ROOT_DEV корректно - оно определяет устройство, используемое в качестве корневой файловой системы во время загрузки. Обычное определение имеет вид:

ROOT_DEV = CURRENT

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

Затем выполните команду make dep для отслеживания всех взаимосвязей исходных текстов. Это очень важный этап.

И наконец, вы готовы компилировать ядро. Команда make Image

скомпилирует ядро и оставит образ нового ядра в файле /usr/src/linux/Image. (прим. переводчика: Начиная с ядер серии 1.2 собранное ядро записывается в каталог /usr/src/linux/arch/i386/boot/Image

(если конечно вы собирали ядро для процессоров серии intel, а не alpha, mips или sparc.)

А команда make zImage скомпилирует скомпрессировнный образ ядра, который раскомпрессирует сам себя во время загрузки, а так занимает на диске меньше места.

После компиляции ядра вы должны либо скопировать его на загрузочную дискету (командой вроде ``cp Image /dev/fd0''), либо инсталлировать его, используя LILO для загрузки с вашего жесткого диска. Дополнительную информацию можно найти в Разделе 4.2.2 .


Монтирование файловых систем


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

Система автоматически монтирует файловые системы на ваш жесткий диск во время загрузки. Так называемая "корневая файловая система" монтируется к каталогу /. Если у вас отдельные файловые системы, например, для /usr - она монтируется на /usr. Если у вас только корневая файловая система, то все файлы, включая содержимое /usr, существуют в этой файловой системе.

Команда mount используется для монтирования файловой системы.

mount -av

Выполняется из файла /etc/rc (файла системной инициализации во время загрузки, смотрите Раздел 4.10.1). Команда ount -av получает информацию о файловых системах и монтирует в соответствии с файлом /etc/fstab. Пример файла fstab

показан ниже.

# device directory type options /dev/hda2 / ext2 defaults /dev/hda3 /usr ext2 defaults /dev/hda4 none swap sw /proc /proc proc none

Первое поле - это устройство (имя монтируемого раздела). Второе поле - точка монтирования. Третье поле - тип файловой системы (например, ext2 для системы типа ext2fs или minix для Minix filesystems). Таблица 4.1 перечисляет различные типы файловых систем, доступных в Linux.

Эта таблица для ядра версии 1.1.37.

Файловая система Имя типа Комментарий Second Extended Filesystem ext2 Наиболее распространенная для Linux Extended Filesystem ext Вытеснена системой ext2 Minix Filesystem minix Файловая система Minix; редко используется Xia Filesystem xia Похожа на ext2; редко используется UMSDOS Filesystem umsdos Для инсталляции Linux на разделы MS-DOS MS-DOS Filesystem msdos Для доступа к файлам MS-DOS /proc Filesystem proc Дает информацию о процессах для ps и т.п. ISO 9660 Filesystem iso9660 Используется большинством CD-ROM Xenix Filesystem xenix Для доступа к файлам из Xenix. System V Filesystem sysv Для доступа к файлам из System V вариант для x86. Coherent Filesystem coherent Для доступа из Coherent HPFS Filesystem hpfs Доступ только на чтение для разделов HPFS (DoubleSpace). Таблица 4.1. Типы Файловых систем Linux


Не все эти типы могут быть доступны на вашей системе; ваше ядро должно иметь соответствующую откомпилированную поддержку. О компиляции ядра смотрите в Разделе 4.7.

Последнее поле файла fstab (options) это было перед Таблицей 4.1 содержит опции монтирования, обычно они устанавливаются в ``defaults''.

Вы можете видеть, что разделы своппинга также включены в /etc/fstab. Они имеют каталог монтирования "tt/none/", и тип "swap". Команда swapon -a выполняемая из /etc/rc

используется для обеспечения своппинга на все устройства, перечисленные в /etc/fstab.

Файл fstab содержит одну специальную запись для файловой системы /proc. Как говорилось в Разделе 3.11.1, файловая система /proc используется для хранения информации о системных процессах, доступной памяти и т.п. Если /proc не примонтирован, такие команды, как ps не будут работать.

Внимание! Команда mount может использоваться только root. Это для обеспечения безопасности системы. Вам не захочется, чтобы монтирование и размонтирование файловых систем зависело от прихоти рядовых пользователей. Есть несколько программных пакетов, которые дают возможность тем самым рядовым пользователям монтировать и размонтировать файловые системы (особенно на дискетах) не затрагивая безопасности системы.

Команда mount -av фактически монтирует все файловые системы, кроме корневой файловой системы (в ранее приведенной таблице - /dev/hda2). Корневая файловая система автоматически монтируется ядром во время загрузки.

Вместо использования mount -av вы можете примонтировать файловую систему вручную. Команда

# mount -t ext2 /dev/hda3 /usr

эквивалентна монтированию файловой системы на /dev/hda3 в примере fstab, рассмотренном ранее.

Вам никогда не следует монтировать и размонтировать файловые системы вручную. Команда mount -av в /etc/rc

позаботится о монтировании файловых систем во время загрузки. Файловые системы автоматически размонтируются командами shutdown или halt перед выключением системы.


Можно вместе


Чтобы заархивировать и скомпрессировать группу файлов, вы можете использовать команды:

# tar cvf backup.tar /etc # gzip -9 backup.tar

Результат будет backup.tar.gz. Для распаковки этого файла используйте обратную последовательность команд:

# gunzip backup.tar.gz # tar xvf backup.tar

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

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

# tar cvf - /etc | gzip -9c > backup.tar.gz

Здесь мы посылаем tar-файл, сформированный из /etc, в файл ``-'', который представляет стандартный выход. Результат по конвейеру поступает на вход команды gzip, которая компрессирует этот файл и результат сохраняет в backup.tar.gz. Опция -c команды gzip говорит, что выход команды gzip посылает результат на стандартный выход, который перенаправляется на backup.tar.gz.

Единственная составная команда, используемая для распаковки этого архива, будет:

# gunzip -c backup.tar.gz | tar xvf -

Опять, команда gunzip раскомпрессирует содержимое файла backup.tar.gz и посылает результирующий файл на стандартный выход. Он по конвейеру передается команде tar, которая читает файл ``-'', что в данном случае олицетворяет стандартный выход.

К счастью, команда tar также содержит опцию z, автоматически компрессируя-раскомпрессируя файлы, используя алгоритм компрессии gzip.

Например, команда (прим. переводчика: одна)

# tar cvfz backup.tar.gz /etc

эквивалентна

# tar cvf backup.tar /etc # gzip backup.tar

Как и команда

# tar xvfz backup.tar.Z

может быть использована вместо

# uncompress backup.tar.Z # tar xvf backup.tar

За дополнительной информацией обратитесь к Руководству по tar и gzip.

4.6 Использование дискет и осуществление резервирования

Дискеты часто используются как средство резервирования. Если у вас нет ленты (стриммера), можно использовать дискеты (хотя они медленнее и, в некотором смысле, менее надежны).

Вы можете использовать дискеты также для хранения отдельных файловых систем - в этом случае вы должны монтировать (mount) дискету для получения доступа к ее данным.



Наборы дисков Slackware


К сожалению, Slackware не имеет полного списка потребностей памяти для каждого набора. Вам потребуется не менее 7 Мбайт для инсталляции лишь серии "A"; очень грубая оценка необходимого дискового пространства - от 2 до 2.5 Мбайт на дискету.

Имеются следующие наборы дисков:

A

Базовая система. Достаточная для начала работы и делает доступными команды elvis и comm (elvis

- текстовый редактор, comm - сравнение файлов). Базируется на ядре 1.0.9 и новом стандарте файловой системы (FSSTND). Известно, что эти диски хорошо размещать на дискетах 1.2M (что не характерно для остальных частей Slackware). Если у вас в распоряжении только дисковод на 1.2M, вы все равно можете инсталлировать базовую систему, сбросив другие диски и инсталлировать их с жесткого диска.

AP

Различные приложения и дополнения, вроде руководства, groff, ispell (GNU and international versions), term, joe, jove, ghostscript, sc, bc, и quota patches.

D

Разработка программ. GCC/G++/Objective C 2.5.8, make (GNU и BSD), byacc и GNU bison, flex, the 4.5.26 C libraries, gdb, kernel source for 1.0.9, SVGAlib, ncurses, clisp, f2c, p2c, m4, perl, rcs.

E

GNU Emacs 19.25.

F

Набор Часто Задаваемых Вопросов (FAQs) и другая документация.

I

Info-страницы для GNU-программ. Документация для различных программ, читаемая с помощью info или Emacs.

N

Сетевые программы. TCP/IP, UUCP, mailx, dip, deliver, elm, pine, smail, cnews, nn, tin, trn.

OOP

Объектно-Ориентированное Программирование. GNU Smalltalk 1.1.1 и Smalltalk Interface to X (STIX).

Q

Исходники Alpha-ядра (во время написания книги - Linux 1.1.18).

TCL

Tcl, Tk, TclX, blt, itcl.

Y

Игры. Набор игр BSD и Tetris для терминалов.

X

Базовая система XFree86 2.1.1 с libXpm, fvwm 1.20 и xlock.

XAP

X-приложения: X11 ghostscript, libgr13, seyon, workman, xfilemanager, xv 3.01, GNU chess и xboard, xfm 1.2, ghostview, и различные X-игры.

XD

Программы работы в X11. X11 библиотеки, сервер linkkit, поддержка PEX.

XV

Xview 3.2 release 5. XView библиотеки, виртуальный и невиртуальный Open Look window-менеджеры.

IV

Interviews библиотеки, include-файлы, doc и idraw приложения.

OI

ParcPlace's Object Builder 2.0 и Object Interface Library 4.0. Обратите внимание, что она работает только с libc-4.4.4, но будет новая версия, как только станет доступным gcc 2.5.9.

T

Системы форматирования TeX и LaTeX.

Вы обязательно должны взять набор "A", остальные по желанию. Мы советуем инсталлировать наборы A, AP и D, а также X, если вы планируете использовать X Window System.



О корнях власти, волшебной шапке и приятных ощущениях.


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



Общие принципы инсталляции


Хотя версии Linux отличаются, общие методы инсталляции состоят в следующем:

(Пере)разбейте на разделы жесткий диск(и). Если у вас уже инсталлирована другая операционная система, вы должны сделать переразбиение, чтобы выделить место под Linux. Это обсуждается в Разделе 2.2.4.

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

Создайте разделы для Linux. После переразбиения и выделения места под Linux, вы создаете на этом месте раздел Linux. Это выполняется программой Linux fdisk. (см. Раздел 2.3.3).

Создайте файловые системы и область своппинга. Вы создадите одну или несколько файловых систем для хранения файлов на вновь созданном разделе. Кроме того, если вы желаете получить область своппинга, то также создадите и его на одном из разделов Linux. (См. Разделы 2.3.4 и 2.3.5).

Инсталлируйте программы Linux в новую(вые) файловую(вые) систему(мы). Далее вас ждет спокойное плавание, если все прошло нормально. (См. Раздел 2.3.6). Позже, в Разделе 2.5, мы опишем, что делать, когда что-то не получается.

Многие дистрибутивы Linux снабжаются инсталляционной программой, которая будет руководить вами в процессе инсталляции и автоматизирует некоторые из описанных шагов. Имейте в виду, что в различных дистрибутивах некоторые шаги могут быть автоматизированы.

Дистрибутивы Slackware для Linux, описываемые в этой книге, потребуют от вас лишь разбиения диска на разделы с использованием fdisk, а также использования setup для выполнения других шагов.

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



Перекачка файлов


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

Различные файлы README, а также SLACKWARE_FAQ. Прочитайте обязательно эти файлы до инсталляции.

Образ bootdisk. Это файл, который вы запишите на дискету для создания загрузочного диска Slackware. Если у вас дисковод на 1.44М (3.5"), найдите в каталоге bootdsks.144. Если у вас дисковод 1.2М (5.25"), найдите в каталоге bootdsks.12.

Вам необходим один из следующих файлов bootdisk.

bare.gz. Это загрузчик с дискет, имеющий только драйвер жесткого диска IDE. (Нет SCSI, CD-ROM или сетевой поддержки). Используйте, если у вас только есть контроллер IDE жесткого диска, а инсталляция по сети или с CD-ROM невозможна.

cdu31a.gz. Содержит драйверы IDE, SCSI и Sony CDU31A/33A.

mitsumi.gz. Содержит драйверы IDE, SCSI и Mitsumi CD-ROM

modern.gz. Экспериментальный загрузочный диск с новым ядром и всеми CD-ROM драйверами, кроме сетевых и Sony 535.

net.gz. Содержит CD-ROM драйвер IDE и сетевые.

sbpcd.gz. Содержит CD-ROM драйверы IDE, SCSI и SoundBlaster Pro/Panasonic.

scsi.gz. Содержит CD-ROM драйверы IDE, SCSI и SCSI

scsinet.gz. Содержит CD-ROM и сетевые драйверы IDE, SCSI, SCSI.

sony535.gz. Содержит CD-ROM драйверы IDE, SCSI и Sony 535/531

xt.gz. Содержит CD-ROM драйверы IDE и жесткого диска XT.

Вам нужен только один образ диска из вышеперечисленных в зависимости от вашей аппаратуры.

Некоторые драйверы конфликтуют друг с другом самым странным образом. И вместо того, чтобы выискивать ошибки в своей аппаратуре, проще использовать загрузочную дискету с конкретными драйверами. Большинству пользователей следует начинать попытки с scsi.gz или bare.gz.

Образ root-диска. Это файл, который вы запишите на дискету для создания инсталляционного диска Slackware. В связи с этим образом посмотрите rootdsks.144 или rootdsks.12 в зависимости от типа дисковода, с которого производите загрузку.


Вам необходим один из следующих файлов:



color144.gz. Инсталляционный диск для дисковода 1.44, использующий меню. Большинству пользователей следует использовать именно его.

umsds144.gz. Версия диска color144 для инсталляции с помощью файловой системы UMSDOS, которая позволяет инсталлировать Linux поверх каталога файловой системы MS-DOS. Этот метод инсталляции обсуждается здесь детально, но он не позволяет переразбивать диск на новые разделы. Позже мы к этому вернемся.

tty144.gz. Инсталляционный диск, ориентированный на терминал, для дисковода 1.44M. Если color144.gz у вас не идет, попробуйте вместо него tty144.gz.

colrlite.gz. Инсталляционный диск, ориентированный на терминал, для дисковода 1.2M.

umsds12.gz. Версия диска colrlite для инсталляции с помощью файловой системы UMSDOS. Смотрите вышеприведенное описание umsds144.gz.

tty12.gz Инсталляционный диск, ориентированный на терминал, для дисковода 1.2M. Используйте этот диск, если у вас есть дисковод на 1.2M и colrlite.gz у вас не идет.

И снова вам необходим лишь один образ диска root, зависящий от типа драйвера загрузочного дисковода.

GZIP.EXE. Это MS-DOS программа, выполняющая компрессию gzip, используемая для сжатия файлов boot и root (расширение имен файлов ".gz" говорит об этом). Она может быть найдена в каталоге install.

RAWRITE.EXE. Это MS-DOS программа, которая записывает содержимое файла (например, образов boot и root) прямо на дискету, не проверяя формат. Вам следует использовать RAWRITE.EXE для создания дискет boot и root. Это можно также найти в инсталляционном каталоге.

Если вы планируете создать дискеты boot и root из MS-DOS, вам понадобятся только RAWRITE.EXE и GZIP.EXE. Если же вам доступна UNIX-станция с дисководом, вы можете создать дискеты в ней, используя команду dd. Посмотрите руководство по команде dd

или посоветуйтесь со специалистами по UNIX.

Файлы из каталогов slakwarea1/,slakwarea2/ и slakwarea3/. Эти файлы создают набор диска ``A'' дистрибутива Slackware. Они необходимы. Позже вы скопируете эти файлы на дискеты в MS-DOS для инсталляции (или вы можете инсталлировать с жесткого диска). Поэтому, когда вы скачаете эти файлы, сохраните их в отдельном каталоге; не перепутайте файлы a1 с файлами a2 и т.п.

Убедитесь также, что вы получили файлы без точек в именах. В FTP используйте команду ``mget *'' вместо ``mget *.*''.

Файлы в каталогах ap1, ap2 и т.д. зависят от инсталлируемых наборов. Например, если вы инсталлируете диск с набором ``X'', берите файлы из каталогов от x1 до x5. Как и для наборов диска ``A'', убедитесь, что файлы при переписывании размещаются в разных каталогах.


Подготовка к инсталляции Linux


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



Подготовка к инсталляции с CD-ROM.


Если у вас Slackware на CD-ROM, вы можете инсталлировать систему, как только вы создали дискеты boot и root. Программы будут инсталлироваться прямо с CD.



Подготовка к инсталляции с дискет.


Если вы хотите инсталлировать Slackware с дискет, вместо жесткого диска, вам нужно по одной чистой дискете, отформатированной в MS-DOS, для каждого диска Slackware, который вы желаете переписать. Дискеты должны быть формата high-density.

Набор диска A (диски A1 - A3) могут быть дискетами как 3.5", так и 5.25". Но остальные наборы дисков должны быть на дискетах 3.5".

Поэтому, если у вас есть только дисковод 5.25", необходимо взять у кого-нибудь на прокат дисковод 3.5", чтобы инсталлировать прочие (кроме A) диски. Или вы можете инсталлировать их с жесткого диска, как это описывалось выше.

Для того, чтобы создать диски, просто скопируйте файлы из каждого Slackware каталога на отформатированные в MS-DOS дискеты, используя команду MS-DOS - COPY:

C:\> COPY A1\*.* A:

Которая скопирует содержимое диска A1 на дискету в дисководе A:. Это следует повторить для всех считываемых дисков.

Нет необходимости каким-либо образом модифицировать или раскомпрессировать файлы диска; вы просто должны скопировать их на дискеты в MS-DOS. Процедура инсталляции Slackware сама заботится о раскомпрессировании файлов.



Подготовка к инсталляции с жесткого диска.


Если вы планируете инсталляцию Slackware прямо с жесткого диска (которая обычно и быстрее, и надежнее, чем с дискет), вам потребуется раздел MS-DOS.

Обратите внимание: Если вы планируете инсталляцию Slackware из раздела MS-DOS, этот раздел НЕ должен быть скомпрессирован с помощью DoubleSpace, Stacker или какой-то другой утилиты MS-DOS. В настоящее время Linux не может прямо читать MS-DOS-раздел DoubleSpace/Stacker. (Вы можете обратиться к ней через MS-DOS Emulator, но это не подходит при инсталляции Linux).

При подготовке инсталляции с жесткого диска создайте просто на жестком диске каталог для размещения файлов Slackware. Например,

C:\> MKDIR SLACKWAR

создаст каталог C:\SLACKWAR для хранения файлов Slackware. Под этим каталогом, используя команду MKDIR, вы можете создать подкаталоги A1, A2 и т.д. для каждого переписанного дискового набора. Все файлы с диска А1 должны быть помещены в каталог SLACKWAR\A1 и т.д.



Получение Linux из других он-лайн источников


Если вы имеете доступ к другим сетям, вроде CompuServe или Prodigy, то в них могут быть свои средства перекачки файлов. Кроме того, существует множество BBS, на которых есть Linux. Список Linux BBS дан в Приложении D. Не все дистрибутивы Linux доступны через эти сети, многие дистрибутивы на CD-ROM распространяются только почтой.



Получение Linux из Internet


Если у вас есть доступ к Internet, простейший способ получить Linux - это по FTP. Если вы не имеете прямого доступа к Internet, вы можете получить Linux через сервис ftpmail по электронной почте. См. приложение C.

В приложении C дан список некоторых FTP-серверов с архивами, содержащими Linux. Один из них - sunsite.unc.edu, где различные дистрибутивы могут быть найдены в каталоге

/pub/Linux/distributions

Многие дистрибутивы хранятся в виде образов дискет. То есть дистрибутив состоит из множества файлов, каждый из которых содержит двоичный образ дискеты. Для того, чтобы скопировать содержимое на дискету, вы должны использовать программу RAWRITE.EXE под MS-DOS. Эта программа копирует поблочно содержимое файла на дискету, не анализируя формат диска. Если у вас есть доступ к UNIX-станции с дисководом, вы можете также использовать команду dd для копирования образа файла прямо на дискету. Команда, вроде dd of=/dev/rfd0 if=foo bs=18k''

осуществит прямое копирование содержимого файла foo на дискету на Sun-станции. Проконсультируйтесь у местных спецов по UNIX относительно использования команды dd.

Программу RAWRITE.EXE можно взять на многих Linux FTP-серверах, включая sunsite.unc.edu, в каталоге

/pub/Linux/system/Install/rawrite

Во многих случаях вы просто считываете множество образов дискет и используете RAWRITE.EXE для каждого образа, чтобы создать дискету. Вы загружаетесь с так называемой "boot"-дискеты и можете далее скидывать систему. Как правило, программы инсталлируются прямо с дискет, хотя некоторые дистрибутивы позволяют инсталлировать из разделов MS-DOS винчестера. Некоторые дистрибутивы позволяют инсталлировать по сети, посредством TCP/IP. Документация на каждый дистрибутив должна описывать допустимые методы инсталляции.

Другие дистрибутивы Linux инсталлируются с дискет в формате MS-DOS. Например, дистрибутив Linux Slackware требует создания с помощью RAWRITE.EXE только дискет boot и root. Остальные дискеты копируются на дискеты в формате MS-DOS командой MS-DOS COPY. Система инсталлируется прямо с дискет MS-DOS. Это избавляет вас от необходимости долго пользоваться RAWRITE.EXE, но предполагает доступность MS-DOS для создания дискет.

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

При перекачке Linux необходимо использовать режим перекачки двоичных файлов (для большинства FTP-клиентов это команда "binary").

В Разделе 2.1.4 описывается получение дистрибутива Slackware по Internet.



Получение Linux по почте


Если у вас нет доступа к Internet или BBS, множество дистрибутивов Linux можно получить по почте на дискетах, лентах, лазерных дисках. В Приложении B дан список таких дистрибуторов. Многие из них принимают оплату по кредитным карточкам и платежным поручениям, так что если вы живете даже не в США или Канаде, вы все равно сможете таким образом приобрести дистрибутив Linux.

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



Получение Slackware


Slackware - популярная дистрибуция Linux, сопровождаемая Patrick Volkerding. С Patrick Volkerding можно связаться по Internet: volkerdi@mhd1.moorhead.msus.edu.

Эта версия легко инсталлируется и достаточно полна. Она может быть получена по Internet, а также на CD-ROM от ряда поставщиков (см. Приложение B).

Дистрибуция Slackware состоит из "наборов дисков" (``disk sets''), каждый из которых содержит конкретный тип программ (например, набор "d" содержит средства разработки development tools, такие как gcc-компилятор, и набор "x", содержащий X Window System). Вы можете выбирать, какие наборы инсталлировать; другие наборы вы можете инсталлировать позже.

Версия Slackware, описанная здесь - это версия 2.0.0, от 25 июня 1994. Инсталляция более поздних версий должна быть во многом аналогична.



Получение Slackware из Internet


Версии Slackware Linux на многих FTP-серверах мира. В Приложении C дан список некоторых из них. Мы предлагаем вам найти ближайший к вам FTP-сервер, чтобы минимизировать трафик. Тем не менее есть два главных Linux FTP-архива: sunsite.unc.edu и tsx-11.mit.edu.

Версию Slackware можно найти по крайней мере на следующих серверах:

sunsite.unc.edu:/pub/Linux/distributions/slackware

tsx-11.mit.edu:/pub/linux/packages/slackware

ftp.cdrom.com:/pub/linux/slackware

ftp.cdrom.com - это родной сервер Slackware.



Пост-инсталляционные процедуры


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

Сейчас самое подходящее время рассказать, как перезагружаться и выключать систему в процессе эксплуатации. Ни в коем случае не перезагружайте и не выключайте систему путем нажатия "reset" или доброго старого способа "заткнуть вулкан" - нажать сразу ctrl-alt-del. Правда на большинстве Linux систем комбинация ctrl-alt-del приведет к нормальному выключению через команду shutdown.

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

Самый простой способ выключить систему - использовать команду shutdown. Например, для немедленного выключения и перезагрузки используйте следующую команду (в root):

# shutdown -r now

Эта команда чисто перезагрузит вашу систему. Руководство на команду shutdown описывает и другие возможные аргументы командной строки. Можно посмотреть возможности команды, обратившись к машинному руководству man shutdown.

Обратите внимание, что многие дистрибутивы Linux не предлагают команду shutdown на средствах инсталляции. Это означает, что при первой загрузке после инсталляции, вам может потребоваться для останова ctrl-alt-del. А после этого вы всегда должны использовать команду shutdown. прим. переводчика: До настоящего момента я закрывал Linux-систему командой halt, но shutdown тоже работает :-).

После того, как вы получили возможность использовать систему, осталось еще несколько акций связанных с конфигурированием, которые следовало бы предпринять. Первое, это создать себе пользовательский account (и, возможно, для других пользователей, которые будут иметь доступ к (в) этой системе) прим. переводчика: завести account - значит зарегистрироваться в системе. Создание пользовательских accounts описано в Разделе 4.4. Обычно все, что вы должны сделать, это войти под именем root и выполнить команду adduser (иногда useradd). При регистрации будет несколько подсказок, которые помогут вам зарегистрировать новых пользователей.

Если вы создали более одной файловой системы для Linux или, если вы используете область своппинга, вам может понадобиться отредактировать файл /etc/fstab, чтобы ваши файловые системы были автоматически доступны после загрузки. (Например, если вы используете отдельную файловую систему для /usr и не можете обнаружить ни одного из файлов этой файловой системы, может оказаться, что вам просто надо эту систему примонтировать). В Разделе 4.8. описывается эта процедура. Заметим, что дистрибутивы Slackware Linux автоматически конфигурируют ваши файловые системы и области своппинга, так что в описанном выше обычно нет необходимости.



Приобретение и инсталляция Linux


В этой главе мы опишем, как приобрести Linux в виде подготовленных дистрибутивов и как их инсталлировать.

Мы уже говорили, что не существует "официального" дистрибутива Linux. Существует много дистрибутивов, каждый из которых хорош для определенных целей. Эти дистрибутивы можно взять с ftp-серверов Internet, с BBS, на дискетах и CD-ROM.

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

Эта книга имеет дополнительные разделы, связанные с деталями Slackware-дистрибуции Linux.



Проблемы инсталляции программ


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

Системные сообщения ``Read error''(ошибка чтения), ``file not found''(не найден файл) или другие ошибки во время попытки инсталлировать программы. Это говорит о проблемах с вашими средствами инсталляции. Если вы инсталлируете с дискеты, имейте в виду, что дискеты очень склонны к такого рода недостаткам. Убедитесь, что вы используете новые исправные и свежеотформатированные дискеты. Если у вас есть на диске разделы MS-DOS, многие дистрибутивы Linux позволят вам инсталлировать с жесткого диска. Это может быть быстрее и более надежно, чем использование дискет.

Если вы используете CD-ROM, убедитесь в отсутствии на нем царапин, пыли или других гадостей, которые могут приводить к ошибкам. Причиной может быть и то, что соответствующее средство инсталляции имеет неподходящий формат. Например, при использовании дискет многие дистрибутивы Linux требуют, чтобы дискета была отформатирована в формате high-density MS-DOS. (Загрузочная дискета - исключение; в большинстве случаев она вообще не в формате MS-DOS). Если все прочее потерпело неудачу, либо достаньте новый набор дискет с дистрибутивом или перепишите его на новые дискеты, если вы скачали дистрибутив откуда-то.

Системные сообщения вроде ``tar: read error'' (tar: ошибка чтения) или ``gzip: not in gzip format''(gzip: не в формате gzip). Часто это связано с испорченными файлами на средствах инсталляции. Другими словами, ваши дискеты могут быть нормальными, но вот данные на них каким-то образом испорчены. Например, вы каким-то образом скачали программы Linux, используя текстовый (а не бинарный) режим, тогда ваши файлы уж точно будут негодными для инсталляции.

Системные сообщения об ошибках, такие как ``device full'' (устройство заполнено) в процессе инсталляции. Это верный признак того, что вы вышли за пределы отведенного пространства при инсталляции. Не все дистрибутивы способны с этим разобраться; вы не сможете прервать инсталляцию и вынуждены дождаться, когда система сама остановится.


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

Системные сообщения об ошибках, такие как ``read_intr: 0x10'' при обращении к жесткому диску. Это обычно говорит о наличии плохих блоков на диске. Однако, если вы получили это сообщение во время выполнения mkswap или mke2fs, причиной этого могло быть то, что система имела проблемы с доступом к вашему диску. Это может быть как проблема аппаратуры (см. Раздел 2.5.2), так и результат неправильного описания геометрии. Если вы применяли

hd=<cylinders>,<heads>,<sectors>

опцию периода загрузки, чтобы инициировать определение геометрии своего жесткого диска и описали геометрию некорректно, то вы должны будете познакомиться с этой проблемой. Это также может случиться, если геометрия вашего драйвера описана некорректно в CMOS.

Системные сообщения об ошибках , вроде ``file not found'' или ``permission denied''. Это может случиться, если не все необходимые файлы представлены на средствах инсталляции (смотрите следующий раздел) или существует проблема разрешения доступа. Например, про некоторые дистрибутивы Linux известно, что они сами по себе содержат ошибки. Это обычно обнаруживается очень быстро, да и случается не часто. Если вы подозреваете, что программы дистрибутива содержат ошибки и уверены, что вы ничего не сделали неправильно, свяжитесь с сопровождающими дистрибутив и сообщите об ошибке.

Если у вас появляются другие странные ошибки во время инсталляции Linux (особенно если вы сами переписали где-то эти программы), убедитесь, что вы действительно списали все необходимое. Например, некоторые используют команду FTP

mget *.*

для скачивания программ Linux через FTP. Она скачает только те файлы, которые содержат ``.'' в именах файлов; если есть файлы без ``.'', вы их не получите. В этом случае уместной была бы команда

mget *

Самый лучший совет - заново пересмотреть все шаги, которые вы совершили, если у вас застопорилось дело. Вы можете наивно думать, что вы все делали правильно, когда на самом деле вы забыли сделать какой-то маленький, но важный шаг, где-то посреди нелегкого пути инсталляции. Во многих случаях даже сама попытка заново переписать или заново инсталлировать Linux может натолкнуть на решение действительной проблемы. Не надо биться головой об стену дольше, чем надо!

Кроме прочего, если Linux завис при инсталляции, причины могут быть в аппаратуре. Смотрите по этому поводу Раздел 2.5.2.


Проблемы использования системы


Если вход в систему прошел успешно, на экран будет выдана подсказка "shell" - командной оболочки (например ``#'' или ``$'') и вы можете немножко поплясать вокруг системы. Но существует ряд проблем, которые могут возникнуть в начале использования системы.

Одна из наиболее типичных начальных проблем, связанных с конфигурированием - установка неверных прав доступа (защиты) файлов и каталогов. Это может выразиться в сообщении

Shell-init: permission denied

которое будет напечатано после входа в систему (на самом деле, всегда, когда вы столкнетесь с сообщением ``permission denied''("обращение запрещено") вы можете быть с высокой вероятностью уверены, что это проблема защиты файлов).

Во многих случаях это простое дело для команды "chmod", которая может менять права доступа к соответствующим файлам и каталогам. Например, некоторые дистрибутивы Linux использовали (ошибочный) код защиты файлов " 0644 " для корневого каталога (/). А следует использовать команду

# chmod 755 /

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

Во время эксплуатации системы вы можете попадать в места, где неверно установлена защита файлов и каталогов или программы работают не так, как конфигурировались. Добро пожаловать в мир Linux! Хотя многие дистрибутивы и не доставляют особых хлопот, лишь немногие из них безупречны. Мы не хотим обсуждать здесь все возможные проблемы. Вместо этого по ходу всей книги мы помогаем вам решать многие проблемы конфигурирования, обучая вас обнаруживать и решать проблемы самостоятельно. В Главе 1 мы детально обсуждали эту философию. В Главе 4 мы даем советы относительно решения многих из типовых проблем конфигурирования.

| |

Comments:

Copyright ©



Проблемы после инсталляции Linux


Вы потратили целых полдня, инсталлируя Linux. Чтобы выделить под него место, вы стерли свои разделы с MS-DOS и OS/2 и не без утирания слез стерли свои копии "SimCity" и "Wing Commander"... Вы перезагрузили систему, а ничего не произошло. Или еще хуже того, что-то произошло, но не то, что должно было произойти. Ну и что делать?

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



Проблемы распознавания жесткого диска или контроллера


При загрузке Linux вы увидите серии посланий, выдаваемых на экран, вроде:

Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.96 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty03 at 0x02e8 (irq = 3) is a 16550A lp_init: lp1 exists (0), using polling driver ...

Здесь ядро распознает различные устройства, имеющиеся в системе. В некоторый момент вы увидите строчку

Partition check:

(Проверка раздела), за которой следует список распознанных разделов, например:

Partition check: hda: hda1 hda2 hdb: hdb1 hdb2 hdb3

Если по какой-то причине ваши дисководы или разделы нераспознаны, вы никаким образом не сможете к ним добраться.

Это может произойти по нескольким причинам:

Жесткий диск или контроллер не поддерживается. Если вы используете контроллер жесткого диска (IDE, SCSI и тому подобные), из тех, которые не поддерживаются в Linux, ядро не распознает ваш раздел на этапе загрузки.

Жесткий диск или контроллер неправильно конфигурированы.

Даже если ваш контроллер поддерживается в Linux, он может быть неправильно конфигурирован. (Особенно эта проблема характерна для контроллеров SCSI; большинство не-SCSI контроллеров будет хорошо работать без дополнительной конфигурации).

Для решения такого рода проблем обращайтесь к соответствующей документации на жесткие диски и/или контроллеры. В частности, многие жесткие диски потребуют переустановки джамперов, если они будут использоваться в режиме "подчиненного" (``slave'') драйвера (например, в качестве второго жесткого диска). Самый железный способ проверить наличие такой ситуации - это загрузить MS-DOS или еще какую-нибудь другую операционную систему, которая заведомо должна работать с этим жестким диском и контроллером. Если вы получите доступ к диску и контроллеру из другой операционной системы, то значит ваши проблемы не в конфигурировании аппаратуры.

Смотрите Раздел 2.5.2.1 (ранее) по поводу разрешения возможных конфликтов устройств и Раздел 2.5.2.3 (далее) по поводу конфигурирования SCSI-устройств.


Контроллер конфигурирован правильно, но не распознается.

Некоторые без-BIOS-ные SCSI-контроллеры требуют от пользователя описания контроллера на этапе загрузки. В Разделе 2.5.2.3 (далее) описывается, как осуществить определение этих контроллеров.

Не распознается геометрия жесткого диска. Некоторые системы, такие, как IBM PS/ValuePoint, не помещают информацию о геометрии жесткого диска в память CMOS, где Linux ожидает ее найти. Также, некоторым SCSI-контроллерам надо сообщать, где найти геометрию диска, чтобы Linux мог распознать формат вашего диска.

Многие дистрибутивы имеют загрузочную опцию для описания геометрии диска. В общем случае, при загрузке средств инсталляции, вы можете описать геометрию драйвера в ответ на подсказку загрузчика LILO с помощью команды, например:

boot: linux hd=<cylinders>,<heads>,<sectors>

где <cylinders>, <heads> и <sectors> соответсвуют числу цилиндров, головок и секторов на трек у вашего диска.

После инсталляции Linux вы будете иметь возможность инсталлировать LILO, который позволит вам загружаться с жесткого диска. В это время вы можете описать геометрию для инсталляционной процедуры LILO, что позволит не вводить геометрию при каждой загрузке. Более подробно о LILO смотрите в Главе 4.


Проблемы со SCSI-контроллерами и устройствами


Здесь описываются некоторые из наиболее типичных проблем, возникающих со SCSI-контроллерами и устройствами, такими, например, как CD-ROM, жесткие диски и ленты. Если у вас проблемы заставить Linux распознавать диск или контроллер, читайте дальше.

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

SCSI-скази устройство распознается всеми возможными идентификаторами (ID). Это связано с привязкой устройств к одному и тому же адресу с контроллером. Вам следует изменить установку переключателей так, чтобы драйвер и контроллер использовали различные адреса.

Linux сообщает об обнаруживаемых ошибках, хотя известно, что устройство работает безошибочно. Это может происходить из-за плохого кабеля или плохого разъема. Если ваша SCSI-шина не имеет надежных контактов с обеих сторон - может возникать ошибка доступа к SCSI-устройствам. Если у вас возникают сомнения, всегда проверяйте кабель.

SCSI-устройства сообщают об ошибках истечения времени. Это обычно происходит из-за конфликтов IRQ, адресов DMA или устройств. Следует проверить также, что прерывания вашим контроллером обрабатываются корректно.

SCSI-контроллеры, использующие BIOS не идентифицируются.

Распознавание контроллеров, использующих BIOS, потерпит неудачу, если BIOS отключен или "подпись" вашего контроллера не распознается ядром. Дополнительную информацию можно найти в Linux SCSI HOWTO.

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

При разбиении на разделы будет выдано сообщение, что ``cylinders > 1024'' или что вы не сможете загрузиться из раздела, имеющего номера цилиндров более 1023. BIOS ограничивает число цилиндров числом 1024 и любой раздел, использующий большие номера цилиндров, будет неприемлем с точки зрения BIOS. Применительно к Linux это касается только загрузки; после того, как система загружена, вы сможете обращаться к разделу. Вы можете выбирать, загружать ли Linux с дискеты или из раздела, использующего цилиндры с номерами меньше 1024. Относительно создания загрузочной дискеты или инсталляции LILO смотрите Раздел 2.3.7.


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

Если ваш SCSI-контроллер нераспознан, возможно вам следует инициировать (force) распознавание аппаратуры на этапе загрузки. Это особенно важно для без-BIOS-ных SCSI-контроллеров. Большинство дистрибутивов позволяет описывать IRQ контроллеров и адресов разделяемой памяти во время загрузки средств инсталляции. Например, если вы используете контроллер TMC-8xx, вы можете ввести

boot: linux tmx8xx=<interrupt>,<memory-address>

в ответ на подсказку загрузчика LILO, где <interrupt> - IRQ контроллера и <memory-address> - адрес разделяемой памяти. Сможете ли вы это сделать, зависит от используемого вами дистрибутива Linux, так что относительно деталей посмотрите документацию.


Проблемы входа в систему


После загрузки Linux вам (на экран) должна быть выдана подсказка вроде этой:

linux login:

В этот момент либо документация на дистрибутив, либо сама система скажут вам, что делать дальше. В большинстве дистрибутивов вы просто войдете в систему под именем root

(суперпользователь, администратор) без пароля. Другие возможные имена для входа guest или test.

Большинство новоиспеченных систем Linux не требуют пароля для первоначального входа. Но если система потребует с вас пароль, могут возникнуть проблемы. Прежде всего попробуйте пароль, совпадающий с именем входа; например, если вы вошли как root, попробуйте ``root'' в качестве пароля.

Если вы все-таки не можете войти, то это уже проблема. Прежде всего проконсультируйтесь с документацией на дистрибутив. Может быть там где-то закопано правильное имя входа и пароль. Имя входа и пароль могут быть вам сообщены системой во время инсталляции или выведены на экран в виде подсказки.

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



Проблемы загрузки Linux с дискеты


Если вы используете дискеты для загрузки Linux, вам может потребоваться описать местоположение вашего корневого раздела linux во время загрузки. Это обычно случается, когда вы используете исходную инсталляционную дискету, а не специальную загрузочную дискету, созданную в процессе инсталляции.

При загрузке дискеты, надо держать shift или ctrl. Это приведет вас к загрузочному меню; нажмите tab, чтобы получить спиок доступных опций. Например, многие дистрибутивы позволяют ввести

boot: linux hd=<partition>

где <partition> - имя корневого раздела Linux, например, /dev/hda2. Более детально с вопросом можно познакомиться по документации на дистрибутив.



Проблемы загрузки Linux с жесткого диска


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

Она может сделать неправильные предположения относительно формата вашего раздела, в этом случае вы должны будете переинсталлировать LILO, чтобы все стало хорошо. Инсталляция LILO обсуждается в Главе 4.

Системные сообщения ``Drive not bootable---Please insert system disk.'' ("Устройство незагружаемо---Пожалуйста, вставьте системный диск"). Вы получите такое сообщение об ошибке, если главная загрузочная запись жесткого диска каким-то образом попорчена. Во многих случаях это безопасно и все остальное у вас на диске по-прежнему в порядке. Тут дальше есть несколько путей.

При разбиении диска на разделы с использованием fdisk вы могли удалить раздел, который был отмечен как ``active''. MS-DOS и другие операционные системы пытаются загрузить такой раздел на этапе загрузки (Linux не обращает внимания на то, является раздел ``active'' или нет). Вы можете загрузить MS-DOS с дискеты и запустить FDISK

для установки флага ``active'' для раздела MS-DOS и все будет хорошо.

Другая команда, которую можно попробовать (с MS-DOS 5.0 и выше) это

FDISK /MBR

Эта команда будет пытаться заново сформировать главную загрузочную запись диска для загрузки MS-DOS, переписывая LILO. Если у вас больше нет на жестком диске MS-DOS, вам потребуется загрузить Linux с дискеты и в последующем попытаться инсталлировать LILO.

Если вы создали раздел MS-DOS, используя версию команды fdisk из Linux или наоборот, это может быть причиной ошибки. Вам следует создавать разделы для MS-DOS, используя только версии FDISK для MS-DOS. (Это относится и к другим операционным системам, которые существуют наряду с MS-DOS). Здесь лучшее решение - либо начать с того, что все стереть и переразбить диск правильно, либо удалить и пересоздать плохие разделы, используя исправные версии fdisk.


Инсталляционная процедура LILO может потерпеть неудачу. В этом случае вам следует либо загрузиться с загрузочной дискеты для Linux (если она у вас есть) или с исходного средства инсталляции. В любом случае вы будете иметь возможность для описании корневого раздела Linux, который будет использован при загрузке. Нажмите shift или ctrl во время загрузки и нажмите tab из меню загрузки, чтобы получить список опций.

При загрузке системы с жесткого диска MS-DOS (или другая из существующих операционных систем) стартует вместо Linux.

Прежде всего убедитесь, что вы действительно инсталлировали LILO при инсталляции программ Linux. Если это оказалось не так, система будет загружать MS-DOS (или какую-нибудь другую операционную систему из собранных вами), когда вы пытаетесь загрузиться с жесткого диска. Для того, чтобы загрузить Linux с жесткого диска, вам необходимо инсталлировать на жесткий диск LILO (см. Главу 4).

С другой стороны, если вы все-таки инсталлировали LILO, но другая операционная система загружается вместо Linux, то необходимо конфигурировать LILO так, чтобы она загружала другие операционные системы по умолчанию. Во время загрузки системы держите нажатой клавишу shift или ctrl, а затем нажмите tab в ответ на подсказку загрузчика. В результате вы получите список операционных систем, которые можно загрузить. Выберите соответствующую опцию (часто просто ``linux''), чтобы загрузить Linux.

Если вы хотите сделать Linux системой, загружаемой по умолчанию, вам необходимо реинсталлировать LILO. Смотрите Главу 4.

Возможно также, что вы пытались инсталлировать LILO, но инсталляция потерпела неудачу. Смотрите предыдущий пункт.


Проблемы загрузки средств инсталляции


Пытаясь первый раз загрузить средства инсталляции, вы можете столкнуться с множеством проблем. Они перечислены ниже. Заметим, что следующие проблемы не относятся к загрузке вашего вновь инсталлированного Linux. Относительно таких проблем см. Раздел 2.5.4.

Ошибка дискеты или средства инсталляции.

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

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

Система "зависает" во время или сразу после загрузки.

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

После загрузки с помощью LILO, система должна загрузить образ ядра с дискеты. Это может занять несколько секунд; если горит при этом лампочка обращения к дисководу, то это значит, что все идет нормально.

При загрузке ядра SCSI устройства должны быть проверены. Если у вас еще не было инсталлировано какого-нибудь SCSI устройства, система "зависнет" секунд на 15, пока происходит проверка SCSI устройства; обычно это происходит после строки


lp_init: lp1 exists (0), using polling driver

появившейся на вашем экране.

После окончания загрузки ядра управление передается системе, загружающей файлы с дискеты. Затем вам будет выдана подсказка login или система выйдет в инсталляционную программу. Если вы дошли до подсказки, например, имеющей вид

Linux login:

далее вы должны войти (обычно как root или install - в разных версиях дистрибутивов по-разному). После введения имени пользователя система может задуматься секунд на 20 или более, пока программа инсталляции или shell загружается с дискеты. Опять же лампочка дисковода должна гореть. Так что не думайте, что система опять зависла.

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

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

Системные сообщения об ошибках памяти в процессе инсталляции.

Этот пункт относится к количеству памяти, которая имеется в вашем распоряжении. На системе с 4M RAM или менее у вас могут быть проблемы с самой загрузкой средств инсталляции. Это потому, что многие дистрибутивы используют ``ramdisk'', которая является файловой системой, загружаемой прямо в RAM во время операций, использующих средства инсталляции. Полный образ инсталляционной дискеты, например, может быть загружен на ramdisk, что может потребовать более мегабайта памяти.

Решение этой проблемы - подготовить опцию ramdisk при загрузке средств инсталляции. Каждая версия имеет процедуры реализации этого; в версии SLS, например, вы печатаете ``floppy'', когда появится подсказка LILO при загрузке диска "a1". Детали посмотрите в документации на дистрибутив.



Вы можете не увидеть сообщение ``out of memory'' при попытке загрузиться или инсталлировать программы; вместо этого система может неожиданно зависнуть или сорвать загрузку. Если система зависла и никакие предыдущие объяснения не помогают, попытайтесь отключить (disable) ramdisk.

Имейте в виду, что Linux сам по себе требует не менее 2 M RAM для минимального функционирования; некоторые версии требуют наличия 4M и даже более.

Система сообщает об ошибках, таких как ``permission denied'' (обращение запрещено) или ``file not found''(файл не найден) в процессе загрузки.

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

Система при загрузке выдает сообщение ``VFS: Unable to mount root''.

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

Например, многие дистрибутивы на CD-ROM требуют, чтобы при загрузке лазерный диск находился в дисководе. Убедитесь также, что дисковод CD-ROM включен и что-то делает. Подробнее смотрите в Разделе 2.5.2.

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


Проверка файловых систем


Бывает полезно почаще проверять вашу файловую систему на наличие поврежденных и испорченных файлов. Некоторые системы автоматически проверяют свои файловые системы во время загрузки (с помощью соответствующих команд из /etc/rc).

Для проверки файловых систем используются команды, зависящие от типа файловой системы. Для файловой системы ext2fs (самый широко используемый тип), такой командой служит e2fsck. Например, команда

# e2fsck -av /dev/hda2

проверит файловую систему ext2fs на /dev/hda2 и автоматически исправит ошибки.

Обычно бывает полезно размонтировать файловую систему перед

ее проверкой. Например команда

# umount /dev/hda2

Размонтирует файловую систему на /dev/hda2, после чего вы можете ее проверить. Есть одно исключение, вы не можете размонтировать корневую файловую систему. Для того, чтобы проверить размонтировнную корневую файловую систему вам следует использовать специальную boot/root дискету (смотрите Раздел 4.11.1). Вы также не можете размонтировать файловую систему, если хотя бы один из ее файлов "занят" (``busy''), т.е. используется действующим процессом. Например, вы не можете размонтировать файловую систему, если хотя бы один из текущих рабочих каталогов пользователя находится на этой файловой системе. Вы получите сообщение ``Device busy'', если вы попытаетесь размонтировать используемую файловую систему.

Другая файловая система использует различные формы команды e2fsck, такие как efsck и xfsck. На некоторых системах вы можете просто использовать команду fsck, которая определит тип файловой системы и выполнит соответствующую команду.

Внимание! Необходимо немедленно перезагрузить операционную систему после проверки монтированной файловой системы, если были внесены какие-то изменения в файловую систему. (Хотя в общем случае проверять неразмонтированную файловую систему). Например, если e2fsck сообщает, что она исправила хотя бы одну ошибку в файловой системе, вам следует немедленно выполнить shutdown -r, чтобы перезагрузить систему. Это позволить системе "ресинхронизировать" информацию о файловой системе, после модификации ее с помощью e2fsck. (прим. переводчика: То есть сново согласовать содержимое буферов памяти с соответствующими фрагментами файловой системы на диске).

Файловая система /proc никогда не нуждается в проверках такого рода. /proc - это файловая система памяти, управляемая непосредственно ядром.



Работа с пользователями


Вне зависимости от того, много у вас пользователей или нет, важно понять проблему работы с пользователем Linux. Даже если вы единственный пользователь вы должны иметь различные account для root и для себя. Каждый человек, использующий систему, должен иметь свой собственный account (быть индивидуально зарегистрированным в системе). Редко может быть целесообразно, чтобы несколько человек входили в систему под одним именем. Здесь дело не только в безопасности, но account используется для идентификации пользователя в системе. Необходимо иметь возможность проследить, кто что делает.



Разбиение вашего жесткого диска


В этом разделе мы опишем, как изменить размеры ваших уже существующих разделов, чтобы выделить место для Linux. Если вы инсталлируете Linux на "чистый" диск, вы можете пропустить этот раздел и продолжить чтение с Раздела 2.3.

Обычный способ изменить размеры существующего раздела - это удалить его (уничтожив все данные, которые он содержал) и вновь его создать. Перед переразбиением диска сделайте backup системы. А затем восстановите информацию. В MS-DOS существует несколько программ, которые могут переразбить диск без уничтожения информации. Одна из них известна как FIPS, ее можно найти на FTP-серверах Linux.

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

Программа, используемая для разбиения на разделы известна, как fdisk. Каждая операционная система имеет собственный аналог этой программы; например, под MS-DOS она вызывается командой FDISK. Вам следует посмотреть документацию на вашу операционную систему относительно перераспределения разделов. Здесь мы обсудим, как переразбивать на разделы в MS-DOS с использованием FDISK, но эта информация может быть легко распространена на другие операционные системы.

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

Предупреждение. Не модифицируйте и не создавайте вновь раздел для любой другой операционной системы (включая Linux), используя FDISK под MS-DOS. Вы можете производить модификацию только для конкретной операционной системы; например, вы должны создавать разделы для Linux, используя версию fdisk для Linux. Позже, в Разделе 2.3.3 мы опишем, как создавать разделы для Linux. Но сейчас мы обсуждаем изменение размера существующих.


Предположим, что вы имеете один диск, полностью отданный под MS-DOS. Таким образом, ваш диск состоит целиком из одного раздела, обычно известного как ``C:''. Поскольку этот метод портит данные этого раздела, вам необходимо создать загрузочную таблицу MS-DOS ``system disk'', которая хранит все необходимое для выполнения FDISK и последующего backup.

Во многих случаях вы можете использовать для этой цели инсталляционные диски под MS-DOS. Если вы хотите создать свой системный диск, отформатируйте дискету командой

FORMAT /s A:

Скопируйте на эту дискету все необходимые утилиты MS-DOS (обычно большинство программ каталога \DOS на вашем диске), а также программы FORMAT.COM и FDISK.EXE. Теперь вы можете загрузиться с этой дискеты и выполнить команду

FDISK C:

Работа FDISK должна сопровождаться объяснениями, но детали следует посмотреть в документации на MS-DOS. Когда вы запустите FDISK, используйте опцию menu для отображения таблицы разделов и спишите приведенную там информацию. Важно сохранить запись о ваших первоначальных установках setup в случае, если вы захотите отказаться от инсталляции Linux.

Для удаления существующего раздела выберите в меню FDISK опцию ``Delete an MS-DOS Partition or Logical DOS Drive''. Опишите тип раздела, который вы желаете удалить (первичный, расширенный или логический) и число разделов. Внимательно отнеситесь ко всем предупреждениям. Ух!

Для создания нового (меньшего) раздела для MS-DOS, выберите опцию FDISK ``Create an MS-DOS Partition or Logical DOS Drive''. Опишите тип раздела (первичный, расширенный или логический) и размер создаваемого раздела (в мегабайтах). FDISK создаст раздел.

После того, как вы закончите работу с FDISK, следует выйти из программы и переформатировать новый раздел. Например, если вы изменяете размер первого DOS раздела на диске (C:), следует выполнить команду

FORMAT /s C:

Теперь можно выполнить backup.


Разношерстные задачи


Хотите верьте, хотите - нет, но существует ряд хозяйственных задач, входящих в функции системного администратора, которые не попадают ни в одну из основных категорий.



Регистрация root


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

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

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

Посидеть на собственных ладошках, прежде чем нажать return для выполнения команды, которая может быть причиной катастрофы. Например, если вы собираетесь очистить каталог, перед нажатием return перечитайте всю команду и убедитесь, что она написана правильно.

Не привыкайте использовать root. Чем более комфортно вам будет в роли root, тем больше вы будете путать ваши привилегии с привилегиями нормального пользователя. Например, вы можете подумать, что вы сейчас находитесь в системе как larry, хотя на самом деле будете неудержимым root.


Используйте отличающуюся подсказку для root. Для этого следует внести изменения в root-овский .bashrc или .login

файл для того, чтобы сделать подсказку для root отличной от других. Например, многие используют символ ``$'' в подсказках обычных пользователей и оставляют символ ``#'' для подсказки root.

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

Разумеется, есть племя хакеров, которые используют root

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

Разумеется, все совершают ошибки. Однажды сам Linus Torvalds (создатель linux) случайно удалил все поддерево каталогов, содержавшее программы ядра. Многие часы работы пропали (бы) в один миг навсегда. К счастью, однако, благодаря своему знанию кодов файловой системы, он смог перезагрузить систему и реконструировать дерево каталогов вручную.

Давайте по-другому, если вы представите использование root

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


Slackware на CD-ROM


Slackware можно также получить на CD-ROM. Большинство CD-ROM со Slackware просто содержат копии файлов, которые появляются в архивах FTP-серверов. Поэтому, если у вас есть CD-ROM со Slackware, значит у вас есть все необходимые файлы. Вы должны будете создать boot и root дискеты из файлов, взятых с CD-ROM. Смотрите Раздел 2.1.4.2.1.

Прежде всего следует решить, какие образы дисков boot и root будут использованы. Они должны быть на CD-ROM. Ниже мы опишем, как создавать эти дискеты.



Создание boot и root дискет


Создавая дискеты boot и root, вы должны их создавать с образов boot-диска и root-диска, которые вы скачали (или имеете на CD-ROM), вне зависимости от вида инсталляции. В MS-DOS вы должны раскомпрессировать образы boot-диска и root-диска, используя GZIP.EXE. Например, если вы используете образ диска boot - bare.gz, наберите команду MS-DOS:

C:\> GZIP -D BARE.GZ

которая раскомпрессирует bare.gz и создаст вам файл bare. Если вы инсталлируете с CD-ROM, вы можете скопировать образ диска bootdisk (например, bare.gz) на жесткий диск и выполнить GZIP.EXE

с CD-ROM для раскомпрессирования.

Вы должны также раскомпрессировать образ диска root. Например, если вы используете root-диск color144.gz, наберите команду:

C:\> GZIP -D COLOR144.GZ

которая раскомпрессирует этот файл и создаст файл color144.

Далее, вы должны иметь две high-density дискеты, отформатированные в MS-DOS. (Они должны быть одного типа; если ваша boot-дискета 3.5", обе дискеты должны быть high-density 3.5"). Для записи образов дисков boot и root на дискеты надо использовать RAWRITE.EXE .

Наберите команду:

C:\> RAWRITE

Ответьте на вопросы о имени переписываемого файла (например, bare или color144) и дисковода (например A:). RAWRITE скопирует файл блок за блоком прямо на дискету. Используйте RAWRITE также для образа root-диска. Когда вы это сделаете, у вас будут две дискеты: одна содержит boot-диск, другая root-диск. Имейте в виду, что эти две дискеты уже нечитаемы в MS-DOS (они уже, в известном смысле, в ``Linux-формате'').

Убедитесь, что вы используете хорошие несбойные дискеты. На дискетах не должно быть bad-блоков.

Обратите внимание на то, что вам не обязательно использовать MS-DOS для инсталляции Slackware. Но использование MS-DOS облегчает создание boot и root дискет, облегчает инсталляцию программ (поскольку вы можете инсталлировать прямо из MS-DOS раздела вашей системы). Если у вас на компьютере нет MS-DOS, вы можете использовать чужой компьютер для создания дискет, и уже инсталлировать с них.

Нет также необходимости использовать GZIP.EXE и RAWRITE.EXE

под MS-DOS для создания дискет boot и root. Вы можете использовать команды gzip и dd в UNIX для выполнения той же работы. (Для этого, разумеется, вам нужна UNIX-станция с дисководом). Например, на станции Sun с дисководом /dev/rfd0 вы можете использовать команды:

$ gunzip bare.gz $ dd if=bare of=/dev/rfd0 obs=18k

Вы должны указать соответствующий размер блока (obs), иначе

на некоторых станциях (на тех же Sun) эта команда не будет выполнена. Если у вас возникнут проблемы - читайте руководство по команде dd.



Создание файловых систем


Перед тем, как вы сможете использовать разделы Linux для хранения файлов, вы должны создать на них файловые системы. Создание файловой системы аналогично форматированию раздела под MS-DOS. Мы кратко обсуждали файловые системы в Разделе 2.2.3.

В Linux возможно несколько типов файловых систем. Каждый тип файловой системы имеет свой формат и характеристики (такие как имя файла, длина, максимальный размер файла и т.д.). Linux также поддерживает "третьи" типы файловых систем, например файловую систему MS-DOS.

Наиболее популярный тип файловой системы - это Second Extended Filesystem или ext2fs. ext2fs - одна из наиболее эффективных и гибких файловых систем. Она допускает использование имен файлов до 256 символов и размер файловой системы до 4 терабайтов (прим. переводчика: знать-то очень много). В Главе 4 мы обсудим различные типы файловых систем, возможных в Linux. А первоначально мы предполагаем, что вы используете файловую систему ext2fs.

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

Для создания файловой системы используйте команду

mke2fs -c <partition> <size>

где <partition> - имя раздела, а <size> - его размер в блоках. Например, для создания файловой системы из 82080 блоков на /dev/hda2, используйте команду

# mke2fs -c /dev/hda2 82080

Если вы используете различные файловые системы для Linux, вам надо использовать соответствующую команду mke2fs для каждой файловой системы.

Если вы столкнулись с проблемами, смотрите Раздел 2.5.



Создание области своппинга


Если вы планируете использовать раздел своппинга для виртуальной памяти, вы должны быть готовы к его использованию. (Некоторые дистрибутивы подготавливают область своппинга автоматически или через соответствующую опцию меню инсталляции).

В Главе 4 мы обсудим подготовку файла своппинга в случае, если вы не захотите использовать отдельный раздел.

Многие дистрибутивы потребуют от вас создать и активизировать область своппинга до инсталляции программ. Если у вас небольшой объем физической RAM, процесс инсталляции может не завершиться успешно, пока вы не выделите какой-то объем под область своппинга.

Дистрибутив Slackware требует создания области своппинга до инсталляции, если вы имеете 4M RAM или меньше. Если у вас нет таких ограничений, инсталляционная процедура Slackware выделит область своппинга автоматически. Если у вас возникают сомнения, то следуйте процедуре, описанной здесь; она не сможет вам навредить.

Команда создания раздела для своппинга называется mkswap

и имеет вид

mkswap -c <partition> <size>

где <partition> - имя раздела своппинга, а <size> - размер этого раздела в блоках. size of the partition, in blocks. Еще раз напомним, что в некоторых дистрибутивах область своппинга создается автоматически и блок в Linux занимает 1024 байта.

Например, если ваш раздел своппинга /dev/hda3 и имеет размер в 10336 блоков, используйте команду

# mkswap -c /dev/hda3 10336

Опция -c команды mkswap обеспечивает проверку плохих блоков в разделе при создании области своппинга.

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

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

Команда подготовки области своппинга - swapon имеет вид

swapon <partition>

Для вышеприведенного примера, чтобы подготовить область своппинга на /dev/hda3, необходимо выполнить команду

# swapon /dev/hda3



Создание разделов Linux


Теперь вы готовы создать разделы Linux с помощью команды fdisk. Как описывалось в Разделе 2.2.3, в общем случае вам необходимо создать как минимум один раздел для самого Linux и другой для области своппинга.

После загрузки средств инсталляции выполните команду fdisk, напечатав

fdisk <drive>

где <drive> имя устройства в Linux, которому вы хотите выделить раздел (см. Табл. 2.1). Например, если вы хотите выполнить fdisk для первого SCSI-диска, используйте команду fdisk /dev/sda.

/dev/hda (первый IDE-диск) берется по умолчанию, если вы не описали другого.

Если вы создаете разделы для Linux более, чем на одном диске, выполните fdisk отдельно для каждого диска.

# fdisk /dev/hda Command (m for help):

В этот момент fdisk ждет команды; вы можете ввести "m", чтобы получить перечень опций.

Command (m for help): m Command action a toggle a bootable flag d delete a partition l list known partition types m print this menu n add a new partition p print the partition table q quit without saving changes t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):

Для создания нового раздела используется команда n. О большинстве других опций вы можете не вспоминать. Выйти из программы fdisk, без сохранения произведенных изменений, можно командой q. Выйти из программы fdisk с записью изменений в таблице разделов можно командой w.

Первое, что вы должны сделать, это получить и записать текущее состояние таблицы разделов. Используйте команду p.

Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M Command (m for help):

Это пример, когда у нас один MS-DOS-раздел на /dev/hda1, который имеет 61693 блоков (около 60M - блок в Linux - 1024bytes). Этот раздел начинается на цилиндре N 1 и заканчивается на цилиндре N 203. Всего у нас на диске 683 цилиндров. Так что остается 480 цилиндров для создания раздела Linux.


Для создания нового раздела используйте команду "n". В этом примере мы создадим два новых первичных раздела (/dev/hda2 and /dev/hda3) для Linux.

Command (m for help): n Command action e extended p primary partition (1-4) p

Здесь fdisk спрашивает тип создаваемого раздела: extended (расширенный) или primary (первичный). В нашем примере мы создаем только первичный раздел, так что выбираем p.

Partition number (1-4):

Затем fdisk спросит число создаваемых разделов; поскольку раздел 1 уже использован, наш первый раздел Linux получит номер 2.

Partition number (1-4): 2 First cylinder (204-683):

Теперь введите номер первого цилиндра раздела. Поскольку цилиндры с 204 по 683 не используются, мы используем первый свободный (номер 204). Нет смысла оставлять пустые места между разделами.

First cylinder (204-683): 204 Last cylinder or +size or +sizeM or +sizeK (204-683):

Программа fdisk запрашивает размер создаваемого раздела. Мы можем указать последний номер свободных цилиндров или размер в байтах, килобайтах или мегабайтах. Поскольку мы хотим, чтобы наш раздел был размером в 80M, мы укажем +80M. При указании размера раздела таким способом fdisk округлит действительный размер раздела до ближайшего числа цилиндров.

Last cylinder or +size or +sizeM or +sizeK (204-683): +80M Warning: Linux cannot currently use 33090 sectors of this partition

Если вы увидите предупреждение, вроде этого, его можно проигнорировать. Программа fdisk выдает сообщение, поскольку это старая программа, написанная еще до того, когда в Linux были разрешены разделы более, чем 64M. Теперь мы готовы создать второй раздел для Linux. С целью демонстрации мы создадим его размером в 10M.

Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (474-683): 474 Last cylinder or +size or +sizeM or +sizeK (474-683): +10M

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



Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M /dev/hda2 204 204 473 82080 81 Linux/MINIX /dev/hda3 474 474 507 10336 81 Linux/MINIX

Как вы видите, теперь есть /dev/hda2 - раздел размером в 82080 блоков (что соответствует приблизительно 80M), и /dev/hda3

- 10336 блоков (около 10M). прим. переводчика: видимо, у автора здесь слова "сектор" и "блок" - синонимы

Имейте в виду, что много дистрибутивов (вроде того же Slackware) требуют использования команды t в программе fdisk

для изменения области своппинга ``Linux swap'', которая обычно имеет номер 82. Вы можете воспользоваться командой L для печати кодов типов известных разделов, а затем использовать t, чтобы установить тип области своппинга, соответствующий ``Linux swap''.

При этом программы инсталляции смогут автоматически найти ваши разделы своппинга, основываясь на типе. Если ваши программы инсталляции не распознают области своппинга, вы можете снова запустить программу fdisk и использовать команду "t" в режиме вопросов.

В вышеприведенном примере оставшиеся цилиндры диска (номера с 508 по 683) не использованы. Вы можете позже создать дополнительные разделы.

Наконец, мы используем команду w, чтобы записать изменения и выйти из fdisk

Command (m for help): w #

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

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

Некоторые дистрибутивы Linux требуют перезагрузки системы после окончания работы fdisk. Это позволяет изменениям в таблице разделов оказать свое влияние на последующую инсталляцию. Новые версии fdisk автоматически изменяют соответствующую информацию в ядре, так что перезагрузка не требуется. Чтобы обезопасить себя, после выполнения fdisk вам следует снова загрузить средства инсталляции как и раньше - перед продолжением инсталляции.


Создание загрузочной дискеты или инсталляция LILO


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

Многие дистрибутивы дают возможность инсталлировать LILO на ваш жесткий диск. LILO - это программа, которая размещается в главной загрузочной записи (master boot record) диска. Она может загружать ряд операционных систем, включая MS-DOS и Linux, и позволяет в момент загрузки выбирать, что именно загружать.

В дистрибутиве Slackware пункт меню Configure в setup

позволяет создавать загрузочную дискету, как и инсталлировать LILO. Эти опции должны комментировать свои действия. Пункт меню Configure позволяет также описывать ваши модем, мышь и информацию о временной зоне.

Чтобы LILO успешно инсталлировалась, необходимо многое знать о конфигурации системы, например, какой раздел какую операционную систему содержит, как загружать каждую из систем и т.д. Многие дистрибутивы при инсталляции LILO пытаются "угадать" соответствующие параметры конфигурации вашей системы. Но в некоторых дистрибутивах автоматическая инсталляция LILO может потерпеть неудачу и оставить вашу главную загрузочную запись в "подвешенном" состоянии (хотя маловероятно, что при этом будет причинен ущерб данным на диске). Особенно, если вы применяете Boot Manager операционной системы OS/2, вы не должны пользоваться автоматической процедурой инсталляции LILO. Существуют специальные инструкции по использованию LILO совместно с Boot Manager, которые будут рассмотрены позже.

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

В Главе 4 мы обсудим в деталях, как конфигурировать и инсталлировать LILO конкретно для вашего setup.

Если все идет хорошо, примите наши поздравления! Вы аккуратно инсталлировали Linux на вашей системе. Выпейте диетической Коки или чего-нибудь другого - вы заслужили.

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



Требования Linux к разделам


Прежде, чем мы расскажем, как переразбивать ваш диск, вы должны представлять, сколько места надо выделить под Linux. Как создавать эти разделы, мы обсудим позже в Разделе 2.3.3.

В системах UNIX файлы хранятся в файловой системе, которая прежде всего расположена на диске (или на другом устройстве, вроде CD-ROM или дискеты), отформатированном для хранения файлов. Каждая файловая система ассоциируется с конкретной частью дерева каталогов; например, во многих случаях существует файловая система для всех файлов каталога /usr, другая для /tmp

и т.д. Корневая файловая система - первичная файловая система, которой соответствует самый верхний каталог /.

Под Linux каждая файловая система "живет" в отдельном разделе диска. Например, если у вас есть файловая система для / и другая для /usr, вам потребуется два раздела.

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

Но вы можете создать много файловых систем для Linux, если пожелаете. Например, если вы хотите использовать раздельные файловые системы для /usr и /home. Читатели, имеющие опыт работы в качестве администраторов UNIX, знают, как извлекать пользу из раздельных файловых систем. В Главе 4 мы обсудим, как разумно использовать множество файловых систем и разделов.

Зачем использовать больше, чем одну файловую систему? Наиболее очевидная причина - безопасность. Если по какой-то причине одна из ваших файловых систем будет повреждена, то другие, как правило, не пострадают. С другой стороны, если вы поместите все свои файлы в корневую файловую систему, и по какой-то причине она будет испорчена - все разом пропадет. Но это редкие случаи. Если вы регулярно делаете системный backup, то можете чувствовать себя достаточно безопасно. Автор использует одну (200М) файловую систему для всех своих файлов и не имеет проблем (пока).


Другая причина использования множества файловых систем - это использование памяти нескольких дисков. Если у вас есть, скажем, 40M свободного места на одном диске и 50M на другом, вы можете создать корневую файловую систему на одном диске и /usr на 50-ти мегабайтном. В настоящее время невозможно одной файловой системе располагаться сразу на нескольких дисках, поэтому необходимо создавать несколько файловых систем.

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

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

Отдельный файл своппинга или раздел могут быть не более 16M. Если вы желаете использовать для своппинга более 16M, вы можете создать несколько разделов или файлов своппинга (до восьми). Например, если вам нужна область своппинга в 32M, вы можете создать два раздела по 16M.

Создание раздела своппинга обсуждается в Разделе 2.3.4, а создание файла своппинга - в Главе 4.

В общем случае вы создадите для Linux два раздела: один для корневой файловой системы и другой для области своппинга. Разумеется, возможно много вариаций на эту тему, но это минимальная конфигурация. Вы не обязаны иметь область своппинга для Linux, но если у вас менее 16M RAM, то это очень настоятельно рекомендуется.

Разумеется, вы должны представлять, сколько места потребуется выделить под этот раздел. Размер вашей файловой системы в большой степени зависит от используемого дистрибутива и обемов инсталляции. Надеемся, что сопутствующая дистрибутиву документация даст вам приблизительные оценки потребности в памяти. Маленькие Linux-системы могут занимать 20M и даже меньше. Большие системы - от 80M до 100M, и даже больше. Но не забывайте, что необходимо место также под каталоги пользователей и под будущие расширения.



Размер вашей области своппинга ( если вам доведется выбирать) зависит от того, какая вам требуется виртуальная память. Хорошее прикидочное правило: область своппинга равняется удвоенной RAM. Например, у вас 4M RAM (физической памяти), для нее хорошо иметь раздел в 8M для области своппинга. Но это несколько абстрактные рассуждения, поскольку область своппинга зависит в значительной степени от эксплуатируемых программ. Если у вас много физической памяти (скажем, 16M и даже более), может быть вам вообще не захочется использовать область своппинга.

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

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


Удаление пользователей


Аналогично, удаление пользователей может быть выполнено с помощью команд userdel или deluser в зависимости от конкретного дистрибутива.

Если вы пожелаете временно "отключить" пользователя от системы, (без удаления его account ), вы можете просто приписать звездочку (``*'') в поле пароля в файле пароля /etc/passwd. Например, изменить у kiwi в файле /etc/passwd

kiwi:*Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

это закроет для kiwi вход в систему.



Управление файловыми системами


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



Установка хост-имени


В сетевой среде хост-имя используется для однозначной идентификации конкретной машины, в то время как отдельно стоящей машине хост-имя придает чувство собственного достоинства и шарма. Это, как дать имя вашей собаке: вы можете обращаться к собаке просто ``The dog'' (прим. переводчика: это просто "собака" (с определенным артиклем - поскольку конкретная)

, но значительно интереснее приписать собаке имя, вроде Spot или Woofie (или Шарик и Бобик).

Хост-имя элементарно устанавливается командой hostname. Если вы в сети, ваше хост-имя должно быть полным хост-именем вашей машины, таким как goober.norelco.com. Если вы не в сети, вы можете выбрать произвольные имена для хоста и домена, например loomer.vpizza.com, shoop.nowhere.edu или floof.org.

При установке хост-имени оно должно быть занесено в файл /etc/hosts, который приписывает IP адрес каждому хосту. Даже если ваша машина не в сети, вам следует включить ваше хост-имя в /etc/hosts. Например, если вы не имеете выхода в сеть по TCP/IP и ваше хост-имя floof.org, просто включите следующую запись в /etc/hosts:

127.0.0.1 floof.org localhost

Это припишет ваше хост-имя floof.org к локальному IP-интерфейсу (loopback address) 127.0.0.1 (используемому, даже если вы не в сети). Синоним localhost также приписывается этому адресу.

Если вы подключены к сети по TCP/IP, ваши действительные IP адрес и хост-имя должны появиться в /etc/hosts. Например, если ваше хост-имя goober.norelco.com, и ваш IP адрес 128.253.154.32, добавьте следующую строку в /etc/hosts:

128.253.154.32 goober.norelco.com

Если вашего хост-имени не будет в /etc/hosts, вы не сможете его установить. Для установки хост-имени просто используйте команду hostname. Например, команда

# hostname -S goober.norelco.com

устанавливает хост-имя goober.norelco.com. Во многих случаях команда hostname выполняется из из одного из системных установочных файлов, таких как /etc/rc

или /etc/rc.local. Отредактируйте эти два файла и измените находящуюся там команду hostname, установив хост-имя своей машины; после перезагрузки машины хост-имя будет иметь новое значение.



Установление правил


Лучший способ управления системой - это управление без применения железного кулака. Может так вы хорошо управляли в армии, но это не для UNIX. Имеет смысл сделать простой и гибкий свод руководств для пользователей, но чем меньше у вас будет правил, тем меньше шансов их нарушить. Даже если ваши правила использования системы очень ясны и разумны, пользователи все равно время от времени будут их без злого умысла нарушать. Это, в особенности, относится к новичкам в UNIX, которые еще только изучают основы системы. Да и вы сами можете время от времени рассылать гигабайтные файлы всем пользователям системы... Пользователям надо помочь понять правила и объяснить, зачем они нужны.

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



Восстановление файловой системы


Если у вас каким-то образом грохнулась файловая система, вы можете использовать e2fsck (это в случае, если вы используете файловую систему типа ext2fs) для исправления попорченых данных файловой системы с дискет. Другие файловые системы используют другие формы команды fsck; детали смотрите в Разделе 4.8.

Когда вы проверяете вашу файловую систему с дискеты, лучше всего, чтобы файловая система не была примонтирована.

Частая причина неисправности файловой системы - порча суперблока. Суперблок, это "голова" (``header')'файловой системы, которая содержит информацию о статусе файловой системы, размере, свободных блоках и т.д. Если вы попортили ваш суперблок (например, случайно прямо в него записали какие-то данные) операционная система может вообще не распознать файловую систему. Все попытки примонтировать файловую систему потерпят неудачу, и e2fsck не поможет решить проблему.

К счастью, файловая система типа ext2fs сохраняет копии суперблока в границах "группы блоков" (``block group'') на диске, обычно через каждые 8K блоков. Для того, чтобы приказать e2fsck

использовать копию суперблока, вы можете использовать команду

# e2fsck -b 8193 <partition>

где <partition> - это раздел, на которой располагается файловая система. Опция -b 8193 приказывает e2fsck использовать копию суперблока, хранящуюся в блоке 8193 файловой системы.



Восстановление пароля для root


Если вы забыли пароль вашего root - нет проблем. Просто загрузитесь с boot/root disk, примонтируйте вашу корневую файловую систему под /mnt и сотрите поле пароля для root в /mnt/etc/passwd, как например:

root::0:0:root:/:/bin/sh

Теперь root без пароля; когда вы перезагрузитесь с жесткого диска, вы сможете войти как root и снова установить пароль, используя команду passwd. Не правда ли, вы счастливы, что научились работать с vi? На вашей boot/root disk, редакторов, вроде Emacs наверняка нет, а vi должен быть. (прим. переводчика: администратор должен отдавать себе отчет, что процедуру снятия пароля root умеет запросто выполнять не он один).



Восстановление потерянных библиотек


Если вы случайно потеряли свои библиотеки или символические связи в /lib, скорее всего команды, которые зависят от этих библиотек, больше не будут выполняться (смотрите Раздел 4.7.2). Простейшее решение - загрузиться с дискеты boot/root, примонтировать вашу корневую файловую систему и восстановить библиотеки в /mnt/lib.

| |

Comments:

Copyright ©



Восстановление потерянных файлов


Если вы случайно удалили важные файлы, нет способа их "разудалить" обратно. Однако, вы можете скопировать соответствующие файлы с дискеты себе на жесткий диск. Например, если вы удалите /bin/login в своей системе (который обеспечивает вход в систему), просто загрузите boot/root дискету, примонтируйте корневую файловую систему на /mnt и используйте команду

# cp -a /bin/login /mnt/bin/login

Опция -a приказывает cp сохранить права доступа копируемых файлов. Разумеется, если удаленные файлы не столь существенны, что они не были удостоены копирования на дискету boot/root floppy, значит вам не повезло. Если вы создавали резервные копии, вы можете скопировать файлы оттуда.



Восстановление с использованием дискеты сопровождения


Одно незаменимое средство для администратора системы - это так называемый ``boot/root disk'' - дискета, которая может загрузить полный Linux, вне зависимости от вашего жесткого диска. Boot/root disks в действительности очень прост - вы создаете корневую файловую систему на дискете, помещая на нее все необходимые утилиты, инсталлируя на дискете LILO и загружаемое ядро. Другой способ, это использовать одну дискету для ядра и другую для корневой файловой системы. В любом случае результат одинаков: Вы запускаете Linux полностью с дискет.

Канонический пример boot/root disk - это загрузочный диск Slackware. (Смотрите Раздел 2.1.1 относительно информации по перекачке его по Internet. Для этого вам не надо скачивать полностью - только boot и root дискеты).

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

boot/root disk, созданный H.J Lu, который можно взять в /pub/Linux/GCC/rootdisk на sunsite.unc.edu - другой пример такого рода диска сопровождения.

Или, если вы достаточно амбициозны, можете создать свой. Хотя, в большинстве случаев, использовать готовый boot/root disk - значительно легче и надежнее.

Использовать boot/root disk очень легко. Просто загрузите диск на вашей системе и войдите под root (обычно без пароля). Чтобы получить доступ к файлам вашего жесткого диска, необходимо примонтировать ваши файловые системы вручную. Например, команда

# mount -t ext2 /dev/hda2 /mnt

примонтирует файловую систему ext2fs на /dev/hda2

под /mnt. Помните, что / теперь находится на boot/root disk; вам необходимо примонтировать файловую систему вашего жесткого диска под каким-то каталогом, чтобы получить доступ к файлам. Так что /etc/passwd вашего жесткого диска теперь в /mnt/etc/passwd, если вы примонтировали вашу корневую файловую систему на /mnt.



Выключение системы


Выключение Linux - это немножко акробатика. Не забывайте, что никогда нельзя просто выключить питание или нажать кнопку "reset" во время работы системы. Ядро отслеживает диск при вводе- выводе с помощью буферов. Если вы перезагружаете систему, не дав шанса ядру переписать буфера на диск, вы можете попортить файловые системы.

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

Простейший способ выключения, это использование команды shutdown. Формат команды

shutdown <time> <warning-message>

<time> - время выключения системы (в формате hh:mm:ss - чч:мм:сс) и <warning-message> - сообщение, выдаваемое на терминалы всех пользователей перед выключением. Вы можете просто указать время (<time>) как ``now'', что приведет к безотлагательному выключению. Опция -r приведет к перезагрузке после выключения.

Например, выключить систему в 8:00 вечера можно командой

# shutdown -r 20:00

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

ВНИМАНИЕ! На выключайте электропитание и не перезагружайте ее, пока не увидите на консоли сообщение:

The system is halted

Важно cделать выключение "чисто", используя команды shutdown

или halt. В некоторых системах нажатие ctrl-alt-del будет перехвачено системой и приведет к ее выключению, но в других системах использование "затычки для вулкана" приведет к немедленной перезагрузке системы и может быть причиной неприятностей.



Взаимодействие с пользователями


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

Системный администратор может выбрать две тактики взаимодействия с злоупотребляющими (прим. переводчика: в исходном, а не в узко русском смысле этого слова)

пользователями. Это может быть параноидная тактика и тактика доверия. Системный администратор с паранойей обычно своими действиями наносит больше вреда, чем предотвращает. Одна из моих любимых присказок: "Никогда не списывай на зловредность то, что можно списать на тупость". Взгляните с другой стороны, большинство пользователей не имеют возможностей и знаний, чтобы причинить реальный вред системе. 90% процентов того, что делает пользователь, причиняя вред системе (например, забивая пользовательский раздел огромными файлами или выполняя сразу несколько экземпляров громадной программы), он делает просто не подозревая, что он кому-то создает проблемы. Мне приходилось сталкиваться с пользователями, которые были источниками огромных неприятностей, но они действовали по простоте душевной, а не со зла.

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

Если вы убедились, что пользователь действительно пытается ``взломать'' систему или умышленно ей вредит, старайтесь не отвечать угрозами на угрозы. Вместо этого просто предупредите его, но сохраняйте гибкость. Во многих случаях вы можете "схватить его за руку" в процессе свершения вредительства - вот тут и предупредите. Скажите, чтобы он так больше не делал. Но если вы снова его поймаете на вредительстве, то убедитесь, что это действительно намеренно. Я просто не смогу перечислить все случаи, когда оказывалось, что неприятность была либо случайной, либо я сам был виноват.



Загрузка Linux


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

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

Если вы инсталлируете дистрибутив Slackware, то все, что требуется, это загрузить загрузочную дискету, которую вы создали, следуя предыдущему разделу.

Большинство дистрибутивов Linux используют загрузочную дискету, которая позволяет ввести параметры компьютера при загрузке, для определения особенностей устройств. Например, если ваш SCSI-контроллер не распознается при загрузке дискеты, вы должны перезагрузиться и описать параметры аппаратуры (например, I/O-адрес и IRQ).

Похоже, что компьютеры IBM PS/1, ThinkPad и ValuePoint не сохраняют геометрию диска в CMOS и вы должны ее описывать во время загрузки.

Подсказка boot часто выдается автоматически, когда загружается загрузочная дискета. Так, например, происходит при загрузке в дистрибутиве Slackware. Некоторые дистрибутивы потребуют от вас удерживать во время загрузки с дискеты shift

или ctrl. В случае успеха вы должны увидеть подсказку:

boot:

и, возможно, другие сообщения.

Можно попробовать загрузиться без каких-либо специальных параметров, просто нажать enter в ответ на подсказку boot.

Следите за сообщениями во время загрузки. Если у вас SCSI контроллер, вы увидите список распознаваемых устройств (hosts). Если вы увидите сообщение

SCSI: 0 hosts

это значит, что ваш SCSI контроллер не был опознан, и вам следует использовать другую процедуру.

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


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

Для инициации распознавания оборудования вы должны ввести соответствующие параметры после подсказки загрузчика, используя следующий синтаксис:

ramdisk <parameters...>

Существует ряд доступных параметров: вот некоторые наиболее характерные.

hd=<cylinders>,<heads>,<sectors>

Описывает геометрию для таких систем, как IBM PS/1, ValuePoint и ThinkPad. Например, если у вашего диска 683 цилиндров, 16 головок и 32 сектора на трек, введите per track, enter

ramdisk hd=683,16,32

tmc8xx=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Future Domain TMC-8xx SCSI контроллеров. Например,

ramdisk tmc8xx=0xca000,5

Обратите внимание, что префикс "0x" должен использоваться для всех значений, данных в шестнадцатиричной системе. Это справедливо для всех последующих опций.

st0x=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Seagate ST02 контроллеров.

t128=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Trantor T128B контроллеров.

ncr5380=<port>,<irq>,<dma> Описывает порт, IRQ и DMA канал для generic NCR5380 контроллера.

aha152x=<port>,<irq>,<scsi_id>,1

Описывает порт, IRQ и SCSI ID для без-BIOS-ных AIC-6260 контроллеров. Включает Adaptec 1510, 152x и Soundblaster-SCSI контроллеры.

Для каждого из них вы должны ввести ramdisk с параметрами, которые вы хотите установить.

Если у вас есть вопросы относительно опций периода загрузки, посмотрите Linux SCSI HOWTO, который можно найти на любом Linux FTP-сервере (или там, где вы раздобыли эту книгу), а также Linux CD-ROM HOWTO. Эти документы описывают возможности аппаратуры более детально.


Загрузка системы


Существует несколько способов загрузки системы: либо с дискеты, либо с жесткого диска.



Занесение атрибутов пользователя


После создания пользователя вам может потребоваться изменить его атрибуты, такие как домашний каталог и пароль. Простейший способ - это прямо изменить значения в /etc/passwd. Чтобы установить пароль пользователя используйте команду passwd.

Например,

# passwd larry

изменить пароль larry.

Только root может изменять пароли других пользователей. Пользователи также могут изменять пароли с помощью команды passwd, но только свои собственные.

В некоторых системах имеются команды chfn и chsh, позволяющие пользователю самому устанавливать свое полное имя и исходные атрибуты shell. Если нет, то пользователи должны просить системного администратора изменить эти атрибуты для них.



Злоупотребление системой


С приходом ощущения власти приходит желание вредить. Это темная сторона администрирования в UNIX, но всякий через это когда-то должен пройти. Большинство пользователей UNIX никогда не получат возможность испытать это на университетских и производственных системах UNIX. Только высокооплачиваемые и высокообразованные системные администраторы могут входит в систему под именем root. Действительно, во многих таких заведениях пароль root - это строго охраняемый секрет. Это священная корова фирмы. Много делается попыток пролезть под именем root в систему; она представляется мудрой и устрашающей силой, покоряющейся только тем, кто знает заклинания.

Такая позиция по отношению к root очень легко приводит к опасностям и соблазнам. Поскольку root столь одурманивающая штука, то когда пользователь дорывается до возможности войти под root, прослеживается начало использования свалившихся привилегий в плане вредительства. Я знавал таких "системных администраторов", которые читали без разрешения почту других пользователей и вообще вели себя как дети, которым дали столь мощную клевую "игрушку".

Поскольку root имеет в системе такие привилегии, требуется определенный уровень зрелости и самоконтроля, чтобы использовать этот account (этот привилегированный "счет"), как это было задумано - для эксплуатации системы. Существует негласный закон чести в отношениях администратора с пользователями. Как вы будете себя чувствовать, если системный администратор читает ваши письма и просматривает ваши файлы? До сих пор нет достаточно серьезной юридической основы для неприкосновенности личной информации в многопользовательских компьютерных системах. В системах семейства UNIX пользователь root имеет возможность преодолевать все штатные механизмы защиты системы. Важно, чтобы у администратора были доверительные отношения с пользователями системы. Невозможно переоценить важность этого.