Базовая установка Gentoo Linux
В этой статье я опишу базовую установку Gentoo Linux из stage3. Статья рассчитана на человека, знакомого с Linux. Для упрощения все будет описываться для одинокой машины с одним чистым жестким диском и прямым доступом в сеть. Более подробная официальная документация доступна тут: http://www.gentoo.org/doc/en/handbook/index.xml. Следует заметить, что некоторые моменты там не совсем актуальны. При нахождении различий в моей статье и официальной документации, можно считать мою версию более актуальной.
Для начала вам потребуются minimal-cd, stage3 и portage-latest. Minimal-cd – это загрузочный iso-образ, загрузившись с которого, мы будем устанавливать систему. Stage3 – это архив, содержащий базовую систему с предустановленными emerge (пакетный менеджер Gentoo), gcc и базовым набором утилит, необходимых для работы всего этого. Portage-latest – свежий архив дерева пакетов. Скачать архивы можно со страницы загрузки Gentoo. Перейдите на Gentoo Mirrors и выберите сервер, находящийся поближе к вам (в России будет логично использовать зеркала Yandex или Corbina). Далее перейдите в каталог releases/<arch>/current-iso/, где необходимо скачать install-<arch>-minimal-<date>.iso и stage3-<arch>-<date>.tar.bz2. <arch> – архитектура вашего процессора, <date> – дата сборки образов. Теперь вернитесь назад в корень зеркала и перейдите в каталог snapshots. Оттуда необходимо скачать файл portage-latest.tar.bz2. Для удобства работы лучше всего положить файлы stage3 и portage-latest внутрь iso-образа, после чего образ записать на болванку.
Учтите, что в процессе установки понадобится соединение с Интернет для загрузки исходников устанавливаемого ПО.
Загружайтесь с диска и на появившемся экране загрузки нажимайте Enter для запуска ядра по умолчанию (gentoo). Теперь приступаем к установке. Для начала нужно определиться с разделами на жестком диске. По условию задачи у нас всего один жесткий диск, который скорее всего будет доступен как /dev/sda. Запускаем fdisk -l, чтобы убедиться в этом. Далее создаем разделы на жестком диске. Для этого запускаем fdisk /dev/sda. Сначала создадим раздел под swap:
- нажимаем n, чтобы создать новый раздел,
- p, чтобы создать primary раздел,
- 1, потому что мы создаем первый раздел,
- далее просто жмем Enter, чтобы раздел был с самого начала диска и
- наконец указываем размер раздела, например +1024M.
Теперь создадим раздел для корневой файловой системы:
- n,
- p,
- 2 (мы создаем второй раздел),
- просто жмем Enter, чтобы раздел шел следом за первым,
- просто жмем Enter, чтобы раздел занял остаток жесткого диска.
Осталось только сменить тип swap-раздела:
- нажимаем t для смены типа раздела,
- нажимаем 1 для смены типа первого раздела,
- вводим код типа раздела 82
Чтобы проверить наши изменения нажимаем p и видим примерно следующее:
Команда (m для справки): p Диск /dev/sda: 1500.3 ГБ, 1500301910016 байт 255 heads, 63 sectors/track, 182401 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb7d8419e Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 1 132 1060258+ 82 Linux своп / Solaris /dev/sda2 133 182401 1464075742+ 83 Linux
Если все в порядке, нажимаем w для записи изменений на диск.
Описанный метод разбивки является базовым. Было бы лучше создать отдельные разделы для /boot, /var, /usr и т.д., но это выходит за рамки статьи.
Запускаем наши разделы в работу:
mkswap /dev/sda1
swapon /dev/sda1
mkfs.reiserfs /dev/sda2
mount -o noatime /dev/sda2 /mnt/gentoo
Статья написана с расчетом на использование файловой системы ReiserFS. Конечно же, вы можете использовать любую другую ФС по желанию, например, ext4.
Распаковываем базовую систему:
tar -xjpf /mnt/cdrom/stage3-amd64-20101021.tar.bz2 -C /mnt/gentoo/
tar -xjpf /mnt/cdrom/portage-latest.tar.bz2 -C /mnt/gentoo/usr/
Теперь необходимо настроить соединение с сетью. По условию задачи мы имеем прямой доступ в сеть, поэтому для настройки достаточно запустить net-setup eth0.
Делаем chroot в нашу новенькую систему:
mount -t none -o bind /dev /mnt/gentoo/dev
mount -t none -o bind /proc /mnt/gentoo/proc
mount -t none -o bind /sys /mnt/gentoo/sys
cp /etc/resolv.conf /mnt/gentoo/etc/
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
Теперь необходимо произвести базовую настройку системы. Один из основных конфигурационных файлов Gentoo — make.conf. В этом файле указываются настройки сборки ПО системы. Для нашего базового случая достаточно указать -march=native в CFLAGS, убедиться, что CXXFLAGS="${CFLAGS}", а также прописать число потоков компиляции, добавив строку MAKEOPTS="-jN". Вместо N укажите суммарное число ядер вашего ПК + 1 (например, для одного двухядерного процессора - 3). Остальные строки оставьте без изменений. USE-флаги удобнее устанавливать уже в процессе эксплуатации. В итоге в make.conf должны быть следующие строки:
CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="-jN"
Подробнее про оптимизацию сборки вы можете почитать: Оптимизация сборки в Gentoo (make.conf).
Теперь необходимо указать используемые локали в файле /etc/locale.gen. Достаточно указать основные:
ru_RU.UTF-8 UTF-8 en_US.UTF-8 UTF-8 ru_RU.KOI8-R KOI8-R en_US ISO-8859-1
После этого необходимо запустить locale-gen.
Теперь, по тру-генту-вей , надо пересобрать system (emerge -av system) два или даже три раза, но на это уйдет много часов, а прирост производительности будет незначительный. System - нечто вроде виртуального списка пакетов, включающего компилятор, основные системные библиотеки и утилиты.
Базовые конфигурационные файлы различных сервисов находятся в каталоге /etc/conf.d/. Подправим некоторые из них.
В /etc/conf.d/clock укажем:
- CLOCK="local" — чтобы железное время совпадало с системным.
- TIMEZONE="Europe/Moscow" — наша временная зона, варианты можно посмотреть в /usr/share/zoneinfo/.
- CLOCK_SYSTOHC="yes" — синхронизировать железные часы с системными. Ведь вы собираетесь регулярно обновлять время в системе?
Тут же сделайте cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime. Вместо Europe/Moscow используйте вашу временную зону.
В /etc/conf.d/consolefont укажем шрифт, нормально отображающий русские буквы:
- CONSOLEFONT="Cyr_a8x16" — варианты можно посмотреть в /usr/share/consolefonts. Например, с шрифтом Cyr_a8x8 на экране поместится намного больше текста, но буквы будут приплюснутые.
В /etc/conf.d/hostname укажите имя своей машины:
- HOSTNAME="localhosteg"
В /etc/conf.d/keymaps введите следующие опции:
- KEYMAP="-u ruwin_ct_sh-UTF-8" — переключение по Ctrl+Shift. Варианты в /usr/share/keymaps.
- SET_WINDOWKEYS="yes"
- DUMPKEYS_CHARSET="koi8-r"
Для русификации интерфейса создайте файл /etc/env.d/02locale с содержимым:
LANG="ru_RU.UTF-8" LC_NUMERIC="POSIX"
LC_NUMERIC="POSIX" нужен для того, чтобы в десятичных дробях использовалась точка, а не запятая.
Теперь редактируем /etc/fstab, указываем наши разделы. Сейчас содержимое этого файла — пример. Удалите строку с /dev/BOOT, замените ROOT на sda2, SWAP на sda1, ext3 на reiserfs. После этого в файле должны быть примерно следующие строки:
/dev/sda2 / reiserfs noatime 0 1 /dev/sda1 none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Наберите passwd, чтобы задать пароль пользователя root новой системы.
Теперь новой системе нужно ядро. Есть три варианта — собрать и сконфигурировать ядро из исходников (предпочтительный), собрать ядро при помощи genkernel, скопировать ядро с LiveCD.
Первый вариант:
Чтобы определиться с имеющимся у вас оборудованием установите пакеты sys-apps/pciutils и sys-apps/usbutils (lspci и lsusb соответственно).
emerge gentoo-sources
cd /usr/src/linux
make menuconfig
make -jN all # а тут стоит указать число ядер + 1, как и в make.conf
make modules_install
cp arch/<arch>/boot/bzImage /boot/kernel # <arch> - ваша архитектура (x86, x86_64, ...)
Второй вариант:
emerge genkernel
genkernel --install all
Третий вариант:
exit # необходимо выйти из chroot окружения
cp /mnt/cdrom/gentoo.efimg.mountPoint/gentoo /boot/kernel # ядро
cp /mnt/cdrom/gentoo.efimg.mountPoint/gentoo.igz /boot/kernel.igz # initrd образ
cp -r -p /lib/modules/* /mnt/gentoo/lib/modules/ # модули ядра
chroot /mnt/gentoo /bin/bash # chrootимся назад
Теперь нужно установить загрузчик и утилиты файловой системы:
emerge grub reiserfsprogs
На 64-битных системах grub тянет за собой пакет app-emulation/emul-linux-x86-baselibs, который немало весит. Содержит он бинарные 32-битные библиотеки. Избавиться от них можно, собрав grub с отключенным USE-флагом "ncurses". Для этого нужно передать emerge USE="-ncurses". Просто пропишите USE-флаги в /etc/portage/package.use, как описано здесь.
Теперь редактируем /boot/grub/menu.lst. Можете попробовать раскомментировать строку со splashimage, это украсит экран загрузки. Только не забудьте указать верный раздел. В нашем случае это (hd0,1). Добавим загрузочную запись. Если вы собирали ядро вручную, то она будет выглядеть так:
title Gentoo Linux root (hd0,1) kernel /boot/kernel root=/dev/sda2
Если вы использовали genkernel:
title Gentoo Linux root (hd0,1) kernel /boot/kernel-genkernel-x86_64-2.6.34-gentoo-r12 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda2 udev initrd /boot/initramfs-genkernel-x86_64-2.6.12-gentoo-r12
title Gentoo Linux root (hd0,1) kernel /boot/kernel root=/dev/ram0 real_root=/dev/sda2 initrd /boot/kernel.igz
Далее нужно установить загрузчик grub:
grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda
Установим syslog, cron и logrotate:
emerge syslog-ng vixie-cron logrotate
rc-update -a syslog-ng default # добавляем в автозагрузку
rc-update -a vixie-cron default # добавляем в автозагрузку
Наша система готова! Выходим из chroot-окружения и размонтируем раздел.
umount /mnt/gentoo/dev
umount /mnt/gentoo/proc
umount /mnt/gentoo/sys
umount /mnt/gentoo
Перезагружаемся:
reboot
Полезные вещи, которые вы возможно захотите использовать: ccache, eix, portage + sqlite, prelink и preload, gentoolkit.
Если планируется работа в сети, то стоит установить пакеты:
- bind-tools – утилиты nslookup, dig,
- iproute2 – утилиты ip, tc,
- iptables – файрволл,
- netkit-telnetd – telnet,
- mtr, traceroute – трассировка.
Для мониторинга работы системы могут быть полезны пакеты:
- htop – намного более функциональный аналог top,
- iotop – использование i/o процессами в виде top,
- strace – утилита диагностики и отладки процессов.
И наконец, для удобства работы пакеты:
- mc – легендарный файловый менеджер,
- screen – консольный оконный менеджер, полезен для запуска процессов в фоне.
Не забывайте регулярно обновляться. Делается это просто:
- emerge --sync – обновит дерево пакетов.
- emerge -uavDN world – отобразит список обновляемых пакетов, версии, USE-флаги и предложит обновить их.
Еще нет отзывов
Идет загрузка формы...