Суббота, 18.05.2024, 12:43
Приветствую Вас Гость | RSS
Поиск
Главная | Каталог статей | Регистрация | Вход
        LINUX & OpenSource
Форма входа
Меню сайта

Категории каталога
Ubuntu [38]
Mandriva [1]
OpenSUSE [2]
Gentoo [3]
OpenSolaria [0]
FreeBSD [0]
О Linux и OpenSource [10]

Друзья сайта

Наш опрос
Какоую операционную систему Вы используете
Всего ответов: 77

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Gentoo

Gen-To: How-To по установке Gentoo

Вводная

Среди всех дистрибутивов GNU/Linux Gentoo выделяется особо, ибо представляет собой самый продуманный и разработанный Source-based дистрибутив, уже обзаведшийся отличной репутацией и целой массой поклонников. И если Вы знаете, какой софт хотите видеть у себя на компьютере, а мысль о долгой компиляции и стойкой интернет-зависимости Вас не тревожит, Gentoo - это Ваш выбор, в реализации которого Вам поможет эта статья.

На сайте Gentoo для установки предлагается скачать один из несколькольких образов установочных дисков, но все они обладают общим недостатком - с ними невозможно работать, пока система устанавливается. А ведь на некоторых компьютерах установка может длиться целый день! Могут быть и другие причины невозмождности использования дисков от Gentoo. Например, они могут не содержать требуемого сетевого драйвера, как это было в моём случае. Так или иначе, установочные диски от Gentoo могут не подойти, но желание установить Gentoo может и не пропасть.

Именно поэтому моя статья посвящена вопросу установки Gentoo Linux версии 2005.1 с произвольной развёрнутой системы GNU/Linux. В этих целях подойдёт любой имеющийся в хозяйстве LiveCD или какой-либо (уже установленного) дистрибутив GNU/Linux. В дальнейшем будет предполагаться, что на момент начала установки пользователь имеет какой-либо LiveCD (или установленный на жёсткий диск дистрибутив; впрочем, я буду исходить из того, что пользователь использует для установки LiveCD SLAX) и компьютер, с которого есть выход в интернет. Кроме того, если пользовать желает видеть иные ОС (помимо Gentoo) на своём компьютере - они все должны быть установлены до установки Gentoo. В особенности Windows любого рода (вплоть до XP).

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

Метим диск

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

Что касается базовой концепции, тот тут всё просто: пространство диска разбито на фрагменты - разделы; все разделы Linux видит как устройства, доступные по именам /dev/hd + маленькая латинская буква начиная с "a" + цифра начиная с "1" для физических разделов или с "5" - для логических. Так первый физический раздел на диске будет называться /dev/hda1, первый логический - /dev/hda5 (даже если нет hda1, hda2 и т.д.).

Теперь с результатом. Мы можем желать:

  1. Gentoo в роли единственной ОС;
  2. Gentoo, сосуществующую с Windows;
  3. Gentoo и Windows с загрузкой из Windows1.

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

Gentoo в роли единственной ОС

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

Итак, что нам нужно для установки Linux? Нам нужно место для (1) системы, (2) пользовательских файлов и (3) раздела подкачки. Начнём с конца.

Для решения вопроса о размере и положении раздела подкачки нам необходимо осознать, зачем он нужен. Итак, в своей работе ОС использует оперативную память. Но оперативной памяти может не хватать для текущих задач, так что система использует специально заготовленное место на жёстком диске как фрагмент оперативной памяти. Кроме того, раздел подкачки используется для сохранения данных из оперативной памяти при "спящем режиме". Имеет смысл делать этот раздел размером в удвоенный объём оперативной памяти. Что касается места для раздела подкачки, то было бы правильней отправить его в ту часть жёсткого диска, в которой операции чтения/записи происходят быстрее всего - в самое начало.

Для распределения остальных частей системы (программ и документов) нам потребуется понимание структуры каталогов Linux, которая подчинена стандарту FHS (Перевод В. Костромина). Собственно, по прочтении стандарта уже можно сделать все необходимые выводы, но если делать это лень, не хочется, непривычно или просто боязно, можно послушать мои мудрые советы.

