сайт поддержки




<<на главную>>
<= статьи ключики Java игры =>

Найти: на:

архив загрузок

полезные ссылки

баннеро обмен

заработок в инете

Хакеры vs Админы

помошь в учебе

о наших друзьях

г.Хабаровск

НАШ Форум

telecom.by



alpari
" Установка Linux, первые шаги "

Многообразие Linux стало притчей во языцех, что одновременно усложнило процедуру установки этой операционной системы. Традиционно дистрибутивы Linux разделялись на несколько линий. Представители этих линий различаются подходом к процессу установки, логикой иерархии файловой системы, программами управления пакетами и их форматом, организацией запуска стартовых служб и т.п.
Однако роднит их одно - все дистрибутивы пакетные и образованы путем компиляции наборов, включающих ядро, средства загрузки, системные и пользовательские утилиты и прикладное ПО. В то же время, все более активно развиваются дистрибутивы, основанные на сборке из исходных текстов (Source Based Distributions - SB-дистрибутивы, http://distrowatch.com) и предусматривающие установку из скомпилированных пакетов только базовых компонентов системы - все пользовательские приложения собираются непосредственно из авторских исходных кодов.
SB-дистрибутивы обеспечивают большую гибкость установки и обновления, практически неограниченные возможности оптимизации под конкретную машину или задачу. Взамен этого SB-дистрибутивы предъявляют более высокие, нежели при пакетной установке, требования к квалификации пользователя. Конечно, прекрасная документированность SB-дистрибутивов делает процесс их установки доступным не только для Unix-гуру, однако от пользователя требуется понимание ключевых этапов установки: создание дисковых разделов; файловых систем и монтирование.
С процедуры подготовки диска начинало знакомство с ОС не одно поколение грядущих ее пользователей, а устрашающие комментарии к ней были непременным атрибутом описания процесса подготовки к инсталляции. Потом пришло время графических инсталляторов и специализированных утилит для управления разделами, начиная с Disk Druid из Red Hat и заканчивая дисковыми менеджерами Caldera, Mandrake, ASPLinux. Казалось бы, пользователю Linux, особенно начинающему, жить стало лучше и проблема дисковых разделов уже не выглядит столь пугающей. Так почему же возникает необходимость снова обратиться к ней? Во-первых, эпоха, когда Linux можно было без проблем установить на диск в 300-500 Мбайт, канула в Лету - ныне ни один уважающий себя дистрибутив не запросит менее 1-1,5 Гбайт. Иными стали и требования к структуре разделов, мало кого удовлетворит элементарная схема из root- и swap-разделов. Да и файловые системы стали иными - к единственной еще недавно ext2fs добавились разнообразные журналируемые системы и программные RAID-массивы, особенности которых приходится учитывать уже на стадии разбиения диска. Во-вторых, никакие менеджеры дисков не заменят понимания логики создания разделов, которая если и не гарантирует полностью от ошибок, то хотя бы сведет к минимуму их вероятность.

Создание дисковых разделов

Всякий, кто хоть раз устанавливал эту ОС Linux знает, что ATA-диски (SCSI-накопители - тема особая и для большинства пользователей все менее актуальная) в Linux маркируются в соответствии с порядком подключения к IDE-контроллеру: первый диск на первом канале - /dev/hda, второй - /dev/hdb, третий - /dev/hdc, четвертый - /dev/hdd. Эти имена дисков (собственно, не дисков, а файлов соответствующих им устройств) всегда неизменны.
Разделы на дисках маркируются дополнительными цифрами: с hd?1 по hd?4 для первичных разделов и начиная с hd?5 - для логических томов расширенного раздела. Поскольку в Linux принята таблица разделов в стиле MS DOS, последний может присутствовать только в единственном экземпляре, отнимая одно поле в таблице у разделов первичных. На физическом диске теоретически могут сосуществовать три первичных раздела и некоторое количество логических томов, например, hda1-hda3 и hda5-hda8. Ныне это нуждается в коррективах - большинство современных дистрибутивов Linux на базе ядра 2.4.xx задействуют файловую систему devfs, которая предоставляет массу дополнительных возможностей, в частности, избавляет от резервирования имен для отсутствующих в системе устройств, проблем со старшими номерами устройств и многого другого. Однако в ней по умолчанию применяется совершенно иная номенклатура и предусмотрены совершенно иные места для размещения файлов устройств. Так, для файлов любых ATA-накопителей предназначен каталог /dev/ide (в некоторых дистрибутивах файловая система устройств монтируется в каталог /devices, а каталог /dev сохраняется для совместимости). Файлы накопителей на встроенном IDE-контроллере локализуются в подкаталоге /dev/ide/host0. А внутри него есть два подкаталога, соответствующие IDE-каналам - /dev/ide/host/bus0(bus1), каждый из которых опять же может делиться надвое: на каталоги target0 и target1, по количеству подключенных устройств. Внутри каталога target0(1) имеется минимум еще один подкаталог lun0. А уж в нем размещаются непосредственно файлы устройств: disc для всего накопителя, part1, ... part# для разделов. Таким образом, полное обозначение дискового раздела будет выглядеть так:

/dev/ide/host0/bus0
/target0/lun0/part1


для первого первичного раздела на первом диске первого IDE-канала. Предусмотрен и более краткий способ обращения к файлам устройств - через жесткие ссылки (иные имена для тех же наборов данных). Для файлов дисковых накопителей они собраны в каталоге /dev/discs (для файлов CD-приводов, например, в каталоге /dev/cdrom) с подкаталогами disc0, ... , disc#. И потому к приведенному в качестве примера разделу можно обратиться и так:

/dev/discs/disc0/part1

Наконец, для совместимости со старыми соглашениями в большинстве дистрибутивов поддерживается номенклатура, принятая до внедрения devfs - все то же из примера можно обозвать просто как /dev/hda1.
Таким образом, подключение devfs не препятствует использованию старой номенклатуры накопителей. Которая и будет использоваться далее в примерах. Однако нужно помнить, что это лишь трансляция истинных имен файлов устройств, к которым и следует обращаться, если что-то не сработает.
При использовании файловой системы devfs имена файлов создаются только для реально существующих в системе устройств. Поэтому, если в системе имеется только единственное IDE-устройство, скажем, жесткий диск как мастер на первом канале, бесполезно было бы искать файлы устройств с именами, отличными от приведенного в примере - это удобно, но при неаккуратной реализации devfs может создавать сложности. Так, мне встречались дистрибутивы, в которых без дополнительных настроек удавалось смонтировать IDE-Zip только в том случае, если он находился в приводе в момент старта системы.

Чем разбивать?

На данный момент в мире свободного ПО используется три основные программы разбиения диска: традиционный fdisk, его собрат cfdisk, считающийся более дружелюбным к пользователю и относительно новая GNU-утилита parted. Кроме того, существуют и "продвинутые" дисковые менеджеры типа Disk Druid или HardDrake, однако о них речи здесь не будет. Как и о таких широко известных программах, как Partition Magic или отечественный продукт Acronis OS Selector. Несмотря на их многочисленные достоинства, они не являются открытыми.
Именно fdisk больше всего пугал в старые времена начинающих пользователей Unix, хотя ничего устрашающего в нем нет - просто "fdisk /dev/hd?", где в качестве имени устройства фигурирует физический диск, например, для мастера на первом канале это будет /dev/hda. При использовании devfs (и отказе от опознания файла устройства в старой номенклатуре) можно прибегнуть к форме

fdisk /dev/discs/disc#/disc

или к указанию полного имени файла устройства. Благодаря прекрасной системе помощи в любой момент можно получить полный список доступных команд, а команда p выведет текущее состояние разделов на диске. Разделы эти можно создавать (командой n) или удалять (командой d), однако до команды записи изменений (w) никаких необратимых действий, способных разрушить ранее существующие файловые системы (например, FATxx) не последует: неудачно созданные разделы можно удалить и на их месте создать новые.
При создании раздела средствами fdisk сначала определяется, будет ли он первичным (primary) или расширенным (extended), т. е. тем контейнером, в котором в дальнейшем будут созданы логические тома). Далее указывается номер раздела (от 1 до 4 для первичных и от 5 и выше - для логических). В этих пределах номер может быть любым - можно сначала создать раздел 2, а потом 1, или даже весь диск отвести под раздел 4 (именно так размечены фабричным способом zip-диски, почему соответствующие им файлы устройств в старой нотации выглядят как /dev/hd?4). Номер раздела останется на века: именно он будет идентифицировать файл устройства, соответствующий созданному разделу (например, /dev/hda2, или /dev/discs/disc1/part2).
Далее задается начальный цилиндр создаваемого раздела (по умолчанию - первый свободный, а для пустого диска - просто первый. Однако никто не мешает указать любой другой цилиндр в качестве стартового). А потом, конечный цилиндр (по умолчанию, последний физический на диске), или просто размер раздела в мегабайтах, например, +300M. При задании размера в единицах, отличных от цилиндров, он всегда будет округляться до ближайшего числа, кратного целому количеству последних. Так что не следует удивляться, если вместо искомого раздела в 20 Мбайт возникнет 16-мегабайтный, а вместо 22-мегабайтного - раздел в 24 Мбайт.
Создаваемый раздел автоматически получает статус Linux native (номер 83). Чтобы изменить его (а, скажем, для swap-раздела это необходимо), дается команда t и вводится код требуемой файловой системы. Теоретически поддерживаются практически все мыслимые файловые системы: от FAT12 до UFS (для BSD-систем). Однако сами по себе файловые системы средствами fdisk не создаются, и потому для чужых разделов потребуется их форматирование в родной среде. Тем не менее, смысл в такой операции есть - резервирование места под ОС, которые будут установлены позже, и, возможно, указание точек их монтирования.
Программа cfdisk описывается реже, хотя во многих дистрибутивах она пропагандируется как более удобная. После запуска программы выводится информация о диске (имя файла устройства, размер, число головок, секторов, цилиндров), таблица существующих разделов и меню из следующих пунктов: Bootable, Delete, Help, Maximize, Print, Quit, Type, Units, Write - для диска с существующими разделами. Если же диск не разбит, меню ограничивается пунктами Help, New, Print, Quit, Units, Write. До выбора пункта Write никаких необратимых изменений не происходит. По умолчанию размеры разделов в таблице указаны в мегабайтах. Для создания раздела выбирается пункт New, выводящий подменю: Primary, Logical, Cansel. Далее просто задается желаемый размер (в мегабайтах) и запрашивается, приписать ли раздел к началу диска или его концу. После чего остается только сохранить разбиение в таблице разделов.
Программа parted предлагается в рамках проекта GNU как универсальное средство для работы с дисковыми разделами и файловыми системами. И действительно, она позволяет создавать не только новые разделы, но и файловые системы на них, а также осуществляет проверку их целостности, удаление, перемещение, копирование и изменение размера существующих разделов. Запустив программу без опций и аргументов получим предупреждение об отсутствии гарантии, информацию о первом физическом диске системы, имя устройства в полной нотации devfs, данные о геометрии (цилиндры/сектора/головки), предупреждение о том, где кончается 1024 цилиндр и выведет приглашение командной строки.
Организация диска выполняется с помощью мнемонически прозрачных команд (print - просмотр, mkpart - создание раздела, rm - его удаление, и т.д.). Полный список доступных команд с возможными опциями и аргументами, а также краткими, но внятными комментариями можно получить, введя в командной строке (parted) help. В отличие от fdisk или cfdisk, в parted не предусмотрено специальной команды для записи изменений, все действия выполняются в реальном времени, без откладывания. Соответственно, parted требует исключительно аккуратного обращения. Однако в обмен на это предоставляет, во-первых, исключительную гибкость при задании размера и позиционировании раздела. Во-вторых, он делает доступными множество дополнительных манипуляций разделами и файловыми системами (правда, в полном объеме только для ext2fs и FAT16/FAT32, поддержка прочих пока не реализована).

