Элементы администрирования систем

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

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

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

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

Объем одной «лекции» позволяет лишь кратко описать основные области, с которыми должен быть знаком администратор системы. Описание конкретных инструментов и подробностей форматов файлов следует искать в документации (включая встроенную систему страниц руководства man) и литературе, посвященной конкретным ОС.

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

Linux, установленный на жёстком диске, загружается при включении компьютера при помощи специальной программы — загрузчика. Программа-загрузчик исполняется при загрузке системы с жёсткого диска и загружает ядро ОС Linux, расположенное также на жёстком диске.

При загрузке с жесткого диска загрузчик может располагаться:

  1. в главной загрузочной записи (MBR) диска;

  2. в загрузочной записи раздела диска (PBR);

  3. в файле файловой системы, расположенной на одном из разделов диска.

В последних двух случаях загрузчик должен быть загружен посредством другого загрузчика — это называется «цепочкой загрузки».

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

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

В Linux наибольшее распостранение получили два загрузчика:

  • LILO
  • GRUB

Впрочем, для загрузки Linux возможно использовать и альтернативные загрузчики, например NT Loader для Microsoft Windows NT.

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

Настройка LILO

Первое решение, которое нужно принять — где расположить загрузчик. Программа установки предлагает на выбор несколько позиций, где может быть размещён загрузчик. Общее правило: если устройство указано как «полный» жёсткий диск (без указания номера раздела — например, /dev/hda), то загрузчик будет поставлен в MBR указанного диска; если устройство указано как раздел диска (в конце номер раздела), то загрузчик будет установлен в загрузочный сектор соответствующего раздела. Можно переместить загрузчик и после установки, исправив соответствующим образом конфигурационные файлы и дав команду lilo (см. ниже).

Если для загрузки всех операционных систем предполагается использовать загрузчик Linux (LILO), то в качестве загрузочного устройства необходимо выбрать первый диск системы; обычно это /dev/hda или /dev/sda. При таком выборе загрузчик первым получит управление от BIOS. Чтобы загрузчик Linux мог загружать другие операционные системы, ему нужно сообщить об их существовании. Программа установки ALT Linux умеет делать это автоматически. Однако если вам нужна более тонкая настройка, или что-то изменилось уже после установки ALT Linux, то можно отредактировать конфигурационные файлы загрузчика самостоятельно.

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

other=/dev/hda1 
label=other
table=/dev/hda

Данная запись сообщает LILO о том, что на раздел /dev/hda1 установлена неизвестная ОС; в меню её надо отобразить под именем «other»; если пользователь выберет этот пункт меню — передать управление на загрузочный сектор /dev/hda1.

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

Наоборот, если общим для всех OC будет загрузчик другой операционной системы, то LILO необходимо установить на корневой раздел Linux (точка монтирования — /). После этого необходимо сообщить общему загрузчику всех ОС о том, как передавать управление на раздел Linux. Как это сделать — смотрите в документации к используемому вами программному обеспечению.

Настройка GRUB

На Рисунок 3.9, «Рис. 1-93» приведен пример конфигурационного файла меню загрузчика GRUB (/boot/grub/menu.lst).

Рисунок 3.9. Рис. 1-93

timeout 5
display vga16
border 000000
background 000000
foreground FFFFFF
shade 1
splashimage (hd0,4)/boot/pictures/master.xpm
default 2

title linux-up
kernel (hd0,4)/boot/vmlinuz-up root=/dev/hdb5 
initrd (hd0,4)/boot/initrd-up.img

title linux-X
kernel (hd0,4)/boot/vmlinuz-up root=/dev/hdb5 5
initrd (hd0,4)/boot/initrd-up.img

title Microsoft Windows 2000 Pro
map (hd0) (hd1)
map (hd1) (hd0)
root (hd1,0)
chainloader +1
makeactive

Мы не будем разбирать его подробно, однако обратите внимание, что за первой «строфой», определяющей параметры самого загрузчика, следуют еще три «строфы», соответствующие трем пунктам меню, которое будет выдано при загрузке. Первые две из них вызывают ядро Linux с параметром root=/dev/hdb5 (указывающим раздел диска, где находится файловая структура /), причем вторая добавляет параметр 5 (пятый уровень исполнения). Смысл и указания корневой файловой структуры, и уровня исполнения будет ясен из дальнейшего изложения.