От редактора: Прочитать указанный документ очень полезно. Однако читатель должен отдавать себе отчет, что это - отнюдь не догма, и даже не руководство к действию, а скорее протокол о благих намерениях, коими вымощена дорога... ну сами знаете куда. Собственно, это весьма детализированная, и потому очень субъективная, претензия на универсализм - и именно поэтому майнтайнеры многих дистрибутивов FHS откровенно игнорируют (особенно в тех его частях, в которых он отступает от вековых Unix-традиций) - А.Ф.

Теперь мы можем разделить структуру каталогов Linux на пять частей:

  1. Загрузчик (/boot);
  2. базовая система (/bin, /etc и /sbin);
  3. псевдокаталоги (/dev, /mnt и /tmp);
  4. внебазовая часть системы (/var, /opt и /usr);
  5. пользовательсие данные и программы (ветви каталога /home и /root).

Логично предположить, что третий пункт в перечислении почти не требует дискового пространства. Также несложно догадаться, что корневой каталог должен располагаться вместе с базовой системой. А поскольку Gentoo у нас - единственная ОС, в отдельно стоящем загрузчике потребности нет, и каталог /boot мы присоединяем к базовой системе. Размер базовой системы не велик, так что вполне можно отвести ей 256 - 512 Мб (в зависимости от жадности и боязливости установщика; вот я пуглив как лань и очень щедр, а потому моя базовая система ютится на 1 Гб). Идеальный формат для раздела базовой системы - ext2.

От редактора: впрочем, выделение каталога /boot на самостоятельный, первичный, раздел, причем не монтируемый автоматически при старте системы - это рекомендация разработчиков GRUB; и почему бы ей не последовать? - А.Ф.

Раздел /var служит для хранения часто изменяющихся файлов, которые сохраняются при перезагрузке. Поэтому для этого раздела требуется место поближе к началу диска и скоростная файловая система, достаточно безопасная для сохранения данных при внезапном выключении компьютера (при зависании, отключении питания или прыжка любимого кота на клавиатуру). На данный момент я не вижу кокнурентов ReiserFS в этой области. Что касается размера раздела, то тут нужно помнить о том, что именно в /var Portage производит сборку программ, так что разумным будет размер в пределах 3 Гб (такие требования предъявляет, к примеру, OpenOffice.org; если Вы согласны довольствоваться бинарным OpenOffcie или обойтись без него, а равно если собираетесь указать Portage другое место для сборки ПО, можете уменьшить размер этого раздела, но не более чем до 1,5 Гб).

Что качается /opt и /usr, то эти разделы выполняют одну общую задачу - хранят код и данные исполняемых программ. Близость их задач заставляет задуматься о том, не стоит ли объединить их в одном разделе? Мой вывод: стоит! Мы отведём для них один раздел, после чего (позже) создадим символическую ссылку из /opt на /usr/opt. Также мы сделаем ещё одну ссылку, благодаря которой перенесём исходники (distfiles) из /usr в /home (что является вполне разумным выбором для новичка в Gentoo - если вдруг что-нибудь случится, исходники заново качать не придётся). Размер раздела в 4 Гб в таком случае выглядит вполне разумным выбором.

От редактора: я категорический сторонник выделения на отдельные файловые системы ветвей /usr/portage и /usr/portage/disfiles; кроме надежности (а скачивание тарбалла с деревом портежей также требует времени или трафика), это позволяет, путем подбора оптимальных файловых систем и размера их логического блока, прибавить пять копеек производительности - А.Ф.

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

От редактора: /home - обычно самый большой, и потому для него есть смысл подумать об XFS; а вот отчленение /root от корня - просто неправильно: в аварийных ситуациях, когда на старте системы может не смонтироваться ничего, кроме /, суперпользователь рискует остаться без своих привычных конфигов - А.Ф.

Итого у нас получилось 5 разделов. Поскольку в x86-совместимых компьютерах не может быть более четырёх физических разделов, нам придётся создавать логические разделы:

  • 2x оперативная память - swap
  • 1024 Мб - ext2 - /
  • логический раздел
    • 3072 Мб - ReiserFS - /var
    • 4096 Гб - ReiserFS - /usr
    • остальное - ReiserFS - /home

