Базовая установка Gentoo Linux
Базовая установка операционной системы Gentoo Linux
Для начала потребуется скачать livecd
Установка и загрузка системы
Скачиваем образ диска Gentoo
и загружаемся с него.
После загрузки жмакаем Enter
Начнется загрузка LiveCD
Подготовка дисков
Существует 2-е технологии построения дисков. MBR и GPT.
Первая из которых имеет 32-битные идентификаторы для начального сектора и длины разделов. И поддерживают три типа разделов: первичные (primary), расширенные (extended) и логические (logical). Первичные разделы хранят информацию о себе в самом MBR - очень маленьком кусочке пространства (обычно 512 байт) в самом начале диска. Из-за такого маленького объема, поддерживаются только четыре первичных раздела (например, от /dev/sda1
до /dev/sda4
).
К сожалению каждый размер имеет ограничение в 2Tb, из-за 32-битных идентификаторов. Поэтому я буду использовать GPT.
Опишу более подробный пример здесь, еще ниже пример для “скоростной установки”.
Включаем флаг загрузки на раздел MBR
1 | fdisk /dev/sda |
1 | Welcome to fdisk (util-linux 2.24.1). |
Разработка схемы разбиения диска
Раздел | Файловая система | Размер | Описание |
---|---|---|---|
/dev/sda1 | (начальный загрузчик) | 4МБ | загрузочный раздел BIOS |
/dev/sda2 | ext2 | 512МБ | загрузочный раздел |
/dev/sda3 | (swap) | 32000МБ | раздел подкачки |
/dev/sda4 | ext4 | оставшаяся часть диска | корневой раздел |
Установка метки GPT
1 | #parted |
Если мы хотим, чтобы наш диск имел MBR, используйте mklabel msdos
.
Создаем разделы
Для начала сообщим parted, с какой единицой измерения мы будем работать.
1 | unit mib |
Теперь создадим загрузочный раздел в 4Mb для GRUB
Для того, чтобы создать раздел в 4 Mb, сообщим parted, создать раздел от 1Мб до 5Мб
1 | (parted) mkpart primary 1 5 |
Повторим данные шаги для остальных разделов.
Создаем остальные разделы
1 | (parted) mkpart primary 5 517 |
Конец диска минус один мегабайт (обозначается “-1”)
Просмотр текущей картины разделов
1 | Model: ATA ST2000DM001-1CH1 (scsi) |
Выходим из parted командой quit
Более быстрый пример разбиения
Проверим текущее разбиение дисков
1 | parted /dev/sda |
А затем введем новую команду Parted
.
Используем команду rm [номер] для удаления раздела, который нам не нужен.
Мы собираемся начать с чистого жесткого диска.
Нам понадобится загрузочный раздел, раздел подкачки swap и немного дискового пространства. Используем следующие три команды:
1 | mkpart primary ext2 0 32mb |
Соглашаемся или просто игнорируем любые дополнительные запросы.
Создаем файловые системы
Выходим из Parted
с помощью команды quit
.
Теперь нам надо с помощью следующих команд создать в разделах файловые системы:
1 | # mkfs.ext2 /dev/sda1 |
Вывод будет приблизительно следующий, в зависимости от созданных разделов.
Создаем файл подкачки swap
1 | mkswap /dev/sda2 |
Монтирование разделов
Прежде, чем мы продолжим, мы должны смонтировать разделы.
Сделаем это, смонтировав сначала память как /mnt/gentoo
:
1 | # mount /dev/sda3 /mnt/gentoo |
Создаем внутри каталог загрузки boot
:
1 | # mkdir /mnt/gentoo/boot |
Смонтируем каталог boot
:
1 | # mount /dev/sda1 /mnt/gentoo/boot |
Устанавливаем время
Убедимся, что часы правильно настроены на универсальное время UTC, для этого просто введем команду date
.
Если это не так, то задаем время UTC с помощью следующей команды:
1 | # date MMDDhhmmYYYY |
.. где ММ - месяц, DD - день/дата и т.д.
Подбор зеркала
Переходим в точку монтирования, которую только что создали, с помощью команды cd
, а затем вводим следующую команду для того, чтобы получить список зеркал, используемых для работы с архивом stage3
:
1 | # links http://www.gentoo.org/main/en/mirrors.xml |
Не забываем, что необходимо прописать настройки сети, ибо нам потребуется доступ в интернет.
1 | # links http://mirror.yandex.ru/gentoo-distfiles/releases/amd64/autobuilds/current-stage3-amd64/ |
Выбираем необходимый stage3
и скачиваем его.
Распаковываем архив
Распаковываем архив, который скачали, с помощью следующей команды:
1 | # tar xvjpf stage3-*.tar.bz2 |
Как только архив будет распакован, откроем конфигурационный файл с помощью редактора nano
:
1 | # nano -w /mnt/gentoo/etc/portage/make.conf |
И затем мы сможем начать настраивать некоторые из параметров.
Задаем параметры, используемые по умолчанию
Параметры, уже указанные по умолчанию в конфигурационном файле, должны подходить для большинства систем. Мы также можем указать, сколько сразу можно параллельно выполнять процессов компиляции, добавив для этого в конце файла следующую команду:
1 | MAKEOPTS="-j[X]" |
… где X
указывает количество ядер, которые у вас есть плюс один.
Сохраняем результат и выходим с помощью команды Ctrl+X
.
Приблизительно конфиг будет такой:
1 | # These settings were set by the catalyst build script that automatically |
Подготавливаем среду для сборки
Все почти готово для того, чтобы начать сборку.
Запомните в среде детали настройки сети/DNS с помощью следующей команды:
1 | # cp -L /etc/resolv.conf /mnt/gentoo/etc/ |
Далее, смонтируем файловые системы /proc
, а затем привяжем их к /dev
и /sys
с помощью следующих команд:
1 | # mount -t proc none /mnt/gentoo/proc |
Переходим в среду сборки
Среда сборки является технически новой средой Linux. Сначала нам нужно сделать некоторые изменения с тем, чтобы мы могли в нее войти - в основном это касается каталога для пользователя root
, что мы делаем с помощью команды chroot
:
1 | # chroot /mnt/gentoo /bin/bash |
Настройка дерева Portages
Произведем синхронизацию Portages для получения более свежих версий
1 | emerge-webrsync |
Профиль установки
Теперь с помощью задания определенного профиля сборки нам нужно выбрать, какую систему Gentoo мы будем собирать. Есть три профиля, два из которых — Desktop (настольный компьютер) и Server (сервер). Это позволит определить тип пакетов, которые мы используем. Задайте профиль с помощью следующей команды:
1 | # eselect profile set 3 |
Значение 2 соответствует настольному компьютеру; для сервера измените значение на 3
Настройка время в ядре
Список доступных часовых поясов можно узнать с помощью команды:
1 | ls /usr/share/zoneinfo |
Для Москвы, мы сделаем следующее:
1 | # cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
Теперь пришло время загрузить наше ядро. Во-первых, получим gentoo-sources
с помощью команды:
1 | # emerge gentoo-sources |
С помощью следующей команды проверьте, чтобы на версию ядра gentoo-sources
была ссылка:
1 | # ls -l /usr/src/linux |
Теперь можем начать изменять флаги ядра, введя следующую команду:
1 | # cd /usr/src/linux |
Активируем необходимые параметры ядра модули
Убеждаемся в том, что изменили только те параметры ядра, которые нам необходимы.
Активируем любые другие необходимые модули. После этого выходим из режима настройки.
Компиляция ядра
Итак, наступило время компилировать ядро.
1 | # make && make modules_install |
На это потребуется некоторое время, зависящее от количества модулей и параметров, которые мы активировали.
После того, как все будет завершено, установим ядро с помощью следующей команды:
1 | cp arch/x86/boot/bzImage /boot/kernel-[X]-gentoo |
… где X
будет числом, которое будет нам указано на последнем шаге, в нашем случае 3.16.5-gentoo
Загружаем модули
Нам необходимо указать, какие модули ядра мы хотим загрузить. Чтобы узнать, какие модули доступны, используем команду:
1 | # find /lib/modules/[X]/ -type f -iname '*.o' -or -iname '*.ko' | less |
Монтирование файловой системы
Мы должны указать, как разделы, которые мы создали, будут монтироваться при загрузке. Откройте файл fstab
с помощью команды:
1 | # nano -w /etc/fstab |
А потом установим следующие параметры так, чтобы файловая система у нас работала должным образом:
1 | /dev/sda1 /boot ext2 defaults,noatime 0 2 |
Примерно fstab
будет выглядеть таким образом
1 | # /etc/fstab: static file system information. |
Настройка сети
После перезагрузки системы нужно настроить сеть.
Сначала перейдем в конфигурационный файл:
1 | # nano -w /etc/conf.d/net |
И добавим, например, следующее для DHCP:
1 | config_eth0="dhcp" |
Если используем статический IP-адрес, то пишем:
1 | config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" |
Сохраним файл, а затем сделаем его загружаемым с помощью команд:
1 | # cd /etc/init.d |
Настройка пользователя root
Устанавливаем пароль пользователя root
с помощью стандартной команды passwd
. Затем натсроем некоторые основные сервисы, отредактировав для этого следующий файл:
1 | # nano -w /etc/rc.conf |
И настройку аппаратных часов:
1 | # nano -w /etc/conf.d/hwclock |
Если это не время UTC, то добавляем в файл параметр clock="local"
Настраиваем локаль
Укажем в системе свои региональные настройки (локаль).
Нам нужно будет отредактировать следующий файл:
1 | nano -w /etc/locale.gen |
.. и добавим
1 | ru_RU.UTF-8 UTF-8 |
Сохраняем, выходим, а затем набираем locale-gen
.
Устанавливаем эту локаль в /etc/env.d/02locale
как используемую по умолчанию:
1 | LANG="ru_RU.UTF-8" |
А затем перезагрузим среду с помощью следующей команды:
1 | # env-update && source /etc/profile |
Начальная загрузка
Необходимо установить начальный загрузчик GRUB с тем, чтобы мы могли после перезагрузки загрузиться в систему Gentoo. Откомпилируем его с помощью команды:
1 | emerge grub |
Теперь создадим файл grub.conf
и приготовимся добавить необходимые настройки.
Код для GRUB
1 | default 0 |
Убедимся, что используем правильный номер ядра. (вместо [version])
Сохраняем изменения и выходим.
Прежде всего, установим необходимые файлы GRUB2 в /boot/grub
.
Если предположить, что первый диск (тот, откуда система загружается)
называется /dev/sda
, то следующая команда сделает это за нас:
1 | grub2-install /dev/sda |
Для генерации финальной конфигурации GRUB2, выполните команду grub2-mkconfig
1 | # grub2-mkconfig -o /boot/grub/grub.cfg |
В выводе команды должно быть указано, что найдено хотя бы одно ядро
Linux так как оно нужно для загрузки системы. Если вы используетеinitramfs
, либо использовали genkernel
для компиляции ядра, также
должен определиться правильный образ initrd
. Если этого не
произошло, перейдите в /boot
и проверьте его содержимое
с помощью команды ls
.
Если файлы и в самом деле отсутствуют, вернитесь к инструкциям
по конфигурации и установке ядра!!!