Третья «строфа» передает по цепочке управление загрузчику, расположенному в «нулевом разделе» (т.е. главной загрузочной записи) первого диска, причем предварительно подменяет нумерацию дисков командой map[24]. В данном случае там содержится проприетарный загрузчик ОС Microsoft Windows NT.

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

«Рядовой» и главный пользователь

В системе определен главный пользователь («суперпользователь») «root» с идентификационным номером 1. Остальных пользователей называют «обычными» или «рядовыми».

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

Выполнять прикладные задачи, зарегистрировавшись главным пользователем, нельзя.

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

Наибольшее распространение получило делегирование пользователям однопользовательских машин полномочий:

  • монтирования съемных носителей информации,

  • остановки и перезагрузки системы,

  • установления связи по коммутируемым линиям.

Однако иногда разработчики реализуют сложную многоуровневую систему полномочий[25].

В этой «лекции» мы обсуждаем лишь традиционный стиль администрирования, предполагающий выполнение административных действий от имени главного пользователя системы. В большинстве современных открытых ОС реализована команда «su», позволяющая подать команду от имени дргугого пользователя, в том числе и главного. Команда su по умолчанию запускает от имени главного пользователя дополнительный экземпляр оболочки. Можно порекомендовать по возможности запускать сессию администрирования с помощью этой команды, а не прямой регистрации главного пользователя с консоли.

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

Разумеется, как и при прямой регистрации, при этом запрашивается пароль главного пользователя (Рисунок 3.10, «Рис. 1-94»). Напомним, что по умолчанию строка приглашения обычного пользователя заканчивается символом $, а главного пользователя — «». Сверх этого, определить имя текущего пользователя в любой момент можно, подав команду «who am i».

Рисунок 3.10. Рис. 1-94

[alice@localhost alice]$ su -l
Password: 
[root@localhost root]# who am i
root
[root@localhost root]# ^D
[alice@localhost alice]$

Запуск системы, уровни запуска и сценарии инициализации

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

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

Рисунок 3.11. Рис. 1-95

[alice@localhost alice]$ ps -A | grep init
    1 ?        00:00:03 init

Процесс init не имеет управляющего терминала и его исполнение управляется файлом /etc/inittab. Этот файл содержит управляющие строки и комментарии. Комментариями в этом файле являются строки, начинающиеся с символа #.

Управляющие строки имеют формат:

ид:уровни:действие:процесс
  • ид — это идентификатор, представляющий собой уникальную в пределах файла цепочку от одного до четырех алфавитно-цифровых символов;

  • уровни — это список уровней исполнения, на которых исполняется данная строка;

  • действие — это выполняемое действие, которое обозначается словом с фиксированной семантикой:

  • respawn (перезапуск) — процесс будет перезапускаться по завершении;

  • wait (ожидание) — процесс запустится лишь однажды при входе на уровень;

  • once (однажды) — процесс запустится лишь однажды при входе на уровень без ожидания завершения;

  • boot (загрузка), «sysinit» (инициализация) — процесс будет запущен во время загрузки (поле уровни игнорируется);

  • initdefault — специальная строка, указывающая уровень запуска по умолчанию

и некоторые другие (зависит от конкретной системы);

  • процесс — это команда, инициирующая целевой процесс строки.

В каждый момент времени загруженная система находится на одном из уровней исполнения. Традиционно в системе определены уровни исполнения 0, 1, 2, 3, 4, 5, 6, S, s. Не менее традиционна их семантика:

  • 0 — остановка (разгрузка) системы;

  • 1 — однопользовательский режим работы (регистрация разрешена только главному пользователю и только с системной консоли);

  • 2--5 — определяются администратором (разработчиком) системы;

  • 6 — перезагрузка системы;

  • S и s — промежуточный однопользовательский режим, проходимый системой при входе на уровень 1.

Уровни 2-5 могут определяться, к примеру (достаточно типично, но не обязательно) так:

  • 2 — многопользовательский режим без сетевых служб;

  • 3 — многопользовательский режим;

  • 4 — не определен или идентичен 3;

  • 5 — многопользовательский режим с автоматическим запуском оконной системы X и графической программы регистрации.

Переход с уровня на уровень осуществляется командой init, поданной главным пользователем с операндом, соответствующим целевому уровню исполнения. Например, init 0 остановит, а init 6 перезагрузит систему.

Текущий уровень исполнения записан в переменную RUNLEVEL; соответственно, узнать его можно, подав команду echo $RUNLEVEL.

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