Для того, чтобы всё это сделать, исполняем fdisk /dev/hda. В появившейся командной строке исполняем p для просмотра списка разделов. Если разделы есть, удаляем их командой d.

Когда все разделы удалены, создаём новые командой n, после чего командой a делаем второй раздел загрузочным и меняем тип первого раздела командой t. Раздел должен быть типа 82 ("Linux swap / Solaris"). Для выхода нажимаем w.

Когда работа в fdisk закончена, исполняем:

mkswap /dev/hda1
mke2fs /dev/hda2
mkreiserfs /dev/hda5
mkreiserfs /dev/hda6
mkreiserfs /dev/hda7
swapon /dev/hda1
mkdir /mnt/gentoo
mount /dev/hda2 /mnt/gentoo
cd /mnt/gentoo
mkdirhier home/root/distfiles var usr usr/opt usr/portage
mount /dev/hda5 /mnt/gentoo/var
mount /dev/hda6 /mnt/gentoo/usr
mount /dev/hda7 /mnt/gentoo/home
ln -s home/root root
ln -s opt usr/opt
ln -s root/distfiles usr/portage/distfiles

Всё, теперь переходим к подготовке окружения Gentoo.

Gentoo, сосуществующую с другими ОС

Здесь всё немного меняется, поскольку в игру вступают дополнительные разделы для других ОС, а пользовательские данные расщепляются. Поскольку теперь у нас есть несколько ОС, нам нужно обезопасить себя от случайного удаления загрузчика, которое приведёт к очень неблагоприятным последствиям: загрузиться не получится ни в одну из установленных ОС. Чтобы этого не случилось, мы разместим данные загрузчика - каталог /boot - на отдельном разделе. Чтобы не возникло проблем при загрузке, мы поместим его в самое начало диска. Размер этого раздела будет зависить от того, сколько ОС семейства GNU будет установлено на компьютере. На каждую из них мы отведём по 16 Мб, к которым прибавим ещё 8 на всякий случай. Т.е. на компьютере с Windows и Gentoo нам потребуется раздел для данных загрузчика размером в 24 Мб. Также в случае с сосуществованием Gentoo и FreeBSD. А вот если мы хотим иметь кроме Gentoo, к примеру, Debian GNU/Linux, то раздел стоит увеличить до 40 Мб. Оптимальная файловая система для раздела для данных загрузчика - ext2.

Поскольку не все ОС так неприхотливы в вопросе расположения на диске, мы установим все ОС, кроме Gentoo, сразу после нашего загрузчика (или раздела подкачки, если поанируем его использовать).

Что касается данных пользователя, то помимо данных администратора и пользовательских настроек, которые не пригодятся в других ОС, у пользователя есть файлы с музыкой, текстами, картинками, фильмами и прочим контентом, который хотелось бы иметь доступным из под каждой ОС, установленной на компьютере. Чтобы это стало возхможно, мы создадим раздел для таких данных, отформатировав его в FAT. Его размер мы рассчитаем по остаточному принципу. Кроме того, создавать раздел /home в таком случае не целесообразно, а потому дерево портэжей и исходники у нас останутся в разделе /usr, который мы по такому случаю увеличим.

От редактора: очень спорно: использование под данные FAT лишает возможности какого-либо разграничения доступа к файлам, что на домашней машине, используемой также женами, детьми и другими домашними животными, может иметь весьма печальные последствия (прецеденты известны) - А.Ф.

Итого:

  • 24 Мб - ext2 - /boot
  • 2x оперативная память - swap
  • корневой раздел Windows (C:) (опционально) - не форматируем
  • логический раздел
    • 3072 Мб - ReiserFS - /var
    • 1024 Мб - ext2 - /
    • 8192 Мб - ReiserFS - /usr
    • остальное - раздел с документами - не форматируется

В этом случае часть работы придётся проделать самостоятельно - утилиты Linux не позволят достаточно безопасно и безболезненно уменьшить размер раздела для второй ОС, тогда как установка Gentoo должна быть выполнена после того, как все остальные ОС уже установлены.

