Инструменты пользователя

Инструменты сайта


igor:gentoo_insyallation

Установка Gentoo: глазами новичка

Почему я решил написать эту статью?

В принципе, если гуглить «Gentoo Handbook», то результат не заставит себя ждать. Но те хэндбуки, которые вам предложат, имеют следующие общие недостатки.
Во-первых, все они на английском языке. Даже для человека, достаточно хорошо учившего инглиш в школе, работа по таким руководствам сопряжена с трехкратным перерасходом умственных и нервных ресурсов.
Во-вторых, хотя хэндбук на первый взгляд выглядит достаточно подробно, фактически в нем имеются некоторые пробелы, особенно на границах этапов. Так что пользователю бывает трудно понять, где он сейчас находится и почему именно сейчас нужно выполнить именно эту операцию.
В-третьих, в хэндбуке весь процесс описывается как чисто линейный, как будто все операции выполняются с первой попытки и с положительным результатом. Готов поверить, что в большинстве случаев так и происходит. Но такой большой корабль, как я, завсегда найдет свою мель там, где маленькие лодки и катера проходят свободно. И вот первая же моя попытка установить Генту привела к нескольким аварийным ситуациям, о которых в хэндбуке ни слова. Я, разументся, с вами своими «открытиями» поделюсь. Но сначала - несколько общих слов про Генту.

Почему мы выбираем Генту?

Чтобы ответить на этот вопрос, разберемся, чем Gentoo отличается от других дистрибутивов. Большинство дистрибутивов - «бинарные». Этот термин означает, что в них весь софт (как системный, так и прикладной) представлен в репозитории в виде предварительно скомпилированных пакетов, содержащих выполнимый («бинарный») код, а не исходные тексты программ. Такие пакеты сравнительно быстро устанавливаются, но без возможности для нас выбирать, что в той или иной программе нам действительно нужно, а что нет: каждая программа сожержит в себе весь функционал, заложенный в нее разработчиком. Это же относится и к ядру системы. В Генте также имеется репозиторий с пакетами, но здесь пакеты содержат не выполнимый код, а исходные тексты, и компилировать их приходится нам на нашем компьютере, на который мы их хотим установить (хотя в то же время имеется и поддержка предварительно скомпилированных пакетов). Это долгий процесс: установка, например, Libre Office может затянуться на целую ночь.
За что такая плата? - За возможность исключить из программ (любых - вплоть до ядра системы) много такого, что нам не нужно. Причем копаться в исходных текстах программ нам не придется: предусмотрен другой механизм. В результате можем получить компактную и быструю систему, максимально приспособленную как к нашему оборудованию, так и к нашим задачам. Попросту говоря - «допиленную для себя». Причем вся конфигурация системы осуществляется либо посредством консольных команд, либо с помощью обычных текстовых файлов, которые могут быть прочитаны человеком. А если можно прочитать, то отчего бы не попробовать написать? Разумеется, все это требует знаний - более глубоких, чем для освоения бинарных дистрибутивов.
Получается, что Гента - система не просто для очень продвинутого пользователя, но для любителя и ценителя, но такая система никогда не захватит весь рынок линуксоидных систем (если здесь вообще уместно говорить о рынке) - она стоит и будет стоять особняком.
Нужна ли такая система вообще? - Без нее линуксоидный мир был бы совсем не тот… Gentoo - это мир, где можно выбирать все. Здесь вас не будут заставлять делать то, что вам не нравится. Это система с ясной и гибкой структурой, которая ничего не прячет под капюшоном. (это я просто перевел несколько фраз из хэндбука).
Нужна ли Гента конкретно вам? - вот вопрос, на который никто, кроме вас, не сможет ответить. После трех лет в Дебиане, когда я еще смотрел на Генту с определенным пессимизмом («сложная, зараза!»), у меня состоялся примерно такой разговор с моим компьютерным гуру:
– Может, не стоит мне соваться в Генту, может, лучше стать хорошим дебианщиком, чем посредственным гентушником?
– Ты не сможешь стать хорошим дебианщиком, пока не побываешь посредственным гентушником.
К этому, собственно, остается добавить еще одно соображение.
Установка Генты и последующее ее обновление выполняется путем закачки софта из интернета. Так что, если у вас нет возможности хотя бы эпизодически подключаться к недорогому скоростному интернету, то, вероятно, Гента - не ваш вариант. Ну а если выбор сделан, тогда - полный вперед!

Загрузка компьютера с вспомогательного носителя.