На Рисунок 3.12, «Рис. 1-96» приведен пример файла /etc/inittab ОС ALT Linux с сокращениями и переводами комментариев.

Рисунок 3.12. Рис. 1-96

# /etc/inittab: init(8) configuration.
# $Id: admin-intro.xml,v 1.2 2004/02/20 10:02:58 kirill Exp $

# Уровень исполнения по умолчанию.
id:3:initdefault:

# Загрузочный сценарий конфигурации|инициализации.
# Исполняется первым за исключения аварийной (-b) загрузки.
si::sysinit:/etc/rc.d/rc.sysinit

# Что делать в однопользовательском режиме.
~~:S:wait:/sbin/sulogin

# /etc/rc.d/rc исполняет S- и K-сценарии при переходе 
# между уровнями.
#
# Runlevel 0 - остановка.
# Runlevel 1 - однопользовательский.
# Runlevels 2-5 - многопользовательские.
# Runlevel 6 - перезагрузка.

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Обычно не исполняется, но сюда откатывается в аварийной 
# ситуации.
z6:6:respawn:/sbin/sulogin

# запуск программы регистрации getty.
#
# Поле "id" ОБЯЗАНО совпадать с последним символом имени 
# устройства терминала.
#
# Формат:
#  <id>:<runlevels>:<action>:<process>
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Запуск программы регистрации на уровне 5
x:5:respawn:/etc/X11/prefdm -nodaemon

Из вышесказанного этот пример должен быть более или менее понятен.

Обратим лишь особое внимание на строки вида

ид:уровень:wait:/etc/rc.d/rc уровень

. На каждом уровне исполняется лишь одна из них, а суть ее исполнения заключается в том, что подается команда «/etc/rc.d/rc» с номером уровня в качестве операнда.