От редактора: для уменьшения раздела FAT/VFAT/FAT32 можно использовать традиционный FIPS - запускается в сеансе эмуляции DOS; а вот сократить раздел NTFS можно как раз линуксовыми средствами - parted и его "мордами" qparted и gparted; правда, это требует установленного пакета ntfstools а из LiveCD в работоспособном состоянии я встречал его только на Knoppix - А.Ф.

Самостоятельно нужно будет передвинуть раздел с Windows (диск C:) так, чтобы до него на диске оставалось свободное место в объёме удвоенной оперативной памяти + 24 Мб. при этом размер раздела с Windows должен быть сведён к разумному минимуму, а "Мои документы" должны быть перенесены на другой раздел, который будет отстоять от раздела с Windows на 12,5 Гб, занимать всё место до конца жёсткого диска и быть логическим.

Остальное мы сделаем вместе. Исполняем fdisk /dev/hda. В появившейся командной строке создаём недостающие разделы командой n, после чего командой f исправляем таблицу разделов, командой a делаем первый раздел загрузочным и меняем тип второго раздела командой t. Раздел должен быть типа "82" ("Linux swap/Solaris"). Для выхода нажимаем w.

Когда работа в fdisk закончена, исполняем:

mke2fs /dev/hda1
mkswap /dev/hda2
mkreiserfs /dev/hda5
mke2fs /dev/hda6
mkreiserfs /dev/hda7
swapon /dev/hda2
mkdir /mnt/gentoo
mount /dev/hda6 /mnt/gentoo
cd /mnt/gentoo
mkdirhier boot var usr usr/home/root usr/opt usr/portage mnt/windows mnt/mydocs
mount /dev/hda1 /mnt/gentoo/boot
mount /dev/hda5 /mnt/gentoo/var
mount /dev/hda7 /mnt/gentoo/usr
ln -s usr/home home
ln -s home/root root
ln -s opt usr/opt

Всё, теперь переходим к подготовке окружения Gentoo.

Gentoo и Windows с загрузкой из Windows

Этот вариант имеет смысл выбирать в том случае, если Windows планируется оставить в качестве основной (как вариант - рабочей) ОС, а Gentoo поселить рядом для изучения/развлечения.

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

  • корневой раздел Windows (C:) (опционально)
  • логический раздел
    • 2x оперативная память - swap
    • 3072 Мб - ReiserFS - /var
    • 1024 Мб - ext2 - /
    • 8192 Гб - ReiserFS - /usr
    • остальное - раздел с документами - не форматируется

Как и в предыдущем случае, часть работы придётся проделать самостоятельно - утилиты Linux не позволят достаточно безопасно и безболезненно уменьшить размер раздела для второй ОС, тогда как установка Gentoo должна быть выполнена после того, как все остальные ОС уже установлены.

Самостоятельно нужно будет передвинуть раздел с Windows (диск C:) так, чтобы он начинался с самого начала диска и имел минимально разумный раздел; "Мои документы" должны быть перенесены на другой раздел, который будет отстоять от раздела с Windows на 12,5 Гб + удвоенный размер оперативной памяти, занимать всё место до конца жёсткого диска и быть логическим.

Остальное мы сделаем вместе. Исполняем fdisk /dev/hda. В появившейся командной строке создаём недостающие разделы командой n, после чего командой f исправляем таблицу разделов, командой a делаем первый раздел загрузочным и меняем тип второго раздела командой t. Раздел должен быть типа "82" ("Linux swap / Solaris"). Для выхода нажимаем w.

Когда работа в fdisk закончена, исполняем:

mkswap /dev/hda5
mkreiserfs /dev/hda6
mke2fs /dev/hda7
mkreiserfs /dev/hda8
swapon /dev/hda5
mkdir /mnt/gentoo
mount /dev/hda7 /mnt/gentoo
cd /mnt/gentoo
mkdirhier boot var usr usr/home/root usr/opt usr/portage mnt/windows mnt/mydocs
mount /dev/hda6 /mnt/gentoo/var
mount /dev/hda8 /mnt/gentoo/usr
ln -s usr/home home
ln -s home/root root
ln -s opt usr/opt

Всё, теперь переходим к подготовке окружения Gentoo.