Что имеем на начальном этапе нашей работы: компьютер с материнской платой, процессором и оперативной памятью; к компьютеру подсоединен жесткий диск («винчестер»), на котором либо совсем ничего нет, либо установлена какая-то другая ОС, которую не жалко снести (вместе со всем файловым хозяйством, если оно еще не скопировано на другие носители!!!).
Что касается количественных требований к «железу», то Гента, в свете того что мы про нее уже знаем, может рассматриваться как легковесный дистрибутив с весьма скромными аппаратными притязаниями. В хэндбуке пишут: нужно 512МБ оперативной памяти и 2.5ГБ на жестком диске. Последняя цифра у меня вызывает некоторые сомнения. Однако в наше время, когда винчестер на 80ГБ уже считается безнадежным старьем, такие сомнения можно просто забыть.
Здесь надо заметить, что в Генте, в отличие от большинства других ОС разных семейств, не предусмотрено никаких особых программ-установщиков. Она, подобно строительному башенному крану, сама себя поднимает с помощью своих собственных механизмов, не нуждаясь в какой-либо посторонней помощи. Стало быть, на первом этапе нам надо загрузить компьютер Гентой без установки ее на жесткий диск, чтобы установить ее туда уже потом. В принципе, можно использовать и негентовый загрузочный диск, например Knoppix.
В хэндбуке упоминается множество вариантов: установка с флэшки, или по сети, или наоборот совсем без сети…
Минимальный установочный диск имеет объем порядка 200МБ, но для того чтобы им воспользоваться, нам сразу потребуется подключение к Сети. LiveDVD содержит хотя и минималистическую, но все же полностью жизнеспособную систему, с помощью которой мы сможем выполнять кое-какие операции, даже если подключиться к Сети не удается.

Подготовка загрузочного диска.

Будем использовать загрузочный LiveDVD-диск. У запасливого гентового сисадмина такой диск имеется в сундуке на самом дне. А если нет, то придется изготовить его сейчас. Для этого нам сгодится любой компьютер с любой операционной системой - да хоть с виндами, лишь бы была возможность скачать из Сети образ диска и «прожечь его на болванку». Как это делается, я сейчас конкретизировать не буду. Сейчас для нас более существенный вопрос: откуда качать?
Вот отсюда:
https://www.gentoo.org/downloads/
Там нужно выбрать файл образа, соответствующий архитектуре вашей машины.

Несколько слов об архитектуре.

Архитектура - совокупность важнейших черт внутреннего устройства, которыми разные компьютеры сходны или различны между собой. В нынешнем компьютерном мире разных архитектур довольно много (даже не считая тех, которые уже вышли или скоро выйдут из употребления). Генту можно установить на самые разные компьютероподобные устройства, но сегодня мы ограничимся «нормальными», или «большими», или общеупотребительными компьютерами. В этот класс входят обычные настольные ПК, ноутбуки и серверы. Их общая черта: имеется жесткий диск, на котором хранится как сама операционная система, так и прикладное ПО и пользовательское «файловое хозяйство». И с этого же жесткого диска система должна загружаться при включении компьютера, так что нам придется выполнить работу по установке системы на жесткий диск.
Если рассматривать именно такие компьютеры, то окажется, что разнообразие их архитектур не так уж и велико. Архитектура x86, она же i386, соответствует устаревшим 32-разрядным компьютерам. Более современные 64- разрядные машины строятся на процессорах Intel или AMD, т. е. имеем всего три архитектуры.
Софт, собранный для 64-разрядного компьютера, на 32-разрядном работать не будет категорически. ПО для 32-разрядного на 64-разрядном будет работать так же, как на 32-разрядном, т. е. без использования преимуществ 64-разрядного процессора. И уж, конечно, если у вас процессор многоядерный, то с 32-разрядным ПО вы никакой многоядерности не увидите.
Между процессорами Intel и AMD гораздо больше сходства, чем различия. Архитектура x86_64 (иногда для полной ясности пишут Generic x86_64) описывает обе эти архитектуры в той части, насколько они сходны. Грубо говоря, в такой программе имеются только команды, общие для двух марок процессоров - это компромиссное решение, удовлетворительно работающее на обоих, но с потерей хитрых преимуществ каждого из них.
Позже, на этапе компиляции ядра ОС, нам предложат Generic x86_64 именно в качестве такого компромиссного решения. Соглашаться с ним или нет - мы рассмотрим по ходу дела. А сейчас, когда мы создаем Live-диск, такой компромисс нас полностью устроит.
Размер iso-образа около 2ГБ, так что CD-диском тут не обойдется - нужен DVD.
Однако по-любому дисковая технология должна считаться устаревшей. Чем носить с собой 13-сантиметровый диск (к тому же довольно хрупкий), который еще надо куда-то воткнуть (не все современные компьютеры имеют дисководы), куда удобнее использовать USB-флэшку. Игра построена на том, что компьютер не знает, на каком материале и каким физическим образом записаны данные. Да ему и дела до этого нет: он видит просто блочное устройство и файловую систему на нем - и работает как ему привычно. Мы же можем «прожечь» ISO-образ на флэшку пости так же, как и на диск:

root@bigwhite:/home/igor# dd if=/home/igor/livedvd-amd64-multilib.iso of=/dev/sdb bs=1M

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

Загрузка с установочного диска.

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

LiveCD #

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

Подъем сети.

Что имеем: наш компьютер загружен настоящей Гентой, но минималистической: в нашем распоряжении лишь «малый джентльменский набор» команд, необходимых для последующей установки системы на жесткий диск. Для полноценной работы на компьютере нам потребуется более серьезный программный арсенал, так что на жестком диске система будет занимать гораздо больший объем. То, чего нам сейчас не хватает, придется докачивать из интернета - значит первое, что нам нужно сделать сейчас, - это поднять сеть.
Предполагается, что читатель знаком с простейшими приемами работы с сетью, хотя бы с терминологией.
Позже, на этапе послеустановочной конфигурации, мы снова будем поднимать сеть. Почему снова, а не все за один раз?
В рамках послеустановочной конфигурации нам надо будет настроить систему так, чтобы она автоматически поднимала сеть при включении компьютера. Для этого мы впишем нужные параметры в конфигурационные файлы и поместим все это в нужные каталоги. Позже, при каждой очередной загрузке система будет читать эти файлы и настраивать сеть согласно тому, что там записано. Сейчас у нас задача другая. Записывать конфигурационные файлы нам просто некуда, а сеть нужна прямо сейчас. Поэтому для ее настройки будем использовать консольные команды непосредственного действия, а ряд последующих операций желательно будет произвести «в один присест», чтобы потом не пришлось возвращаться к подъему сети.
Команды, которые мы сейчас будем использовать, общие для всех линуксоидных систем, да и в BSD, и в макоси все делается так же (ну, может быть, с точностью до каких-то нюансов). Так что ничего генто-специфичного нам сейчас делать не придется.

Первичная проверка сети.

Live-диск «сконструирован» так, чтобы максимально автоматизировать подъем сети в наиболее типичной ситуации, которую разработчик может себе представить. Предполагается, что наш компьютер подключен к локальной сети Ethernet, а в сети имеется шлюз-маршрутизатор для доступа в интернет, а также DHCP-сервер, автоматически раздающий параметры настройки сети всем заинтересованным участникам.
Возможно, ваша сеть работает по-другому, например с использованием ADSL, PPP (PPPoE) или PPTP (в Билайне - L2TP). Я с такими сетями дела не имел, поэтому о них не пишу - смотрите хэндбук. Там пишут, что на установочном диске все нужные инструменты имеются.
Если же сеть у вас такая, как предполагает разработчик Live-диска, то с 99% вероятности можно предположить, что сеть уже поднята. Однако проверим:

LiveCD # ifconfig
enp1s0 Link encap:Ethernet HWaddr 00:0c:76:4e:a4:1d
inet addr:192.168.222.246 Bcast:192.168.222.255 Mask:255.255.255.240
inet6 addr: fe80::20c:76ff:fe4e:a41d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1717 errors:0 dropped:0 overruns:0 frame:0
TX packets:1835 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1266328 (1.2 MiB) TX bytes:254151 (248.1 KiB)
Interrupt:23 Base address:0xe800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
<дальше неинтересно>


Если сетевая карта работает, то в выводе команды ifconfig мы увидим раздел с именем, похожим на eth0, в данном случае enp1s0. Такое имя - нововведение из серии «хотели как лучше, а получилось как всегда». На этапе послеустановочной конфигурации мы от этого избавимся, вернемся к традиционному eth0, но сейчас заморачиваться не будем. Слово UP означает, что интерфейс поднят, т. е. разным программам разрешено принимать и отправлять данные по сети. Слово RUNNING означает, что сетевая карта ощущает присутствие работающего оборудования на другом конце провода. Inet addr:192.168.222.246 - это IP-адрес (у вас будет другой) - если вы его видите, значит ваш компьютер «дозвонился» до DHCP-сервера и получил параметры настройки, соответствующие той сети, в которой он в данный момент находится. Иначе этому адресу просто неоткуда было бы взяться.

Простейшая диагностика локальной сети.