Как разбивать?

Теоретически обязательно требуется два раздела: корневой (/) и раздел подкачки (linux swap). Однако практически их может потребоваться больше - в зависимости от дистрибутива, задач, размера диска, используемых файловых систем. Часто целесообразно выделение небольшого (10-20 Мбайт) раздела под каталог /boot, в котором будут размещены ядро системы и необходимые для его загрузки файлы. Этим достигается надежность системы и повышение ее производительности. Первое - за счет изоляции критически важных для загрузки (и редко изменяемых) компонентов и гарантии размещения ядра системы в пределах первых 1024 цилиндров (ядро иногда не может быть загружено с более дальних областей диска). Производительность возрастает, если сразу за таким разделом (т. е. максимально близко к началу диска) разместить раздел подкачки. Рекомендованный размер последнего для современных ядер равен удвоенному размеру оперативной памяти (но не более 2 Гбайт), минимально возможный - 128 Мбайт.
Ядро Linux не всегда может быть загружено из разделов с журналируемыми файловыми системами, например, ReiserFS. И если предполагается использование последней для корневого раздела, то необходимо выделение раздела под каталог /boot.
Для настольной машины практически обязателен раздел под каталог /home, в котором будут располагаться пользовательские данные - человеческий фактор чаще является причиной краха системы, чем все аппаратные сбои и программные ошибки, вместе взятые. Корневой раздел также требует места - именно в нем окажутся базовые компоненты системы и пользовательские программы. А дискового пространства под это нужно немало - в SB-дистрибутивах возникает необходимость большого свободного пространства для временного хранения архивов исходных кодов, результатов их распаковки и промежуточных продуктов компиляции. Так, для полного развертывания некоторых из них рекомендуется раздел в 8 Гбайт. Это, конечно, крайность, но задействовать под корневой раздел 4-5 Гбайт окажется не лишним в любом случае. Или - выделить из него в самостоятельные разделы каталоги /usr (для штатных пользовательских программ дистрибутива), /usr/local (для программ, самостоятельно собираемых из исходных кодов), /usr/X11 (для программ графического режима). В некоторых случаях создаются разделы для каталогов /tmp и /var, правда, это касается в основном серверов - на настольной машине их выделение нецелесообразно.
Какие создавать разделы, первичные или логические, вопрос спорный. Установщики многих дистрибутивов по умолчанию отдают предпочтение разделам логическим. Мое же глубокое убеждение - если четырех первичных разделов хватает (под корневой каталог, каталоги /boot, /swap и /home, к примеру), то ими лучше и ограничиться. К логическим разделам следует обращаться, только если их требуется больше (например, если уже установлена Windows и хочется оставить место под FreeBSD). И в любом случае корневой раздел должен быть первичным.
Все высказанные соображения относились к ситуации с единственным физическим диском. Если их в машине больше, то возможны варианты. Первый - вынесение на второй диск некоторых разделов, например, под каталог /home или его часть, предназначенную для резервного хранения данных. Кроме того, в этом случае рекомендуется разнесение на разные диски области подкачки путем создания на каждом самостоятельного swap-раздела половинного (но не менее 128 Мбайт каждый) размера. Это способствует повышению производительности за счет распараллеливания обращений к виртуальной памяти. Другой путь - создание программного RAID-массива, логического тома, объединяющего в себе разделы, расположенные на разных дисках. Однако использование их на настольных машинах (не серверах) представляется нецелесообразным.
В заключение напомню, что на стадии создания дисковых разделов мы отнюдь не предопределяем их назначение - раздел под каталог /boot станет таковым только после его монтирования в файловую систему.

                                                                                                                                  автор статьи - Fore[man]
moigorod.ru

WEBдизайн - "LAF"              Администратор
Rambler's Top100
Используются технологии uCoz