Подготовка окружения Gentoo

В этом разделе всё будет проходить по заветам Руководства пользователя Gentoo (Gentoo Handbook).

Stage? Какой stage?

Раньше перед установкой системы пользователь должен был решить, что он хочет компилировать, а что можно оставить как есть. Теперь такого выбора нет, а потому с помощью любимого менеджера закачек скачиваем файл stage3-x86-[версия].tar.bz2 (x86 или amd64) и слепок с текущего дерева портэжей, разархивируем их:

cd /mnt/gentoo
tar -xjpvf stage*
tar -xjvf portage* -C usr

Подготовка к бою

Теперь, когда мы заготовили "лежанку" для нашей системы, требуется провести некотурую настройку, необходимую для дальнейшей работы. В любимом текстовом редакторе открываем /mnt/gentoo/etc/make.conf и редактируем его, сверяясь с документацией к gcc. У меня получилось вот что:

CFLAGS="-march=atlon-xp -O3 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"

От редактора: если для временных продуктов компиляции использовать tmpfs, необходимости во флаге -pipe не будет - А.Ф.

Отлично. Теперь добавляем в тот же /mnt/gentoo/etc/make.conf функции MAKEOPTS="-j2" (эта опция ускорит установку системы), USE="" (в этой строке мы позже укажем наши программные преференции) и LINGUAS="ru" (вписываем наш язык системы; впрочем у меня эта переменная окружения вместо "ru" приравнена к "en", что будет вполне неплохим выбором и для Вас, если английским Вы владеете неплохо и предпочитаете более точный англоязычный интерфейс родному, но неточному и неудобному русскоязычному). Редактор (и файл в нём) пока не закрываем.

Установка базовой системы

Смена окружения

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

mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot /mnt/gentoo /bin/bash
env-update;source /etc/profile

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

Portage-специфичные настройки

Прежде чем мы продолжим, нам необходимо обновить дерево портежей, что с лёгкостью достигается командой emerge sync.

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

Итак, проверяем USE на наличие лишних флагов. Для этого открываем файл /mnt/gentoo/usr/portage/profiles/use.desc и выполняем emerge info в той консоли, в которой мы переходили в новое окружение. В выводе этой команды ищем строку USE="" и читаем её. Если что-то нужно убрать, вписываем в USE="" с минусом, если добавить - просто вписываем (без минуса). У меня получилось следующее:

USE="3dnow Xaw3d a52 aac aalib acpi bash-completion -berkdb bluetooth bzip2 cdr clamav dvd dvdr dvdread -emboss exif extras fbcon ffmpeg flac ftp gcj gdbm gif -gnome -gstreamer hal iconv imagemagick -imlib -java javascript lcms libclamav -mad mime mmx mng -motif nptl offensive ogg -oss pda pic png posix samba slang sse svg sysvipc tetex threads tidy tiff unicode usb vorbis wifi wmf xine -xmms sxvid"

Помимо прочего стоит включить в USE такие флаги как nls, pic и unicode - они понадобятся далее.

Чтобы при установке и последующих обновлениях glibc не тратить время на пересборку ненужных локалей, отредактируем (всё в том же текстовом редакторе) /mnt/gentoo/etc/locales.build, удалив имеющиеся там пункты и добавив ru_RU.UTF8/UTF8. После этого создаём файл /mnt/gentoo/etc/portage/package.use, куда вписываем sys-libs/glibc userlocales.

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

Самым первым читается /etc/make.profile, который вообще не рекоммендуется изменять. Именно в этом файле задаются основные переменные, используемые в Portage. Следующим читается /etc/make.conf, в который пользователь вносит общие настройки для всех пакетов. Далее идут файлы /etc/portage/package.mask, /etc/portage/package.unmask и /etc/portage/package.use.

Первые два используются для наложения/снятия масок на файлы. Маски препятствуют установке файла, так что если внести строку >категория/пакет-версия в файл /etc/portage/package.mask, то этот пакет будет установлен только в версии не ниже указанной, а если добавить запись <=категория/пакет-версия в файл /etc/portage/package.unmask, то маска будет снята с указанного пакета в версиях от самой ранней до указанной включительно. Значки > и <= здесь называется atom и устанавливает зависимость от версии. Всего есть несколько видов таких зависимостей: > (последующая версия), >= (указанная или последующая версия), = (только указанная версия), <= (указанная или предшествующая версия), < (предшествующая версия).