А если ничего похожего на eth0 или enp1s0 вообще нет?
Значит компьютер «не видит» сетевую карту как таковую. Эта проблема имеет источник в нашем компьютере, а не в сети. По идее, при загрузке ОС компьютер «прощупывает» все периферийные устройства, определяет, кто есть кто из них, и операционная система автоматически устанавливает нужные модули ядра (драйверы). Однако если у вас какая-нибудь хитрая сетевая карта, то этот процесс может не дать результата. Значит, модуль драйвера сетевой карты придется установить вручную. Сам я этого не делал, поэтому просто даю перевод из хэндбука.
Используйте команду ls, чтобы выяснить, какие модули ядра обеспечены на загрузочном диске:

LiveCD # ls /lib/modules/`uname -r`/kernel/drivers/net

Если в полученном списке имеется модуль для вашей сетевой карты, используйте команду modprobe для загрузки нужного модуля ядра. Для примера установим модуль pcnet32:

LiveCD # modprobe pcnet32

Снова используйте ifconfig, чтобы проверить, обнаруживается ли теперь сетевая карта.

А если сетевая карта найдена компьютером, но не работает как следует?

1). Есть ли слово UP в выхлопе команды ifconfig? Если нет, значит сетевой интерфейс нужно поднять принудительно:

LiveCD # ifconfig enp1s0 up

Эта операция чисто программная, никаких неисправностей быть не должно.
2). Есть ли слово RUNNING? Если нет: (а) где-то не контачит провод, (б) ближайшее к нам промежуточное сетевое устройство неисправно или выключено.
3). Если UP и RUNNING, но нет IP-адреса, значит DHCP-сервер нам его не выдал.

Почему не удается получить DHCP?

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

LiveCD # dhcpcd enp1s0

Некоторые сисадмины требуют, чтобы мы на своем компьютере использовали имя хоста и домена, обеспечиваемое DHCP-сервером. В таком случае нужна команда:

LiveCD # dhcpcd -HD enp1s0

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

LiveCD # ifconfig enp1s0 192.168.222.249 netmask 255.255.255.240

(я для примера привожу свои параметры).

Настройка сети для выхода в интернет.

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

LiveCD # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.222.244 0.0.0.0 UG 0 0 0 eth0
192.168.222.240 0.0.0.0 255.255.255.240 U 0 0 0 eth0


Строка, где Destination = 0.0.0.0, а в колонке Flags присутствует буква G, - это как раз и есть маршрут по умолчанию (дефолтный маршрут - default route). Адрес в этой строке в колонке Gateway - адрес вашего шлюза (маршрутизатора). Он должен «перекликаться» с IP-адресом, который мы получили в прошлой команде (скорее всего они будут отличаться одной или несколькими последними цифрами). По идее, грамотно настроенный DHCP-сервер должен нам его дать вместе с нашим IP-адресом. Если же маршрута по умолчанию нет, придется задать его вручную:

LiveCD # route add default gw 192.168.222.244

Для полного душевного спокойствия снова проверяем, как выше.
Я здесь описываю самые простые и самые типичные команды для работы с сетью. Они должны помочь с 99% вероятностью. Если, несмотря на предпринимаемые вами усилия, что-то идет не так, значит дело сложное, и в рамках настоящей статьи я на этой теме не сосредоточиваюсь: устранение неисправностей в сетях - тема для отдельной…даже не статьи, а целой книги.

Подготовка жесткого диска к установке системы

Что имеем: наш компьютер загружен и подключен к Сети, но мы хотим иметь ОС на жестком диске, а там пока что ничего нет.
Что требуется сделать: заполнить наш жесткий диск необходимыми файлами. В рамках этой задачи нам предстоит выполнить следующие технологические операции:
* Разметить на «винчестере» разделы;
* Создать на разделах файловые системы (пустые) - в терминологии DOS/Windows выполнить высокоуровневое форматирование;
* Примонтировать разделы к общей файловой системе и тем самым обеспечить возможность что-либо на них писать;
* Скачать из Сети архивные файлы и развернуть их на «винчестер».
Если присмотреться внимательнее, то мы увидим, что в этих операциях нет ничего специфически гентушного. Нечто подобное придется делать при установке любой ОС. Но когда мы устанавливали винды (или тот же Дебиан), к нашим услугам была программа-установщик, которая что-то делала за нас, где-то предлагала меню или другие средства «дружественного интерфейса». В Генте все придется делать врукопашную. Это может показаться сложным, но зато дает «ощущение машины», да и к кониманию внутримашинных процессов приближает.

(ПРОДОЛЖЕНИЕ СЛЕДУЕТ)

igor/gentoo_insyallation.txt · Последнее изменение: 2017/01/31 15:25 — igor