Кроме этого сценария, инициализационные сценарии включают также сценарии запуска и остановки системных служб (/etc/rc.d/init.d/*) и каталоги /etc/rc.d/rc*.d, соответствующие отдельным уровням исполнения, содержащие ссылки на сценарии запуски и остановки, причем ссылки с именами, начинающимися на K, указывают на сценарии, которые должны быть исполнены при выходе с данного уровня, а начинающимися на S — на те, которые должны быть исполнены при входе на уровень. Администратор может изменять состав уровней, удаляя и добавляя ссылки в этих каталогах.

Демоны

Процесс (как, например, init), не имеющий управляющего терминала, и управляемый содержимым специального файла (а также межпроцессной сигнализацией и (меж)сетевой связью), называется «демоном»[26]. Демоны выполняют целый ряд важных системных и прикладных задач, как-то: обслуживание очередей печати, обслуживание очередей отложенных и периодических процессов, обработка сигналов аппаратной системы управления питанием и т.п. В качестве демонов реализуются также большинство сетевых сервисов, таких, как серверы WWW и электронной почты.

Команду, запускающую сервер, принято выбирать так, чтобы она заканчивалась на букву d. Например, управлением отложенными процессами занимается демон atd, периодическими — crond. Сетевые сервисы часто именуются по обслуживаемому ими протоколу с прибавлением той же буквы, например, httpd отвечает за сервис WWW, httpd — за FTP-сервер и т.п.

Постоянно исполняемые демоны запускаются в процессе запуска системы, как было описано выше.

Периодические и отложенные процессы

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

Отложенные процессы — это процессы, запускаемые командой, помещенной в очередь отложенных процессов. Постановка команды в очередь отложенного исполнения выполняется посредством команды at, а само исполнение — посредством соответствующего демона (atd).

Периодические процессы — это процессы, поставленные в соответствующую очередь, и выполняющиеся по расписанию. Типичным примером периодических процессов является проверка целостности файловых систем на сервере, выполняющаяся обычно в то время, когда система не загружена или загружена в минимальной степени выполнением прикладных задач. Домашний компьютер (если допустима его работа в ночное время) может быть настроен на получение по коммутируемой связи почты с утра или передачу объемных файлов по FTP ночью. Постановка команды в очередь периодического исполнения осуществляется командой crontab, эта же команда с ключем -l применяется для просмотра очереди текущего пользователя. Сам запуск команд выполняется посредством демона crond.

Команда crontab может использоваться и для отложенного однократного исполнения; присутствие в стандарте отдельной команды at объясняется, в основном, историческими причинами.

Системные журналы

Многие сервисы (демоны), а также ядро системы ведут файлы-журналы («логи»), в которые записываются важные события. Практически во всех системах эти журналы располагаются в файлах, распределенных по подкаталогам каталога /var/log/. К журналам администратор обращается, чтобы выяснить причины неполадок в системе.

Основная проблема, связанная с журналами, заключается в том, что они растут. Практически все ОС предлагают набор средств, позволяющих рационально управлять этим процессом, например, сжимать данные более чем недельной давности и окончательно удалять данные более чем месячной давности[27]. Эти средства называются системой ротации журналов и должны быть описаны в документации на конкуретную ОС.

Управление пользователями

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

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

Для этого предназначены команды useradd (добавление пользователя), userdel (удаление пользователя), passwd (изменение пароля), groupadd (добавление группы), groupdel (удаление группы). Также управлять пользователями можно, непосредственно редактируя файлы с информацией о них, включая /etc/passwd, /etc/group и /etc/shadow, имеющие табличную структуру, описанную на соответствующих страницах документации.

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

В «лекции» 5 файловая структура обсуждалась с точки зрения оператора, при полной абстракции логической структуры от ее физической реализации. С точки зрения администратора файловая структура состоит из одной или более файловых структур, которым соответствуют отдельные реальные или виртуальные носители информации. Большая часть файлов размещена на реальных (физических) носителях информации: разделах фиксированных (жестких) магнитных дисков и съемных накопителях: дискетах, компакт-дисках и DVD, твердотельных накопителях («флэш-драйвах»).

Соответствие между физическими носителями информации и элементами файловой структуры устанавливается с помощью команд монтирования и демонтирования устройств. Монтирование (mount) логически добавляет дерево файловой структуры, размещенной на устройстве, в качестве каталога файловой структуры системы; демонтирование (umount) логически удаляет такой элемент файловой структуры (см. Рисунок 3.13, «Рис. 1-97»).

Рисунок 3.13. Рис. 1-97

/
        bin
        boot
        dev
        etc
        home
        lib
        mnt
                shuttle
...
mount /dev/hdb3 /mnt/shuttle
---------->














<----------
umount /mnt/shuttle
/
        bin
        boot
        dev
        etc
        home
        lib
        mnt
                shuttle
                        1
                        2
                        ...
...        

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

Тип файловой системы (ФС) — это регламент физической разметки носителя информации, указывающий, как именно располагаются на нем данные. Различные ОС поддерживают различные наборы файловых систем; фактически, стандартизована только файловая система для компакт-дисков. Самым «всеядным» является ядро Linux, поддерживающее порядка двух десятков различных ФС, как разработанных специально для ОС GNU/Linux, так и для других ОС, включая альтернативные.

Среди них стандарт компакт-дисков iso9660, традиционная ФС Linux ext2, новые ФС Linux ext3, jfs и reiserfs, набор ФС, используемых в ОС MS-DOS, Microsoft Windows и Microsoft Windows NT (msdos, vfat, ntfs) и т.д. Следует знать также о виртуальной ФС proc, при помощи которой в файловую структуру ОС отображаются исполняемые процессы.

Из блочных файлов-устройств нам интересны прежде всего:

  • IDE- и SCSI-накопители на жестких магнитных дисков (/dev/hd* и /dev/sd*, соответственно). К шинам IDE и SCSI также могут подключаться приводы компакт-дисков и DVD; изредка — другие блочные устройства. Для приводов компакт-дисков и DVD в процессе установки обычно создаются синонимы /dev/cdrom, dev/cdrom2 и т.д).

  • приводы накопителей на гибких магнитных дисков (/dev/fd*), для которых обычно при установке создаются синонимы /dev/floppy, /dev/floppy2 и т.д.

Жесткие диски и другие накопители, подключаемые к IDE- и SCSI-контроллерам, обозначаются буквами. /dev/hda соответствует ведущему (master) диску на первом (primary) контроллере IDE, /dev/hdb — ведомому (slave) диску на том же контроллере, /dev/hdc — ведущему диску на втором (secondary) контроллере и т.д.

Поскольку в случае с жесткими дисками томом файловой системы выступает не диск в целом, а его раздел, отдельные разделы дисков также отображены в каталог /dev/ в форме /dev/hdnm, где n — буквенное обозначение диска, а m — число, указывающее номер раздела (начиная с 1). Числам 1-4 соответствуют первичные разделы жесткого диска, числам начиная с 5 — логические разделы вторичного раздела (вне зависимости от количества первичных разделов).

Таким образом, третий раздел ведомого диска на первом контроллере получит наименование /dev/hdb3. Смонтировать содержащуюся на нем файловую структуру в каталог /mnt/shuttle/, в предположении, что она имеет тип VFAT, можно командой mount -t vfat /dev/hdb3 /mnt/shuttle.

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

  1. файл-устройство, содержащее файловую структуру;

  2. точка монтирования (каталог);

  3. тип файловой системы;

  4. параметры монтирования (список, разделенный запятыми).

Пятое и шестое поля содержат специальную информацию для программы резервного копирования dump и программы контроля целостности ФС fsck, соответственно. Из параметров мотирования упомянем:

  • user (делегирует возможность монтирования всем пользователям; полезно для съемных дисков и «чужих» разделов на однопользовательских системах);

  • noauto (отменяет автоматическое монтирование при загрузке системы).

Пример содержимого такого файла приведен на Рисунок 3.14, «Рис. 1-98»

Рисунок 3.14. Рис. 1-98

/dev/hdb5 / reiserfs notail 1 1
/dev/hdb7 /home reiserfs notail 1 2
/dev/cdrom /media/cdrom auto user,iocharset=koi8-r,umask=0,exec,codepage=866,ro,noauto 0 0
/dev/floppy /media/floppy auto user,iocharset=koi8-r,umask=0,sync,exec,codepage=866,noauto 0 0
/dev/hdb1 /mnt/shuttle vfat iocharset=koi8-r,umask=0,codepage=866 0 0
proc /proc proc gid=19 0 0
/dev/hdb6 swap swap defaults 0 0

Обратите внимание на две последних строки: строка

proc ...

содержит ключевое слово proc вместо имени устройства (т.к. этой виртуальной файловой системе не соответствует никакое устройство), а строка

/dev/hdb6

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

В нашем примере при загрузке системы будут смонтированы все устройства, упомянутые в строках, не содержащих noauto в поле параметров. Компакт-диск и гибкий диск можно будет смонтировать, подав простую команду mount /dev/cdrom или mount /dev/floppy, причем сделать это (а также демонтировать устройство) сможет любой пользователь (параметр user).

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

И, наконец, стоит ответить на вопрос, который наверняка возник у внимательного читателя: если информация, касающаяся монтирования ФС при загрузке, сама расположена на одной из ФС, как ядро получает к ней доступ? При загрузке ядра оно внутренними средствами монтирует файловую систему / в соответствие с включенным в него явным указанием на физическое устройство, ее содержащее. Изменить этот указатель можно, задав соответствующий параметр в загрузчике или «перепрошив» указатель в ядре командой rdev.

Обычно инсталлятор (программа установки ОС) выполняет первичную разметку или переразметку жестких дисков. При добавлении в систему нового диска администратору следует определить, как будет использоваться его емкость и осуществить его разбиение на разделы и создание файловых структур в этих разделах. В GNU/Linux и BSD для этого служат команды fdisk (форматирование диска) и makefs (создание ФС), другие ОС могут предоставлять другой инструментарий для решения этой задачи.

Другие задачи администрирования

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

В состав задач по администрированию входят также необходимые действия по управлению оборудованием при добавлении или смене различных устройств. Обычно это наиболее хорошо описанные в документации процедуры; к тому же в современных системах существуют средства, автоматизирующие этот процесс в большинстве случаев (например, kudzu в GNU/Linux). Отметим, что, вопреки распространенному мнению, далеко не все устройства требуют специфической поддержки на уровне ядра или даже системы. Некоторые устройства поддерживаются в своей специфике прикладными программами и пакетами (например, принтеры и сканеры), а от ядра требуется лишь обобщенные методы, предоставляющие физическое устройство «сырым» в распоряжение прикладных процессов.

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

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



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

[25] Наиболее известный пример — ОС Darwin, входящая в операционную среду Mac OS X: пользователь administrator в ней обладает по умолчанию широкими полномочиями, однако меньшими, чем главный пользователь root.

[26] Ничего инфернального в этом названии нет, англ. daemon в данном случае — аббревиатура от Disk And Executive MONitor (дисковый исполнительный монитор), восходящая к уже утраченной ранней терминологии системного программирования.

[27] Стратегия может быть и иной; самые ответственные приложения предполагают, что журналы хранятся если не вечно, то в течение срока исковой давности по возможным претензиям к лицу-владельцу системы.