Файл /etc/portage/package.use содержит сведения об индивидуальных флагах USE, и его синтаксис выглядит вот так: категория/пакет-версия флаг1 флаг2.

Эти три файла в совокупности читаются последними. Впрочем, кроме них читаются ещё и файлы, содержащие переменные окружения, которые могут понадобиться в процессе сборки (например, из /etc/env.d/02locale считываются LC_ALL и LANG), но эти настройки не могут пересекаться с специфичными для Portage.

Сборка базовой системы

Маленькое, но довольно полезное действие нужно совершить, прежде чем мы перейдём к доукомплектации нашей системы: нужно установить временную зону. Для этого отыскиваем в директории /usr/share/zoneinfo/ самую близкую по смыслу географическую привязку и копируем её в файл /etc/localtime. В моём случае команда выглядела так:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Теперь нам стоит привести имеющуюся систему в соответствие настройкам USE.

emerge --newuse -uD world
emerge depclean
emerge -D world

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

Итак, в консоли с окружением Gentoo исполняем следующее:

USE="-doc symlink" emerge gentoo-sources
cd /usr/src/linux
make menuconfig bzImage modules modules_install
cp arch/*/boot/bzImage /boot/kernel-`date --rfc-3339=date`
cp .config /boot/config-`date --rfc-3339=date`
make clean
cd /boot/
ln -s kernel-`date --rfc-3339=date` kernel

Исполнение этих команд займёт систему надолго, так что можно смело пойти заняться своими делами. Однако будет исключительно полезно почитать мануалы (инструкции) к командам управления пакетами: man portage, man ebuild, man 5 ebuild и man emerge. Прочтение этих инструкций займёт немного времени, но очень сильно поможет в быстром освоении и правильном использовании системы в дальнейшем.

Теперь доустановим некоторые необходимые утилиты:

  • prelink - это утилита, обеспечивающая предсвязывание (возможность заранее подгружать необходимые библиотеки). Если у Вас не менее 256 Мб памяти, предсвязывание будет весьма полезно.
  • syslog-ng - это демон (в терминах Microsoft "служба"), который ведёт системный журнал. Конечно, без него можно обойтись, но если учитывать, что он почти не занимает систему и даёт большие возможности, его однозначно стоит установить.
  • vixie-cron - демон, исполняющий команды по расписанию и/или под условием; опять же опционален, но исключительно полезен, а потому его стоит установить, даже если сейчас это кажется неоправданным шагом.
  • reiserfsprogs - утилиты для работы с файловой системой ReiserFS, которую мы активно используем. Если мы её всё-таки не используем, устанавливать этот набор утилит не нужно.
  • dhcpcd - демон-клиент для службы динамического распределения имён (DHCP). Если Вы при настройке сети в Windows или в "дружелюбных дистрибутивах" выбирали пункт "Получить IP-адрес автоматически", это Ваш выбор.
  • slocate - служба индексирования жёсткого диска, ускоряющая поиск файлов. Вот она уже действительно совершенно не необходима, а потому её можно и не устанавливать до тех пор, пока Вы не знаете, как с ней работать.
  • GrUB - загрузчик, который будет запускать Gentoo на нашем компьютере после установки.
  • Также стоит установить драйверы для того оборудования, которое не поддерживается ядром. В моём случае это были nvidia-kernel и ndiswrapper.

Итак, опустив лишнее и добавив свои драйверы, исполняем:

emerge prelink syslog-ng vixie-cron reiserfsprogs dhcpcd slocate grub

Конфигурирование новой системы

С помощью команды passw задаём пароль администратора. Теперь мы должны произвести необходимую настройку и доводку. Открываем и редактируем /mnt/gentoo/etc/fstab. В результате при первом варианте разбивки должно получиться нечто вроде этого:

# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# See the manpage fstab(5) for more information.
#

# <fs> <mountpoint> <type> <opts> <dump> <pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 none swap sw 0 0
/dev/hda2 / ext2 defaults 1 2
/dev/hda5 /var reiserfs noatime 0 0
/dev/hda6 /usr reiserfs noatime 0 0
/dev/hda7 /home reiserfs noatime 0 0
/dev/hdc /mnt/cdrom iso9660 noauto,ro,users 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0

# NOTE: The next line is critical for boot!
proc /proc proc defaults 0 0
none /tmp tmpfs defaults 0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

При втором:

# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# See the manpage fstab(5) for more information.
#

# <fs> <mountpoint> <type> <opts> <dump> <pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 /boot ext2 defaults 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 /mnt/windows auto defaults 0 0
/dev/hda5 /var reiserfs noatime 0 0
/dev/hda6 / ext2 defaults 1 2
/dev/hda7 /usr reiserfs noatime 0 0
/dev/hda8 /mnt/mydocs vfat noatime 0 0
/dev/hdc /mnt/cdrom iso9660 noauto,ro,users 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0

# NOTE: The next line is critical for boot!
proc /proc proc defaults 0 0
none /tmp tmpfs defaults 0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

При третьем:

# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# See the manpage fstab(5) for more information.
#

# <fs> <mountpoint> <type> <opts> <dump> <pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1 /mnt/windows auto defaults 0 0
/dev/hda5 none swap sw 0 0
/dev/hda6 /var reiserfs noatime 0 0
/dev/hda7 / ext2 defaults 1 2
/dev/hda8 /usr reiserfs noatime 0 0
/dev/hda9 /mnt/mydocs vfat noatime 0 0
/dev/hdc /mnt/cdrom iso9660 noauto,ro,users 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0

# NOTE: The next line is critical for boot!
proc /proc proc defaults 0 0
none /tmp tmpfs defaults 0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

После удачного завершения редактирования /mnt/gentoo/etc/fstab открываем /etc/conf.d/net.example, раскомментируем и правим оответствующие строки и сохраняем как /etc/conf.d/net, правим /mnt/gentoo/etc/conf.d/hostname и /mnt/gentoo/etc/conf.d/domainname.

Теперь нужно приказать системе запускать некоторые сервисы при загрузке:

rc-update add syslog-ng default
rc-update add vixie-cron default
rc-update add domainname default
rc-update add net.eth0 default

Русификация/локализация/кириллизация

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

От редактора: под локализацией обычно понимают учет местных (locale) языково-культурных особенностей, она напрямую не связана ни с поддержкой национальных языков (NLS), ни с обеспечением ввода/вывода символов, отличных от чистой латиницы; поэтому правильная установка локали (в формате язык_СТРАНА.предпочтительный_набор_символов, в наших условиях это будет выглядеть как ru_RU.koi8-r или, при тяге к прогрессу, ru_RU.utf8) через переменные пользовательского окружения почти обязательна (иначе возможны всякие неожиданности); при этом пользователя никто не обязывает читать коряво переведенные на русский сообщения или русские man-страницы: с помощью соответствующих переменных окружения можно сохранить английский как язык вывода системных сообщений, точку вместо запятой как десятичный разделитель (это требуется некоторым счетным программам), и так далее; впрочем, это - совсем другая история - А.Ф.

Так вот, локазизацию Gentoo не умеет, так что выбор сокращается. Лично я ограничиваюсь кириллизацией, но этот выбор не навязываю.

Итак, в первую очередь нам потребуется задать локаль. Для этого мы создадим файл 02locale в каталоге /etc/env.d/. Если мы жаждем русификации, на надо вписать туда только LC_ALL=ru_RU.utf8. Если же речь идёт о кириллизации, то потребуется целых четыре строки:

LANG="ru_RU.utf8"
LC_ALL=""

Но помимо настроек локали нам требуется настроить экранный шрифт и параметры раскладки. Первое делается после установки шрифтов (emerge terminus-font в файле /etc/conf.d/consolefont: устанавливается консольный шрифт (CONSOLEFONT="ter-u14n"), после чего настраивается таблица перекодирования (CONSOLETRANSLATION="koi8-r").

Теперь осталось только указать значения раскладки клавиатуры в файле /etc/conf.d/keymaps (KEYMAP="-u ru-ms" и DUMPKEYS_CHARSET="koi8-r").

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

Загрузчик

Если Вы помните, немного раньше, когда мы выбирали вариант разбивка диска, было три варианта. Если Вы выбрали первые два, мы будем настраивать GrUB, если третий, то ещё и NTLdr (но установку и настройку GrUB всё равно провести надо).

GrUB

Для установки GrUB выполняем в консоли с окружением Gentoo командуgrub. В появившейся командной строке GrUB, подставляя вместо X и Y цифры, соответствующие номенклатуре раздела (hd + номер диска начиная с нуля + номер раздела подряд начиная с нуля): root (hdX,Y) setup (hdX)

Если собираетесь загружать Linux силами Windows, то вместо (hdX) надо указать (hdX,Y) из предыдущей строки. Для завершения установки GrUB выполните quit.

Теперь в любимом текстовом редакторе создаём /boot/grub/grub.conf (или, если он уже есть) правим его, делая следующее:

timeout 5
default 1 # Здесь мы выбираем систему, которая загрузится по умолчанию
splashimage=(hdX,Y)/boot3/grub/splash.xpm.gz

title=Gentoo GNU/Linux
root (hdX,Y)
kernel /boot/kernel

Здесь возможен ряд дополнительных опций:

  • root=/dev/hda7 - указываем путь к разделу корневого каталога;
  • vga=0x3184 video=vesafb:mtrr,ywrap - выбираем видеорежим при использовании vesafb;
  • video=vesafb:mtrr,ywrap,1024x768-32@85 - выбираем видеорежим при использовании vesafb-tng; впрочем, в этом случае необходимый минимум опций, необходимых для работы в графической консоли, включён в ядро.

Установка GrUB завершена. Теперь, если мы не собираемся настраивать NTLdr, перезагружаемся, чтобы проверить работоспособность свежеустановленной Gentoo.

NTLdr

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

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

mount /mnt/mydocs
dd if=/dev/hda7 of=/mnt/mydocs/bsect.lnx bs=512 count=1
umount /mnt/mydocs
reboot

Теперь загружаемся под Windows, копируем файл D:\bsect.lnx в корень диска C:\ открываем в Блокноте (Notepad) файл C:\boot.ini, куда добавляем строку C:\bsect.lnx="Gentoo GNU/Linux". Перезагружемся, выбрав при загрузке пункт Gentoo GNU/Linux.

Доустановка

Завершение установки системы

Теперь мы находимся в базовой системе Gentoo, и перед нами встаёт выбор: либо мы ждём, пока установится наше пользовательское ПО (это может занять вплоть до недели), либо продолжаем работу и установку с LiveCD. Если мы делаем выбор в пользу ожидания, мы просто запускаем команды доустановки (в моём случае emerge nvidia-glx nvidia-settings w3m vim kde koffice k3b amarok ktorrent psi) и занимаемся своим делом, время от времени посматривая на экран и проверяя, не случилось ли чего. Выбор в пользу LiveCD означает перезагрузку, повторное монтирование всего и вся.

При этом может оказаться, что Вам требуется снять или, наоборот, поставить какой-нибудь флаг USE. Это вполне можно сделать путём внесения изменений в файл /etc/make.conf, однако после каждого такого изменения необходимо выполнять команду emerge --deep --newuse world.

Когда же процесс доустановки (и перезагрузки, если мы доустанавливали с LiveCD) будет завершён, надо будет провести вот такую операцию:

emerge sync
emerge -uD world
etc-update

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

#! /bin/sh
emerge sync
emerge depclean
emerge -fuD world
emerge -uD world
env-update
source /etc/profile
etc-update

var container = document.getElementById('nativeroll_video_cont'); if (container) { var parent = container.parentElement; if (parent) { const wrapper = document.createElement('div'); wrapper.classList.add('js-teasers-wrapper'); parent.insertBefore(wrapper, container.nextSibling); } }

Источник: http://citkit.ru/articles/201/
Категория: Gentoo | Добавил: admin (14.03.2009)
Просмотров: 2178 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0

Имя *:
Email *:
Код *:

Linux-Gai © 2024