Gentoo Linux mips Handbook: Установка Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:MIPS/Full/Installation and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Введение

Добро пожаловать

Прежде всего, добро пожаловать в Gentoo! Вы на пороге мира возможностей и высокой производительности. Gentoo всегда даёт свободу выбора. При установке Gentoo вы не раз убедитесь в этом: пользователи могут выбрать объём самостоятельной компиляции, способ установки Gentoo, какую выбрать службу журналирования и прочее.

Gentoo — это быстрый, современный, простой и гибкий метадистрибутив. Он основан на свободном программном обеспечении, и не скрывает от пользователя, «что под капотом». Portage, система управления пакетами Gentoo, написана на языке Python, что позволяет легко просматривать и изменять исходный код. Пакетный менеджер Gentoo использует исходный код (хотя есть и поддержка бинарных пакетов), а настройка Gentoo выполняется с помощью обычных текстовых файлов. Другими словами — везде сплошная открытость.

Важно понимать, что Gentoo развивается именно благодаря свободе выбора. Мы стараемся ничего не навязывать. А если кому-то покажется обратное — пожалуйста, сообщите нам об этом.

Как организована установка?

Установка Gentoo рассматривается как последовательность из 10 шагов, которым соответствуют следующий набор глав. Каждый шаг приводит к определенному состоянию:

Шаг Результат
1 Пользователь находится в рабочей среде, готовой к установке Gentoo.
2 Подключение к Интернету готово для установки Gentoo.
3 Жёсткие диски готовы к установке Gentoo.
4 Подготовлена установочная среда, и пользователь готов переключиться (chroot) в новую среду.
5 Развернуты основные пакеты, общие для всех систем Gentoo.
6 Установлено ядро Linux.
7 Создана основная часть конфигурационных файлов системы.
8 Установлены необходимые системные средства.
9 Установлен и настроен выбранный начальный загрузчик.
10 Только что установленное окружение Gentoo готово к изучению.

Каждый раз, когда будет предоставлен выбор, в Руководстве будут приведены все плюсы и минусы каждого варианта. Хотя текст будет продолжаться с использованием выбора по умолчанию (он помечен как «По умолчанию:» в заголовке), другие возможности также документированы (они документированы как «Альтернатива:» в заголовке). Не думайте, что выбор по умолчанию является рекомендацией Gentoo. Это всего лишь тот вариант, который, по мнению Gentoo, будет использовать наибольшее число пользователей.

Иногда есть возможность выполнить необязательный шаг. Такие шаги помечены как «Необязательно:» и не требуются для установки Gentoo. Однако, некоторые из них будут зависеть от ранее принятого решения. Мы будем сообщать об этом, как в момент выбора, так и непосредственно перед описанием необязательных шагов.

Варианты установки Gentoo

Gentoo можно установить разными способами. Можно скачать и установить с официального установочного CD- или DVD-носителя Gentoo. Установочный носитель можно записать на USB-носитель или предоставить к нему доступ из загруженного с сети окружения. Gentoo также можно установить с любого носителя, например из уже установленного дистрибутива или не-Gentoo загрузочного диска (например, Knoppix).

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

Заметка
Для помощи по другим вариантам установки, включая использование не-Gentoo компакт-дисков, прочитайте статью альтернативные варианты установки.

Также существует статья Полезные советы по установке Gentoo, которая в некоторых случаях может быть полезна.

Проблемы

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

Хотя этот документ посвящён определенной архитектуре, в нём могут упоминаться и другие архитектуры, так как значительная часть Руководства Gentoo использует общий текст для всех архитектур (чтобы не дублировать работу). Во избежание путаницы, такие упоминания сокращены до минимума.

Если есть неуверенность, пользовательская ли ошибка (сделана какая-то погрешность, хотя внимательно прочитали документацию), или программная (какую-то ошибку совершили мы, несмотря тщательное тестирование установки/документации), то не стесняйтесь, заходите на канал #gentoo сервера irc.freenode.net. Разумеется, мы будем рады пообщаться и по любым другим вопросам, так как наш канал освещает всё, что связано с Gentoo.

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





Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Аппаратные требования

CPU (Big Endian port) MIPS3, MIPS4, MIPS5 or MIPS64-class CPU
CPU (Little Endian port) MIPS4, MIPS5 or MIPS64-class CPU
Память 128 МБ
Место на диске 3.0 ГБ (кроме swap раздела)
Swap раздел Как минимум 256 МБ

Для более подробной информации обратитесь к MIPS требования к аппаратному обеспечению.

Замечания по установке

На многих архитектурах, процессор прошел через несколько поколений, каждое новое поколение создается на основе предыдущего. MIPS не является исключением. Есть несколько поколений CPU попадающих под архитектуру MIPS. Для того, чтобы при загрузке с сети выбрать правильный образ архива и CFLAGS-флаги надлежащим образом, необходимо, быть в курсе, какое у системы поколение CPU. Эти семейства называют Instruction Set Architecture.

MIPS ISA 32/64-bit CPUs Covered
MIPS 1 32-bit R2000, R3000
MIPS 2 32-bit R6000
MIPS 3 64-bit R4000, R4400, R4600, R4700
MIPS 4 64-bit R5000, RM5000, RM7000 R8000, R9000, R10000, R12000, R14000, R16000
MIPS 5 4-bit None As Yet
MIPS32 32-bit AMD Alchemy series, 4kc, 4km, many others... There are a few revisions in the MIPS32 ISA.
MIPS64 64-bit Broadcom SiByte SB1, 5kc ... etc... There are a few revisions in the MIPS64 ISA.
Заметка
Уровень MIPS ISA был разработан Silicon Graphics в 1994 году, но никогда не использовался в реальной жизни процессора. Он живет в рамках MIPS64 ISA.
Заметка
The MIPS32 and MIPS64 ISAs are a common source of confusion. The MIPS64 ISA level is actually a superset of the MIPS5 ISA, so it includes all instructions from MIPS5 and earlier ISAs. MIPS32 is the 32-bit subset of MIPS64, it exists because most applications only require 32-bit processing.

Also, another important concept to grasp is the concept of endianness. Endianness refers to the way that a CPU reads words from main memory. A word can be read as either big endian (most significant byte first), or little endian (least significant byte first). Intel x86 machines are generally Little endian, whilst Apple and Sparc machines are Big Endian. On MIPS, they can be either. To separate them apart, we append el to the architecture name to denote little endian.

Architecture 32/64-bit Endianness Machines covered
mips 32-bit Big Endian Silicon Graphics
mipsel 32-bit Little Endian Cobalt Servers
mips64 64-bit Big Endian Silicon Graphics
mips64el 64-bit Little Endian Cobalt Servers

For those willing to learn more about ISAs, the following websites may be of assistance:

Netbooting overview

In this section, we'll cover what is needed to successfully network boot a Silicon Graphics workstation or Cobalt Server appliance. This is just a brief guide, it is not intended to be thorough, for more information, it is recommended to read the Diskless nodes article.

Depending on the machine, there is a certain amount of hardware that is needed in order to successfully netboot and install Linux.

  • In General:
    • DHCP/BOAMD Alchemy series, 4kc, 4km, many others... There are a few revisions in the MIPS32 ISA.OTP server (ISC DHCPd recommended)
    • Patience -- and lots of it
  • For Silicon Graphics workstations:
    • TFTP server (tftp-hpa recommended)
    • When the serial console needs to be used:
      • MiniDIN8 --> RS-232 serial cable (only needed for IP22 and IP28 systems)
      • Null-modem cable
      • VT100 or ANSI compatible terminal capable of 9600 baud
  • For Cobalt Servers (NOT the original Qube):
    • NFS server
    • Null-modem cable
    • VT100 or ANSI compatible terminal capable of 115200 baud
Заметка
SGI machines use a MiniDIN 8 connector for the serial ports. Apparently Apple modem cables work just fine as serial cables, but with Apple machines being equipped with USB & internal modems, these are getting harder to find. One wiring diagram is available from the Linux/MIPS Wiki, and most electronics stores should stock the plugs required.
Заметка
For the terminal, this could be a real VT100/ANSI terminal, or it could be a PC running terminal emulation software (such as HyperTerminal, Minicom, seyon, Telex, xc, screen - whatever your preference). It doesn't matter what platform this machine runs - just so long as it has one RS-232 serial port available, and appropriate software.
Заметка
This guide does NOT cover the original Qube. The original Qube server appliance lacks a serial port in its default configuration, and therefore it is not possible to install Gentoo onto it without the aid of a screwdriver and a surrogate machine to do the installation.

Настройка TFTP и DHCP

As mentioned earlier -- this is not a complete guide, this is a bare-bones config that will just get things rolling. Either use this when starting a setup from scratch, or use the suggestions to amend an existing setup to support netbooting.

It is worth noting that the servers used need not be running Gentoo Linux, they could very well be using FreeBSD or any Unix-like platform. However, this guide will assume to be using Gentoo Linux. If desired, it is also possible to run TFTP/NFS on a separate machine to the DHCP server.

Предупреждение
The Gentoo/MIPS Team cannot help with setting up other operating systems as netboot servers.

First Step -- configuring DHCP. In order for the ISC DHCP daemon to respond to BOOTP requests (as required by the SGI & Cobalt BOOTROM) first enable dynamic BOOTP on the address range in use; then set up an entry for each client with pointers to the boot image.

root #emerge --ask net-misc/dhcp

Once installed, create the /etc/dhcp/dhcpd.conf file. Here's a bare-bones config to get started.

Файл /etc/dhcp/dhcpd.confBare Bones dhcpd.conf
# Tell dhcpd to disable dynamic DNS.
# dhcpd will refuse to start without this.
ddns-update-style none;
  
# Create a subnet:
subnet 192.168.10.0 netmask 255.255.255.0 {
  # Address pool for our booting clients. Don't forget the 'dynamic-bootp' bit!
  pool {
    range dynamic-bootp 192.168.10.1 192.168.10.254;
  }
  
  # DNS servers and default gateway -- substitute as appropriate
  option domain-name-servers 203.1.72.96, 202.47.56.17;
  option routers 192.168.10.1;
  
  # Tell the DHCP server it's authoritative for this subnet.
  authoritative;
  
  # Allow BOOTP to be used on this subnet.
  allow bootp;
}

With that setup, one can then add any number of clients within the subnet clause. We will cover what to put in later in this guide.

Next step - Setting up TFTP server. It is recommended to use tftp-hpa as it is the only TFTP daemon known to work correctly. Proceed by installing it as shown below:

root #emerge --ask net-ftp/tftp-hpa

This will create /tftproot to store the netboot images. Move this elsewhere if necessary. For the purposes of this guide, it is assumed that it is kept in the default location.

Netbooting on SGI stations

Downloading a netboot image

Depending on the system the installation is meant for, there are several possible images available for download. These are all labelled according to the system type and CPU they are compiled for. The machine types are as follows:

Кодовое имя Машины
IP22 Indy, *Indigo 2, Challenge S
IP26 *Indigo 2 Power
IP27 Origin 200, Origin 2000
IP28 *Indigo 2 Impact
IP30 Octane
IP32 O2
Заметка
Indigo 2 - It is a common mistake to mix up the IRIS Indigo (IP12 w/ R3000 CPU or IP20 with a R4000 CPU, neither of which run Linux), the Indigo 2 (IP22, which runs Linux fine), the R8000-based Indigo 2 Power (which doesn't run Linux at all) and the R10000-based Indigo 2 Impact (IP28, which is highly experimental). Please bear in mind that these are different machines.

Also in the filename, r4k refers to R4000-series processors, r5k for R5000, rm5k for the RM5200 and r10k for R10000. The images are available on the Gentoo mirrors.

DHCP configuration for an SGI client

After downloading the file, place the decompressed image file in the /tftproot/ directory. (Use bzip2 -d to decompress). Then edit the /etc/dhcp/dhcpd.conf file and add the appropriate entry for the SGI client.

Файл /etc/dhcp/dhcpd.confsnippet for SGI Workstation
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
  # ... usual stuff here ...
  
  # SGI Workstation... change 'sgi' to your SGI machine's hostname.
  host sgi {
  
    # MAC Address of SGI Machine. Normally this is written on the back
    # or base of the machine.
    hardware ethernet 08:00:69:08:db:77;
  
    # TFTP Server to download from (by default, same as DHCP server)
    next-server 192.168.10.1;
  
    # IP address to give to the SGI machine
    fixed-address 192.168.10.3;
  
    # Filename for the PROM to download and boot
    filename "/gentoo-r4k.img";
  }
}

Опции ядра

We're almost done, but there's a couple of little tweaks still to be done. Pull up a console with root privileges.

Disable "Path Maximum Transfer Unit", otherwise SGI PROM won't find the kernel:

root #echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

Set the port range usable by the SGI PROM:

root #echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

This should be sufficient to allow the Linux server to play nice with SGI's PROM.

Starting the daemons

At this point, start the daemons.

root #/etc/init.d/dhcp start
root #/etc/init.d/in.tftpd start

If nothing went wrong in that last step then everything is all set to power on the workstation and proceed with the guide. If the DHCP server isn't firing up for whatever reason, try running dhcpd on the command line and see what it says - if all is well, it should just fork into the background, otherwise it will display 'exiting.' just below its complaint.

An easy way to verify if the tftp daemon is running is to type the following command and confirm the output:

root #netstat -al | grep ^udp
udp        0      0 *:bootpc                *:*
udp        0      0 *:631                   *:*
udp        0      0 *:xdmcp                 *:*
udp        0      0 *:tftp                  *:* <-- (look for this line)

Netbooting the SGI station

Okay, everything is set, DHCP is running as is TFTP. Now it is time to fire up the SGI machine. Power the unit on - when "Running power-on diagnostics" comes on the screen, either click "Stop For Maintenance" or press Escape. A menu similar to the following will show up.

Running power-on diagnostics
System Maintenance Menu
  
1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor
Option?

Type in 5 to enter the command monitor. On the monitor, start the BootP process:

>>bootp(): root=/dev/ram0

From this point, the machine should start downloading the image, then, roughly 20 seconds later, start booting Linux. If all is well, a busybox ash shell will be started as shown below and the installation of Gentoo Linux can continue.

Код When things are going right...
init started:  BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
  
Gentoo Linux; http://www.gentoo.org/
 Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
  
 Gentoo/MIPS Netboot for Silicon Graphics Machines
 Build Date: April 26th, 2004
  
 * To configure networking, do the following:
  
 * For Static IP:
 * /bin/net-setup <IP Address> <Gateway Address> [telnet]
  
 * For Dynamic IP:
 * /bin/net-setup dhcp [telnet]
  
 * If you would like a telnetd daemon loaded as well, pass "telnet"
 * As the final argument to /bin/net-setup.
  
Please press Enter to activate this console.

Устранение проблем

If the machine is being stubborn and refusing to download its image, it can be one of two things:

  1. The instructions were not followed correctly, or
  2. It needs a little gentle persuasion (No, put that sledge hammer down!)

Here's a list of things to check:

  • dhcpd is giving the SGI Machine an IP Address. There should be some messages about a BOOTP request in the system logs. tcpdump is also useful here.
  • Permissions are set properly in the tftp folder (typically /tftproot/ - should be world readable)
  • Check system logs to see what the tftp server is reporting (errors perhaps)

If everything on the server is checked, and timeouts or other errors occur on the SGI machine, try typing this into the console.

>>resetenv
>>unsetenv netaddr
>>unsetenv dlserver
>>init
>>bootp(): root=/dev/ram0

Netbooting on Cobalt stations

Overview of the netboot procedure

Unlike the SGI machines, Cobalt servers use NFS to transfer their kernel for booting. Boot the machine by holding down the left & right arrow buttons whilst powering the unit on. The machine will then attempt to obtain an IP number via BOOTP, mount the /nfsroot/ directory from the server via NFS, then try to download and boot the file vmlinux_raq-2800.gz (depending on the model) which it assumes to be a standard ELF binary.

Downloading a Cobalt netboot image

Inside http://distfiles.gentoo.org/experimental/mips/historical/netboot/cobalt/ the necessary boot images for getting a Cobalt up and running are made available. The files will have the name nfsroot-KERNEL-COLO-DATE-cobalt.tar - select the most recent one and unpack it to / as shown below:

root #tar -C / -xvf nfsroot-2.6.13.4-1.19-20051122-cobalt.tar

Настройка сервера NFS

Since this machine uses NFS to download its image, it is necessary to export /nfsroot/ on the server. Install the net-fs/nfs-utils package:

root #emerge --ask net-fs/nfs-utils

Once that is done, place the following in the /etc/exports file.

Файл /etc/exportsЭкспорт каталога /nfsroot
/nfsroot      *(ro,sync)

Now, once that is done, start the NFS server:

root #/etc/init.d/nfs start

If the NFS server was already running at the time, tell it to take another look at its exports file using exportfs.

root #exportfs -av

DHCP configuration for a Cobalt machine

Now, the DHCP side of things is relatively straightforward. Add the following to the /etc/dhcp/dhcpd.conf file.

Файл /etc/dhcp/dhcpd.confSnippet for Cobalt server
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
  # ... usual stuff here ...
  
  # Configuration for a Cobalt Server
  # Set the hostname here:
  host qube {
    # Path to the nfsroot directory.
    # This is mainly for when using the TFTP boot option on CoLo
    # You shouldn't need to change this.
    option root-path "/nfsroot";
  
    # Cobalt server's ethernet MAC address
    hardware ethernet 00:10:e0:00:86:3d;
  
    # Server to download image from
    next-server 192.168.10.1;
  
    # IP address of Cobalt server
    fixed-address 192.168.10.2;
  
    # Location of the default.colo file relative to /nfsroot
    # You shouldn't need to change this.
    filename "default.colo";
  }
}

Starting daemons

Now start the daemons. Enter the following:

root #/etc/init.d/dhcp start
root #/etc/init.d/nfs start

If nothing went wrong in that last step all should be set to power on the workstation and proceed with the guide. If the DHCP server isn't firing up for whatever reason, try running dhcpd on the command line and see what it tells - if all is well, it should just fork into the background, otherwise it will show 'exiting.' just below its complaint.

Netbooting the Cobalt machine

Now it is time to fire up the Cobalt machine. Hook up the null modem cable, and set the serial terminal to use 115200 baud, 8 bits, no parity, 1 stop bit, VT100 emulation. Once that is done, hold down the left and right arrow buttons whilst powering the unit on.

The back panel should display "Net Booting", and some network activity should be visible, closely followed by CoLo kicking in. On the rear panel, scroll down the menu until the "Network (NFS)" option then press Enter. Notice that the machine starts booting on the serial console.

...
elf: 80080000 <-- 00001000 6586368t + 192624t
elf: entry 80328040
net: interface down
CPU revision is: 000028a0
FPU revision is: 000028a0
Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes.
Primary data cache 32kB 2-way, linesize 32 bytes.
Linux version 2.4.26-mipscvs-20040415 (root@khazad-dum) (gcc version 3.3.3...
Determined physical RAM map:
 memory: 08000000 @ 00000000 (usable)
Initial ramdisk at: 0x80392000 (3366912 bytes)
On node 0 totalpages: 32768
zone(0): 32768 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200 root=/dev/ram0
Calibrating delay loop... 249.85 BogoMIPS
Memory: 122512k/131072k available (2708k kernel code, 8560k reserved, 3424k dat)

A busybox ash shell will pop up as shown below, from which the Gentoo Linux installation can continue.

Код When things are going right...
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 280k freed
init started:  BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
  
Gentoo Linux; http://www.gentoo.org/
 Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
  
 Gentoo/MIPS Netboot for Cobalt Microserver Machines
 Build Date: April 26th, 2004
  
 * To configure networking, do the following:
  
 * For Static IP:
 * /bin/net-setup <IP Address> <Gateway Address> [telnet]
  
 * For Dynamic IP:
 * /bin/net-setup dhcp [telnet]
  
 * If you would like a telnetd daemon loaded as well, pass "telnet"
 * As the final argument to /bin/net-setup.
  
Please press Enter to activate this console.

Устранение проблем

If the machine is being stubborn and refusing to download its image, it can be one of two things:

  1. the instructions have not been followed correctly, or
  2. it needs a little gentle persuasion. (No, put that sledge hammer down!)

Here's a list of things to check:

  • dhcpd is giving the Cobalt Machine an IP Address. Notice messages about a BOOTP request in the system logs. tcpdump is also useful here.
  • Permissions are set properly in the /nfsroot/ folder (should be world readable).
  • Make sure the NFS server is running and exporting the /nfsroot/ directory. Check this using exportfs -v on the server.


Использование установочного CD

На машинах Silicon Graphics возможно загрузиться с CD, чтобы установить операционную систему (например, так устанавливается IRIX). Недавно стало возможным использовать образы таких загрузочных CD для установки Gentoo. Эти CD разработаны для работы в похожем режиме.

В данный момент Gentoo/MIPS Live CD будет работать только на рабочих станциях SGI Indy, Indigo 2 и O2, на которых стоят центральные процессоры серий R4000 и R5000, однако в будущем, возможно, появятся и другие платформы.

Вы можете скачать ваши образы Live CD на вашем любимом зеркале Gentoo в каталоге experimental/mips/livecd/.

Предупреждение
В данное время эти CD носят экспериментальный характер. Они могут заработать, а могут и нет. Вы можете сообщать об успехах или неудачах либо на багзиллу, либо в эту ветку форума либо на IRC-канал #gentoo-mips.


Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Автоматическое определение параметров сети

Может быть, всё уже работает?

Если система подключена к сети Ethernet, в которой есть DHCP-сервер, весьма вероятно, что конфигурация сетевых настроек уже была выполнена автоматически. Если это так, то различные сетевые команды с установочного компакт-диска (например: ssh, scp, ping, irssi, wget, links и многие другие) сразу же будут работать.

Определение имен сетевых интерфейсов

Команда ifconfig

Если сеть была настроена, команда ifconfig должна отобразить один или несколько сетевых интерфейсов (кроме lo). В примере ниже показан eth0:

root #ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

В результате перехода на предсказуемые имена для сетевых интерфейсов название интерфейса может отличаться от старого соглашения о именовании (eth0). В последних установочных носителях сетевые интерфейсы могут отображаться по-другому, например eno0, ens1 или enp5s0. Поищите интерфейс в выводе команды ifconfig IP-адрес которого связан с локальной сетью.

Совет
Если в выводе ifconfig нет интерфейсов, попробуйте использовать ту же команду с параметром -a. Это параметр выводит все обнаруженные системой сетевые интерфейсы, независимо от их состояния. Если ifconfig -a не даёт никаких результатов, значит либо аппаратное обеспечение неисправно, либо драйвер для сетевого интерфейса не был загружен в ядро. Обе ситуации не рассматриваются данным Руководством. Обратитесь в #gentoo для поддержки.

Команда ip

Взамен ifconfig для определения сетевых интерфейсов можно использовать ip. В следующем примере показан вывод ip addr (вывод с другой системы, так что показанная информация отличается от предыдущего примера):

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

Вывод команды может быть немного сложнее для восприятия, чем вывод других команд. В приведённом выше примере имя интерфейса следует непосредственно после номера: это eno1.

В оставшейся части данного документа будет считаться, что рабочий сетевой интерфейс называется eth0.

Дополнительно: настройка прокси

Если доступ к Интернету осуществляется через прокси-сервер, необходимо указать настройки прокси во время установки. Указать прокси очень просто: определите переменную, содержащую информацию о прокси-сервере.

В большинстве случаев, достаточно указать переменные с использованием имени сервера. В этом примере мы предположим, что прокси-сервером является proxy.gentoo.org, доступным на порту 8080.

Настройка HTTP-прокси (для HTTP- и HTTPS-трафика):

root #export http_proxy="http://proxy.gentoo.org:8080"

Настройка FTP-прокси:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

Настройка RSYNC-прокси:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

Если для прокси требуется имя пользователя и пароль, используйте следующий синтаксис в переменной:

Код Добавление имени пользователя/пароля в переменную прокси
http://username:password@proxy.gentoo.org:8080

Проверка сети

Попробуйте проверить DNS-сервер своего провайдера (его адрес можно найти в /etc/resolv.conf) и любой веб-сайт. Эта проверка покажет, что сеть функционирует в полном объёме, и сетевые пакеты достигают сети, разрешение имён работает правильно и так далее.

root #ping -c 3 www.gentoo.org

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

Автоматическая конфигурация сети

Если сеть не работает с первого раза, то в некоторых установочных носителях есть утилиты net-setup (для обычных и беспроводных сетей), pppoe-setup (для пользователей ADSL) или pptp (для пользователей PPTP).

Если же в установочном носителе нет этих утилит, продолжайте чтение с раздела Ручная конфигурация сети.

По умолчанию: использование net-setup

Простейшим способом настроить сеть (если она не была настроена автоматически) является запуск сценария net-setup:

root #net-setup eth0

net-setup задаст несколько вопросов о сетевом окружении. Когда всё будет готово, сетевое подключение должно заработать. Проверьте подключение, как это было показано выше. Если все проверки успешны, поздравляем! Пропустите оставшуюся часть раздела и продолжите с раздела Подготовка дисков.

Если сеть всё равно не работает, продолжайте чтение с раздела Ручная конфигурация сети.

Альтернатива: использование PPP

На случай, когда для подключения к Интернету требуется PPPoE, для упрощения настройки в установочный CD любой версии были добавлены программы, включая ppp. Для настройки подключения воспользуйтесь сценарием pppoe-setup. Во время настройки будут запрошены устройство Ethernet, к которому подключен ADSL-модем, имя и пароль, IP-адреса DNS-серверов и, если требуется, базовая настройка брандмауэра.

root #pppoe-setup
root #pppoe-start

Если что-то пошло не так, то повторно проверьте правильность имени и пароля в файлах etc/ppp/pap-secrets или /etc/ppp/chap-secrets и убедитесь, что используется правильное устройство Ethernet. Если устройство Ethernet не существует, проверьте, загружены ли необходимые сетевые модули. В этом случае перейдите к разделу Ручная конфигурация сети, в котором описан процесс загрузки подходящих модулей.

Если всё работает, то продолжайте чтение с раздела Подготовка дисков.

Альтернатива: использование PPTP

Для обеспечения работы PPTP на установочном CD присутствует сценарий pptpclient. Но сначала убедитесь, что конфигурация правильная. Отредактируйте /etc/ppp/pap-secrets или /etc/ppp/chap-secrets так, что бы в них была правильная комбинация имени и пароля:

root #nano -w /etc/ppp/chap-secrets

При необходимости проверьте /etc/ppp/options.pptp:

root #nano -w /etc/ppp/options.pptp

Когда всё будет сделано, запустите pptp (вместе с параметрами, которые могут быть установлены в options.pptp) для подключения к серверу:

root #pptp <server ip>

Продолжайте чтение с раздела Подготовка дисков.

Ручная конфигурация сети

Загрузка сетевых модулей

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

Если net-setup или pppoe-setup завершились ошибкой, возможно, что сетевая карта не была найдена. Это означает, что может понадобиться загрузить соответствующие модули ядра вручную.

Чтобы узнать, какие есть модули ядра для сетей, используйте команду ls:

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

Если драйвер сетевого устройства присутствует, то для его загрузки используйте modprobe. Например, для загрузки модуля pcnet32:

root #modprobe pcnet32

Чтобы проверить, определилась ли сетевая карта, наберите ifconfig. Если сетевая карта определилась, то результат будет выглядеть так (опять же, eth0 это только пример):

root #ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Если показано сообщение об ошибке, то сетевая карта не определена:

root #ifconfig eth0
eth0: error fetching interface information: Device not found

Имена доступных сетевых интерфейсов в системе можно увидеть через файловую систему /sys:

root #ls /sys/class/net
dummy0  eth0  lo  sit0  tap0  wlan0

В примере выше найдено 6 интерфейсов. eth0, скорее всего, проводной Ethernet-адаптер, а wlan0 — беспроводной.

Исходя из того, что сетевая карта была обнаружена, повторите net-setup или pppoe-setup снова (скорее всего они будут работать), но, для тех, кто хочет сделать всё самостоятельно, мы опишем, как настроить сеть вручную.

Выберите один из следующих разделов, в зависимости от настроек сети:

Использование DHCP

DHCP (Dynamic Host Configuration Protocol) позволяет автоматически получать данные о сети (IP-адрес, маску подсети, широковещательный адрес, шлюз, сервера имен и прочее). Данный сценарий возможен только в том случае, если в сети присутствует DHCP-сервер (или если Интернет-провайдер предоставляет службу DHCP). Чтобы сетевой интерфейс получал эти сведения автоматически, используйте dhcpcd:

root #dhcpcd eth0

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

root #dhcpcd -HD eth0

Если это сработало (попробуйте опросить командой ping какой-нибудь сервер в Интернете, например, 8.8.8.8 компании Google или 1.1.1.1 Cloudflare), то всё установлено, и можно продолжать. Пропустите оставшуюся часть раздела и приступайте к Подготовке дисков.

Подготовка беспроводного доступа

Заметка
Поддержка команды iw может быть архитектурно-зависимой. Если команда недоступна, проверьте, доступен ли пакет net-wireless/iw для данной архитектуры. Команда iw будет не доступна, если пакет net-wireless/iw не был установлен.

Беспроводные карты (стандарта 802.11) перед использованием необходимо предварительно настроить. Для отображения текущих настроек можно воспользоваться командой iw, вывод которой может быть таким:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

Чтобы проверить текущее подключение:

root #iw dev wlp9s0 link
Not connected.

или

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Заметка
Некоторые беспроводные карты могут иметь имена wlan0 или ra0 вместо wlp9s0. Запустите ip link, чтобы определить правильное имя устройства.

В большинстве случаев, для подключения необходимо только два параметра: ESSID (название беспроводной сети) и ключ WEP (необязательно).

  • Сперва удостоверьтесь, что интерфейс включён:
root #ip link set dev wlp9s0 up
  • Чтобы подключиться к открытой сети с именем GentooNode:
root #iw dev wlp9s0 connect -w GentooNode
  • Чтобы подключиться с шестнадцатеричным ключом WEP, добавьте к нему префикс d::
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • Чтобы подключиться с ключом ASCII WEP:
root #iw dev wlp9s0 connect -w GentooNode key 0:some-password
Заметка
Если в беспроводной сети применяются протоколы WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе Беспроводная сеть Руководства Gentoo.

Для подтверждения беспроводных настроек используйте iw dev wlp9s0 link. Как только беспроводная сеть заработает, продолжите настройку сетевых параметров, как описано в следующем разделе (Сетевая терминология) или с помощью инструмента net-setup, как описано ранее.

Сетевая терминология

Заметка
Если IP-адрес, широковещательный адрес, сетевая маска и сервера имён известны, то пропустите этот раздел и продолжайте с Использование ifconfig и route.

Если вышеперечисленные попытки были неудачными, то придётся настроить сеть вручную. Это совсем нетрудно. Однако для этого понадобятся некоторые знания и основные понятия в области сетевой терминологии. Прочитав данный раздел, вы узнаете, что такое шлюз, зачем нужна маска подсети, как формируется широковещательный адрес и почему системе нужны серверы имён.

В сети узлы идентифицируются по их IP-адресам (Internet Protocol адрес). Такой адрес воспринимается как сочетание четырех чисел от 0 до 255 (по крайней мере, при при использовании IP версии 4). В действительности IPv4-адрес состоит из 32 бит (единиц и нулей). Давайте рассмотрим пример:

Код Пример IPv4 адреса
IP-адрес (числа):     192.168.0.2
IP-адрес (биты):      11000000 10101000 00000000 00000010
                      -------- -------- -------- --------
                         192      168       0        2
Заметка
В IPv6, преемнике IPv4, используется 128 бит (единиц и нулей). Данный раздел посвящён исключительно адресам IPv4.

Такой IP-адрес уникален для узла в рамках всех доступных сетей (то есть каждый доступный узел в сети должен иметь уникальный IP-адрес). Для того, чтобы различать узлы, находящиеся внутри и извне сети, IP-адрес состоит из двух частей: сетевой части и части узла.

Разделение записывается с помощью маски подсети — набора единиц и следующих за ними нулей. Часть IP-адреса, которая может быть отображена на единицы, является сетевой частью, другая часть — узла. Обычно, маска подсети записываться в виде IP-адреса.

Код Пример разделения сети/узла
IP-адрес:    192      168      0         2
           11000000 10101000 00000000 00000010
Маска:     11111111 11111111 11111111 00000000
             255      255     255        0
          +--------------------------+--------+
                      Сеть              Узел

Другими словами, 192.168.0.14 является частью сети, а 192.168.1.2 таковым не является.

Широковещательный адрес — это IP-адрес, у которого сетевая часть такая же, как у сети, а в часть узла записаны единицы. Каждый узел в сети прослушает этот IP-адрес. Он предназначен для широковещательной рассылки пакетов.

Код Широковещательный адрес
IP-адрес:                    192      168      0         2
                          11000000 10101000 00000000 00000010
Широковещательный адрес:  11000000 10101000 00000000 11111111
                             192      168      0        255
                         +--------------------------+--------+
                                      Сеть             Узел

Чтобы иметь возможность выходить в глобальную сеть, каждый компьютер в сети должен знать, через какой узел происходит подключение к Интернету. Этот узел называется шлюзом. Так как это обычный узел, у него есть обычный IP-адрес (например, 192.168.0.1).

Ранее мы говорили, что каждый узел имеет свой собственный IP-адрес. Для того, чтобы связываться с узлом по имени (вместо IP-адреса) нам нужен сервис, который переводит имя (например, dev.gentoo.org) в IP-адрес (например, 64.5.62.82). Такой сервис называется службой имён. Чтобы использовать этот сервис, необходимо определить сервера имён в файле /etc/resolv.conf.

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

Соберём всю информацию, которая нам понадобится далее:

Сетевой параметр Пример
IP-адрес системы 192.168.0.2
Маска подсети 255.255.255.0
Широковещательный адрес 192.168.0.255
Шлюз 192.168.0.1
Сервер(ы) имён 195.130.130.5, 195.130.130.133

Использование ifconfig и route

Настройка сети состоит из трёх шагов:

  1. Назначение IP-адреса с помощью ifconfig
  2. Настройка маршрутизации с помощью route
  3. Размещение IP-адресов серверов имён в /etc/resolv.conf

Для назначения необходимы сам IP-адрес, широковещательный адрес и маска подсети. Выполните следующую команду, заменив ${IP_ADDR} на правильный IP-адрес, ${BROADCAST} — на широковещательный адрес и ${NETMASK} — на маску подсети:

root #ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

Настройте маршрут, используя route. Подставьте вместо ${GATEWAY} IP-адрес шлюза:

root #route add default gw ${GATEWAY}

Теперь откройте /etc/resolv.conf:

root #nano -w /etc/resolv.conf

Укажите сервера имён, используя следующий пример в качестве шаблона. Убедитесь, что заменили ${NAMESERVER1} и ${NAMESERVER2} на подходящие адреса:

Файл /etc/resolv.confШаблон по умолчанию /etc/resolv.conf
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

Вот и всё. Теперь проверьте сеть, выполнив команду ping для какого-нибудь сервера в Интернете (например Google 8.8.8.8 или Cloudflare 1.1.1.1). Если всё работает, то поздравляем с настройкой сети. Продолжайте чтение с раздела Подготовка дисков.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Введение в блочные устройства

Блочные устройства

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

Для начала, рассмотрим блочные устройства. Устройства SCSI и Serial ATA обозначаются как /dev/sda, /dev/sdb, /dev/sdc и так далее. На более современных компьютерах твердотельные накопители NVMe на базе PCI Express имеют дескриптор вида /dev/nvme0n1, /dev/nvme0n2 и так далее.

Следующая таблица поможет определить необходимый тип блочного устройства в системе:

Тип устройства Дескриптор устройства по умолчанию Примечания и полезные сведения
NVM Express (NVMe) /dev/nvme0n1 Передовая на данный момент технология твердотельных накопителей. Устройства NVMe подключаются к шине PCI Express и обладают наиболее быстрой скоростью передачи блочных данных, доступной на рынке. Системы образца 2014 года и новее могут иметь поддержку устройств NVMe.
SATA, SAS, SCSI или USB flash /dev/sda Данный тип устройств стал доступным примерно с 2007 года и встречается до сих пор, являясь, пожалуй, самым используемым типом в Linux. Устройства могут подключаться через шины SATA, SCSI или USB в виде устройства блочного хранилища.
MMC, eMMC и SD /dev/mmcblk0 Устройства embedded MMC, SD-карты и другие типы карт памяти могут использоваться для хранения данных. Однако не все системы могут позволить загружаться с данного типа устройств. Не рекомендуется использовать данные устройства для установки Linux; лучше используйте их по прямому назначению — для переноса файлов. Также их можно использовать для кратковременного резервного копирования.
IDE/PATA /dev/hda Так старые драйверы ядра Linux отображают диски IDE/Parallel ATA, подключённые к шине IDE. Строго говоря, подобный тип устройств постепенно исчезает из компьютеров с 2003 года, когда компьютерная индустрия переключилась на SATA. Большинство систем с одним контроллером IDE могут поддерживать до четырёх устройств (hda-hdd)
Альтернативное именование для этих устаревших интерфейсов включают в себя Extended IDE (EIDE) и Ultra ATA (UATA).

Данные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — SATA, SCSI или какой-либо ещё. Программа просто адресует пространство на диске как совокупность следующих друг за другом 4096-байтных (4K) блоков с произвольным доступом.


Разделы

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

Разработка схемы разделов

Сколько разделов и насколько больших?

Расположение разделов на диске очень сильно зависит от потребностей системы. Если в ней будет много пользователей, рекомендуется разместить /home в виде отдельного раздела, что улучшит безопасность и значительно упростит резервное копирование (а также другие операции сопровождения). Если Gentoo устанавливается для использования в роли почтового сервера, следует отделить /var, так как вся почта хранится в каталоге /var. Для игровых серверов потребуется отдельный раздел /opt, так как большинство игровых серверов устанавливается туда. Причины выделения те же, что и для каталога /home: безопасность, резервное копирование и сопровождение.

В большинстве случаев /usr и /var должны быть достаточно большого размера. В /usr хранится большинство приложений, доступных системе, а также исходные коды ядра Linux (в каталоге /usr/src). По умолчанию в /var хранится репозиторий пакетов Gentoo (расположенный в /var/db/repos/gentoo), который, в зависимости от файловой системы, займёт около 650 МиБ дискового пространства. Оценка этого пространства не включает каталоги /var/cache/distfiles и /var/cache/binpkgs, в которых будут скапливаться архивы исходных кодов и (не обязательно) двоичных пакетов, которые будут формироваться в самой системе.

Сколько именно и какого объёма разделов нужно системе — всё зависит от сочетания различных факторов, которые необходимо принимать во внимание. Наличие отдельных разделов или томов имеет следующие плюсы:

  • Можно выбрать наиболее подходящую файловую систему для каждого раздела или тома.
  • Свободное место во всей системе не закончится внезапно из-за того, что одна-единственная сбойная программа постоянно записывает файлы в раздел или том.
  • Необходимая проверка файловых систем будет занимать меньше времени, так как проверка разных разделов может выполняться параллельно (еще больший выигрыш времени дает использование нескольких физических дисков).
  • Можно повысить безопасность системы, монтируя часть разделов в режиме только для чтения, nosuid (игнорируется бит setuid), noexec (игнорируется бит исполнения) и так далее.

Однако у множества разделов также есть недостатки:

  • Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и нехватка на другом.
  • Другой проблемой является то, что отдельные разделы, особенно для важных точек монтирования, например /usr/ или /var/, часто требуют загрузки initramfs, чтобы смонтировать разделы прежде, чем запустятся другие загрузочные сценарии. Это не всегда является проблемой, так что результаты могут быть разные.
  • Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.

Что по поводу пространства подкачки?

Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру в условиях активного использования оперативной памяти. Пространство подкачки позволяет ядру переносить на диск страницы памяти, которые не будут использоваться в ближайшее время, освобождая память (swap или page-out). Конечно, если эта память вдруг неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет некоторое время (так как диски — это очень медленные устройства по сравнению с оперативной памятью).

Если на системе не требуется запускать приложения, требовательные к памяти, либо изначально доступно очень много памяти, то, скорее всего, необходимости в пространстве подкачки нет. Однако раздел подкачки также используется для сохранения всей памяти в случае перехода системы в спящий режим. Если планируется использовать этот режим, то нужно пространство подкачки, хотя бы равное количеству оперативной памяти, которое есть в системе.


Использование fdisk

SGI машины: Создание метки диска SGI

All disks in an SGI System require an SGI Disk Label, which serves a similar function as Sun & MS-DOS disklabels -- It stores information about the disk partitions. Creating a new SGI Disk Label will create two special partitions on the disk:

  • SGI Volume Header (9th partition): This partition is important. It is where the bootloader will reside, and in some cases, it will also contain the kernel images.
  • SGI Volume (11th partition): This partition is similar in purpose to the Sun Disklabel's third partition of "Whole Disk". This partition spans the entire disk, and should be left untouched. It serves no special purpose other than to assist the PROM in some undocumented fashion (or it is used by IRIX in some way).
Предупреждение
The SGI Volume Header must begin at cylinder 0. Failure to do so means a failure to boot from the disk.

The following is an example excerpt from an fdisk session. Read and tailor it to personal preference...

root #fdisk /dev/sda

Переключитесь в экспертный режим:

Command (m for help):x

With m the full menu of options is displayed:

Expert command (m for help):m
Command action
   b   move beginning of data in a partition
   c   change number of cylinders
   d   print the raw data in the partition table
   e   list extended partitions
   f   fix partition order
   g   create an IRIX (SGI) partition table
   h   change number of heads
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   s   change number of sectors/track
   v   verify the partition table
   w   write table to disk and exit

Build an SGI disk label:

Expert command (m for help):g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be irrecoverably lost.

Вернитесь в главное меню:

Expert command (m for help):r

Take a look at the current partition layout:

Command (m for help):p
Disk /dev/sda (SGI disk label): 64 heads, 32 sectors, 17482 cylinders
Units = cylinders of 2048 * 512 bytes
  
----- partitions -----
Pt#     Device  Info     Start       End   Sectors  Id  System
 9:  /dev/sda1               0         4     10240   0  SGI volhdr
11:  /dev/sda2               0     17481  35803136   6  SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Заметка
If the disk already has an existing SGI Disklabel, then fdisk will not allow the creation of a new label. There are two ways around this. One is to create a Sun or MS-DOS disklabel, write the changes to disk, and restart fdisk. The second is to overwrite the partition table with null data via the following command: dd if=/dev/zero of=/dev/sda bs=512 count=1

Resizing the SGI volume header

Важно
This step is often needed, due to a bug in fdisk. For some reason, the volume header isn't created correctly, the end result being it starts and ends on cylinder 0. This prevents multiple partitions from being created. To get around this issue... read on.

Now that an SGI Disklabel is created, partitions may now be defined. In the above example, there are already two partitions defined. These are the special partitions mentioned above and should not normally be altered. However, for installing Gentoo, we'll need to load a bootloader, and possibly multiple kernel images (depending on system type) directly into the volume header. The volume header itself can hold up to eight images of any size, with each image allowed eight-character names.

The process of making the volume header larger isn't exactly straight-forward; there's a bit of a trick to it. One cannot simply delete and re-add the volume header due to odd fdisk behavior. In the example provided below, we'll create a 50MB Volume header in conjunction with a 50MB /boot/ partition. The actual layout of a disk may vary, but this is for illustrative purposes only.

Создайте новый раздел:

Command (m for help):n
Partition number (1-16): 1
First cylinder (5-8682, default 5): 51
 Last cylinder (51-8682, default 8682): 101

Notice how fdisk only allows Partition #1 to be re-created starting at a minimum of cylinder 5? If we attempted to delete & re-create the SGI Volume Header this way, this is the same issue we would have encountered. In our example, we want /boot/ to be 50MB, so we start it at cylinder 51 (the Volume Header needs to start at cylinder 0, remember?), and set its ending cylinder to 101, which will roughly be 50MB (+/- 1-5MB).

Удалите раздел:

Command (m for help):d
Partition number (1-16): 9

Теперь, создайте его снова:

Command (m for help):n
Partition number (1-16): 9
First cylinder (0-50, default 0): 0
 Last cylinder (0-50, default 50): 50

If unsure how to use fdisk have a look down further at the instructions for partitioning on Cobalts. The concepts are exactly the same -- just remember to leave the volume header and whole disk partitions alone.

Once this is done, create the rest of your partitions as needed. After all the partitions are laid out, make sure to set the partition ID of the swap partition to 82, which is Linux Swap. By default, it will be 83, Linux Native.

Partitioning Cobalt drives

On Cobalt machines, the BOOTROM expects to see a MS-DOS MBR, so partitioning the drive is relatively straightforward -- in fact, it's done the same way as done for an Intel x86 machine. However there are some things you need to bear in mind.

  • Cobalt firmware will expect /dev/sda1 to be a Linux partition formatted EXT2 Revision 0. EXT2 Revision 1 partitions will NOT WORK! (The Cobalt BOOTROM only understands EXT2r0)
  • The above said partition must contain a gzipped ELF image, vmlinux.gz in the root of that partition, which it loads as the kernel

For that reason, it is recommended to create a ~20MB /boot/ partition formatted EXT2r0 upon which to install CoLo & kernels. This allows the user to run a modern filesystem (EXT3 or ReiserFS) for the root filesystem.

In the example, it is assumed that /dev/sda1 is created to mount later as a /boot/ partition. To make this /, keep the PROM's expectations in mind.

So, continuing on... To create the partitions type fdisk /dev/sda at the prompt. The main commands to know are these:

Код List of important fdisk commands
    o: Wipe out old partition table, starting with an empty MS-DOS partition table
    n: New Partition
    t: Change Partition Type
        Use type 82 for Linux Swap, 83 for Linux FS
    d: Delete a partition
    p: Display (print) Partition Table
    q: Quit -- leaving old partition table as is.
    w: Quit -- writing partition table in the process.
root #fdisk /dev/sda
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Start by clearing out any existing partitions:

Command (m for help):o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
  
  
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Now verify the partition table is empty using the p command:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System

Создайте раздел /boot:

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M

When printing the partitions, notice the newly created one:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          40       20128+  83  Linux

Let's now create an extended partition that covers the remainder of the disk. In that extended partition, we'll create the rest (logical partitions):

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (41-19870, default 41):
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870

Now we create the / partition, /usr, /var, et.

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (41-19870, default 41):<Press ENTER>
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870): +500M

Repeat this as needed.

Last but not least, the swap space. It is recommended to have at least 250MB swap, preferrably 1GB:

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (17294-19870, default 17294): <Press ENTER>
Using default value 17294
Last cylinder or +size or +sizeM or +sizeK (1011-19870, default 19870): <Press ENTER>
Using default value 19870

When checking the partition table, everything should be ready - one thing notwithstanding.

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  83  Linux

Notice how #10, the swap partition is still type 83? Let's change that to the proper type:

Command (m for help):t
Partition number (1-10): 10
Hex code (type L to list codes): 82
Changed system type of partition 10 to 82 (Linux swap)

Проверьте:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  82  Linux Swap

We write out the new partition table:

Command (m for help):w
The partition table has been altered!
  
Calling ioctl() to re-read partition table.
Syncing disks.


Создание файловых систем

Введение

Теперь, когда разделы созданы, пора разместить на них файловые системы. В следующем разделе описаны различные поддерживаемые в Linux файловые системы. Те из читателей, кто уже знает, какую файловую систему будет использовать, могут продолжить с раздела Создание файловой системы. Другим стоит продолжить чтение, чтобы узнать о доступных вариантах…

Файловые системы

Linux поддерживает несколько десятков файловых систем, хотя для большинства из них необходимы достаточно веские причины их использовать. Лишь только некоторые из них можно считать стабильными на архитектуре mips. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как останавливать свой выбор на экспериментальных.

btrfs
Файловая система следующего поколения, обеспечивающая множество дополнительных функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, поддержка прозрачного сжатия, субтомов и интегрированный RAID. Ядра старше ветки 5.4 не обеспечивают безопасную работу btrfs, так как исправления наиболее серьёзных проблем стабильности появились только в более поздних ветках долговременной поддержки ядра. Ошибки с повреждением файловой системы довольно часты для старых версий ядра, особенно небезопасны и нестабильны версии старше 4.4. Повреждения файловой системы для ядер старше 5.4 обычно характерны при включении сжатия. RAID 5/6 и quota groups небезопасны для всех версий btrfs. Более того, btrfs может неявным образом нарушить работу с файловыми операциями с ошибкой ENOSPC (при этом df сообщает, что свободное место есть) из-за внутренней фрагментации (свободное место высчитывается из расчёта DATA + SYSTEM участков, но при этом этом не учитывается в участках METADATA). Также, единственная ссылка 4K на экстент 128M внутри btrfs может отображать свободное место, которое недоступно для использования. Всё это приводит к тому, что btrfs возвращает ENOSPC, а df говорит, что есть свободное пространство. Установка sys-fs/btrfsmaintenance и конфигурация сценариев на периодический запуск поможет сократить количество проблем с ENOSPC путём ребалансировки btrfs, но не устранит их окончательно. Некоторые системы могут никогда не получить ошибку ENOSPC, когда как другие будут встречать её часто. Если риск получения ошибки ENOSPC недопустим, следует использовать другую файловую систему. При использовании btrfs убедитесь, что не собираетесь использовать конфигурацию, которая известна своей нестабильностью. За исключением проблемы ENOSPC, информация о существующих проблемах btrfs в последних ветках ядра доступна на вики-странице состояния btrfs.
ext2
Это проверенная и надежная файловая система Linux, но она не обладает средствами журналирования метаданных, что означает, что проверка файловой системы ext2 при запуске может занимать довольно много времени. Существует достаточно широкий выбор журналируемых файловых систем нового поколения, целостность которых может быть проверена очень быстро, что является преимуществом перед нежурналируемыми системами. Журналирование файловой системы позволяет избежать долгих задержек при загрузке системы, а также избежать её нестабильного состояния.
ext3
Журналируемая версия файловой системы ext2, обеспечивающая журналирования метаданных для быстрого восстановления в дополнение к другим режимам журналирования, таким как журналирование всех данных и упорядоченных данных. В данной ФС используются индексы на базе деревьев хешей, что в большинстве случаев обеспечивает высокую производительность. Вкратце, ext3 — это очень хорошая и надёжная файловая система.
ext4
Изначально созданная как ответвление от ext3, ext4 реализует новые возможности, повышение производительности и устранение ограничений на размер раздела на диске ценой незначительного изменения формата данных на диске. Она может быть размером до 1 ЭБ, а максимальный размер файла может составлять 16 ТБ. Вместо классического ext2/3 блочного распределения ext4 использует экстенты, которые улучшают производительность при работе с большими файлами и уменьшают фрагментацию. Ext4 также обеспечивает более сложные алгоритмы распределения блоков (отложенное распределение и мультиблочное распределение), дающие драйверу файловой системы больше возможностей по оптимизации размещения данных на диске. Ext4 рекомендуется как универсальная файловая система для всех платформ.
f2fs
Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND-накопителях. По состоянию на 2 квартал 2016 года файловая система считается не завершенной, но она может быть достойным выбором при установке на microSD карту, USB-накопитель или другие накопители.
JFS
Высокопроизводительная журналируемая файловая система от IBM. JFS — это легкая, быстрая и надежная файловая система, основанная на двоичных деревьях с хорошей производительностью в различных условиях.
ReiserFS
Основанная на двоичных деревьях журналируемая файловая система с хорошей общей производительностью, особенно при работе с множеством мелких файлов ценой чутью больших затрат центрального процессора. ReiserFS версии 3 включена в ядро Linux, однако не рекомендуется использовать её для первичной установки системы Gentoo. Существуют более новые версии ReiserFS, но для своей работы они требуют дополнительных патчей ядра.
XFS
Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. XFS менее снисходительно относится к различным аппаратным проблемам, однако непрерывно обновляется, обрастая новым возможностями.
VFAT
Так же известна как FAT32, поддерживается Linux, но не имеет поддержку стандартных файловых разрешений UNIX. В основном используется для взаимодействия с другими операционными системами (в основном Microsoft Windows и Apple OSX), но также необходима при использовании некоторых системных прошивок загрузчика (например, UEFI).
NTFS
New Technology Filesystem является основной файловой системой для Microsoft Windows начиная с NT 3.5. Как и vfat, она не сохраняет настройки UNIX разрешений и расширенные атрибуты, необходимые для нормальной работы BSD или Linux, поэтому её не следует использоваться в качестве корневой файловой системы. Её необходимо использовать только для взаимодействия с системами Microsoft Windows (обратите внимание на акцент слова только).

При использовании ext2, ext3 или ext4 на малых разделах (менее 8 ГиБ) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Приложение mke2fs (mkfs.ext2) использует настройки «bytes-per-inode» для вычисления количества необходимых дескрипторов. На небольших разделах рекомендуется увеличивать расчётное количество дескрипторов.

Для ext2, ext3 или ext4 может быть выполнена одна из следующих команд:

root #mkfs.ext2 -T small /dev/<device>
root #mkfs.ext3 -T small /dev/<device>
root #mkfs.ext4 -T small /dev/<device>

Данные команды учетверяют количество индексных дескрипторов для такой ФС, так как «bytes-per-inode» уменьшает количество байт на каждый дескриптор с 16 кб до 4 кб. Это соотношение может быть изменено в любую сторону с помощью команды:

root #mkfs.ext2 -i <ratio> /dev/<device>

Создание файловой системы

Для создания файловых систем на разделе или томе существуют пользовательские утилиты для каждого возможного типа файловой системы. Нажмите на имя файловой системы в таблице ниже для получения дополнительной информации о каждой файловой системе:

Файловая система Команда для создания Есть на минимальном CD? Пакет
btrfs mkfs.btrfs Да sys-fs/btrfs-progs
ext2 mkfs.ext2 Да sys-fs/e2fsprogs
ext3 mkfs.ext3 Да sys-fs/e2fsprogs
ext4 mkfs.ext4 Да sys-fs/e2fsprogs
f2fs mkfs.f2fs Да sys-fs/f2fs-tools
jfs mkfs.jfs Да sys-fs/jfsutils
reiserfs mkfs.reiserfs Да sys-fs/reiserfsprogs
xfs mkfs.xfs Да sys-fs/xfsprogs
vfat mkfs.vfat Да sys-fs/dosfstools
NTFS mkfs.ntfs Да sys-fs/ntfs3g

Например, чтобы создать загрузочный раздел (/dev/sda1) в ext2 и корневой раздел (/dev/sda5) в ext4 при использовании структуры разделов из примера, используются следующие команды:

root #mkfs.ext2 /dev/sda1
root #mkfs.ext4 /dev/sda5

Теперь создайте файловые системы на только что созданных томах (или логических разделах).

Активация раздела подкачки

Для инициализации разделов подкачки используется команда mkswap:

root #mkswap /dev/sda10

Чтобы активировать раздел подкачки, используйте swapon:

root #swapon /dev/sda10

Создайте и активируйте раздел подкачки командами выше.

Монтирование корневого раздела

Теперь, когда созданы разделы и размещённые на них файловые системы, настало время их смонтировать. Используйте команду mount, только не забудьте предварительно создать каталоги для монтирования каждого созданного раздела. В качестве примера мы смонтируем корневой раздела:

root #mount /dev/sda5 /mnt/gentoo
Заметка
Если /tmp/ находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #chmod 1777 /mnt/gentoo/tmp
Это также справедливо для /var/tmp.

Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс к ядру) и другие псевдофайловые системы ядра. Но сначала мы установим установочные файлы Gentoo.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Установка архива stage

Установка времени и даты

Перед установкой Gentoo было бы неплохо проверить корректность настройки даты и времени. Неправильно настроенные часы могут привести к странным результатам, так как базовые системные файлы должны быть извлечены с правильными временными метками. К тому же, в силу того, что часть сайтов и сервисов использует шифрование (SSL/TLS), может случиться, что будет невозможно скачать установочные файлы из-за большого расхождения системных часов!

Проверьте текущую дату и время с помощью команды date:

root #date
Mon Oct  3 13:16:22 PDT 2016

Если время и дата неверны, обновите их, используя один из методов ниже.

Заметка
Материнские платы без Real-Time Clock (RTC) необходимо настроить для автоматической синхронизации системных часов с сервером времени. Это также справедливо для систем у которых есть RTC, но разряжена батарейка.

Автоматическая настройка

Официальный установочный носитель Gentoo включает в себя команду ntpd (поставляется в пакете net-misc/ntp). Официальный установочный носитель включает конфигурационный файл, настроенный для синхронизации с серверами времени ntp.org. Его можно использовать для автоматической синхронизации системных часов в UTC-время. Для этого метода необходима настроенная сеть, кроме того, он может быть не работать на некоторых архитектурах.

Предупреждение
Автоматическая синхронизация времени имеет свою цену. Сведения об IP-адресе и связанная с сетевыми настройками информация будет отправляться на сервер времени (в данном примере — на ntp.org). Пользователи, озабоченные безопасностью, должны быть осведомлены об этом до настройки системных часов с помощью указанного метода.
root #ntpd -q -g

Ручная настройка

Команда date также может использоваться для ручной установки системных часов. Используйте синтаксис MMDDhhmmYYYY (M — месяц, D — день, h — час, m — минута и Y — год).

Для систем Linux рекомендуется использовать время UTC. Позже, в процессе установки, можно будет установить часовой пояс. Это позволит изменить отображение часов с учётом местного времени.

Например, чтобы установить дату на 13:16 3 октября 2016 года:

root #date 100313162016

Выбор архива stage

Multilib (32 и 64 бит)

Выбор правильного базового архива для системы впоследствии может сэкономить значительное количество времени, затраченное на установку, особенно в тот момент, когда понадобится выбирать системный профиль. Выбранный архив будет непосредственно влиять на конфигурацию будущей системы и не будет стоить зря потраченных нервов. В архиве multilib предпочтение отдаётся 64-битным библиотекам, но, если необходимо обеспечение совместимости, есть возможность использовать 32-битные версии. Это великолепный выбор для большинства установок, так как он обеспечивает большую гибкость конфигурации в будущем. Если необходимо, чтобы система могла легко переключаться с профиля на профиль, то следует выбирать архив multilib для своей процессорной архитектуры.

Большинству пользователей не следует использовать «продвинутые» варианты архивов; они предназначены для конкретных программных или аппаратных конфигураций.

No-multilib (чистый 64-bit)

no-multilib архив в качестве основы для системы обеспечивает полноценную 64-битную среду. Однако это будет означать, что переключиться на профили multilib будет трудноосуществимо (хотя это и возможно). Пользователям, которые только начинают знакомиться с Gentoo, следует избегать использование архива no-multilib (если только это не продиктовано другими соображениями).

Предупреждение
Имейте в виду, миграция с no-multilib на multilib потребует чрезвычайно хорошего знания Gentoo и наличия набора инструментов разработки более низкого уровня (от которых наших разработчиков Toolchain может даже бросить дрожь). Данный процесс не для слабонервных и выходит за рамки данного руководства.

Скачивание архива stage

Перейдите к точке монтирования Gentoo, где размещается корневая файловая система (скорей всего это /mnt/gentoo):

root #cd /mnt/gentoo

В зависимости от установочного носителя, для скачивания архива stage достаточно простого веб-браузера.

Графические веб-браузеры

У пользователей, использующих среду с полноценными веб-браузерами, не будет никаких проблем с копированием URL файла stage из раздела загрузки главного веб-сайта. Просто выберите подходящую вкладку, щёлкните правой кнопкой по ссылке файла stage, выберите Копировать ссылку (Firefox) или Копировать адрес ссылки (Chromium), скопировав её в буфер обмена. Затем вставьте ссылку в командной строке после команды wget для скачивания архива:

root #wget <PASTED_STAGE_URL>

Веб-браузер в командной строке

Более опытные пользователи или «старики» Gentoo, которые работают исключительно из командной строки, могут воспользоваться links — консольным веб-браузером. Чтобы загрузить файл архива stage, просмотрите список зеркал Gentoo:

root #links https://www.gentoo.org/downloads/mirrors/

Чтобы использовать HTTP-прокси в links, введите URL с параметром -http-proxy:

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

Наряду с links так же есть браузер lynx. Как и links он не имеет графического интерфейса, но у него нет меню.

root #lynx https://www.gentoo.org/downloads/mirrors/

Если прокси нужно сохранить, экспортируйте переменные http_proxy и/или ftp_proxy:

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

В списке зеркал выберите зеркало, которое находится рядом. Обычно достаточно HTTP-зеркала, но другие протоколы также доступны. Перейдите в каталог releases/mips/autobuilds/. Там отображаются все доступные stage-файлы (они могут находиться в подкаталогах с названиями отдельных субархитектур). Выберите нужный и нажмите d для скачивания.

После завершения скачивания можно проверить целостность и достоверность содержимого архива stage. Если вам это интересно, перейдите к следующему разделу.

Тем, кому не интересно проверять архив stage, могут закрыть браузер в командной строке с помощью клавиши q и сразу перейти к разделу #Распаковка архива stage.

Проверка и валидация

Заметка
Некоторые архивы упакованы с помощью алгоритма сжатия xz. Скачивая архив в формате .tar.xz, измените его имя с .tar.bz2 в последующих командах.

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

  • Файл .CONTENTS содержит список всех файлов внутри stage архива.
  • Файл .DIGESTS содержит контрольные суммы в разных алгоритмах для файла stage.
  • Файл .DIGESTS.asc, как и .DIGESTS, содержит не только контрольные суммы в различных алгоритмах, но и криптографическую подпись, позволяющую убедиться, что файл был предоставлен проектом Gentoo.

Для сравнения контрольных сумм из файлов .DIGESTS и .DIGESTS.asc можно использовать openssl.

Например, для проверки контрольной суммы SHA512:

root #openssl dgst -r -sha512 stage3-mips-<release>.tar.?(bz2|xz)

Также можно использовать команду sha512sum:

root #sha512sum stage3-mips-<release>.tar.?(bz2|xz)

Для проверки контрольной суммы Whirlpool:

root #openssl dgst -r -whirlpool stage3-mips-<release>.tar.?(bz2|xz)

Сравните вывод этих команд со значением в файле .DIGESTS(.asc). Значения должны совпадать, иначе загруженный файл может быть поврежден (или сам файл digest).

Как и в случае с файлом ISO, можно проверить криптографическую подпись файла .DIGESTS.asc с помощью gpg, чтобы убедиться, что контрольные суммы не были подделаны:

root #gpg --verify stage3-mips-<release>.tar.?(bz2|xz){.DIGESTS.asc,}

Распаковка архива stage

Теперь распакуем загруженный stage в систему. Для этого воспользуемся командой tar:

root #tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner

Убедитесь, что указаны те же самые параметры (xpf и --xattrs-include='*.*'). x указывает на извлечение (extract), p для сохранения (preserve) прав доступа и f для обозначения, что мы хотим извлечь файл (file), а не стандартный ввод. --xattrs-include='*.*' позволит также сохранить расширенные атрибуты во всех пространствах имен, хранящиеся в архиве. Наконец, --numeric-owner используется для того, чтобы убедиться, что идентификаторы пользователей и групп распаковываемых файлов останутся такими же, как и задумывались командой Gentoo по подготовке релизов (даже если предприимчивые пользователи не используют официальный установочный носитель Gentoo).

Теперь, когда stage распакован, перейдём к настройке параметров компиляции.

Настройка параметров компиляции

Введение

Для оптимизации Gentoo можно установить несколько переменных, влияющих на поведение пакетного менеджера Portage. Все переменные могут быть установлены в виде переменных среды (с помощью export), но это не является постоянным решением. Чтобы сохранить изменения, следует изменить /etc/portage/make.conf, являющийся основным конфигурационным файлом Portage.

Заметка
Список и описание всех допустимых переменных можно найти в /mnt/gentoo/usr/share/portage/config/make.conf.example. Для успешной установки Gentoo достаточно определить только те переменные, которые упомянуты ниже.

Запустите редактор (в этом руководстве мы используем nano) для изменения параметров оптимизации, о которых написано далее.

root #nano -w /mnt/gentoo/etc/portage/make.conf

В файле make.conf.example показано, как файл должен быть структурирован: строки комментариев начинаются с «#», другие строки описывают переменные вида ПЕРЕМЕННАЯ="содержание". Некоторые из этих переменных мы обсудим позже.

CFLAGS и CXXFLAGS

Переменные CFLAGS и CXXFLAGS определяют параметры оптимизации для компиляторов GCC C и C++ соответственно. Хотя они и указаны здесь, для достижения максимальной производительности можно было бы указать флаги оптимизации для каждой программы отдельно. Причина этого в том, что все программы различны. Но этим тяжело управлять, следовательно, запишем эти переменные в make.conf файл.

В make.conf следует указывать параметры оптимизации, которые сделают систему наиболее отзывчивой в целом. Не нужно использовать экспериментальные настройки; излишняя оптимизация может привести к непредсказуемому поведению программ (аварийному завершению, или ещё хуже, к неправильной работе).

Мы не будем описывать все возможные параметры оптимизации. За более подробной информацией обратитесь к Документации GNU или к инфо-странице gcc (info gcc — работает только на работающей системе Linux). Сам файл make.conf.example содержит множество примеров и информации; не забудьте прочитать его тоже.

Первым параметром обычно является флаг -march= или -mtune=, который указывает имя целевой архитектуры. Возможные варианты описаны в файле make.conf.example (в комментариях). Обычно используется значение native, который сообщает компилятору, чтобы он использовал целевую архитектуру существующей системы (той, на которую будет установлена Gentoo).

Второй параметр оптимизации — это флаг (это заглавная буква О, а не ноль), который определяет класс оптимизации для gcc. Возможные классы: s (оптимизация по размеру), 0 (ноль — без оптимизации), 1, 2 или даже 3 для более лучшей оптимизация по скорости (в каждый класс входят все флаги предыдущего, и некоторые дополнительные). -O2 является рекомендованным значением по умолчанию. -O3 может вызывать проблемы при глобальном использовании на уровне системы, так что мы рекомендуем придерживаться -O2.

Ещё одним популярным флагом оптимизации является -pipe (использование конвейера вместо временных файлов для взаимодействия между различными стадиями компиляции). Это не имеет никакого влияния на сгенерированный код, при этом использует больше памяти. В системах с небольшим объемом памяти gcc может аварийно завершиться из-за нехватки памяти. В этом случае не используйте этот флаг.

Использование -fomit-frame-pointer (не хранить указатель фрейма в регистре для функций, которым он не нужен) может привести к серьезным последствиям во время отладки приложений.

Определение переменных CFLAGS и CXXFLAGS позволяет комбинировать несколько флагов оптимизации в одной строке. Значений по умолчанию, содержащихся в архиве stage3, обычно более чем достаточно. Ниже приведён пример конфигурации:

Код Пример для переменных CFLAGS и CXXFLAGS
# Флаги компилятора, используемые для всех языков
COMMON_FLAGS="-mabi=32 -mips4 -pipe -O2"
# Используйте те же настройки для обеих переменных
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Совет
Хотя руководство по оптимизации GCC имеет больше информации о том, как различные параметры компиляции могут повлиять на систему, статья Safe CFLAGS будет более полезной для начинающих пользователей, желающих оптимизировать свою систему.

MAKEOPTS

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

Код Пример записи MAKEOPTS в make.conf
MAKEOPTS="-j2"

На старт, внимание, марш!

Обновите /mnt/gentoo/etc/portage/make.conf файл в соответствии с личными предпочтениями и сохраните изменения (в nano нужно нажать Ctrl+X).

Переходите к установке базовой системы Gentoo.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Переход в изолированную среду

Необязательно: Выбор зеркала

Распределение файлов

Для быстрой загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или зеркала), наиболее близко расположенное к месту физического расположения (чаще всего они и есть самые быстрые). Тем не менее, мы предоставляем хороший инструмент под названием mirrorselect, который предлагает удобный интерфейс для выбора подходящего зеркала. Просто перейдите на нужное зеркало и нажмите пробел для выбора одного или нескольких.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Репозиторий ebuild-файлов Gentoo

Вторым важным шагом в выборе зеркала является настройка репозитория ebuild-файлов Gentoo в /etc/portage/repos.conf/gentoo.conf. Этот файл содержит информацию, необходимую для обновления репозитория пакетов (коллекции ebuild и связанных с ними файлов, содержащих всю необходимую Portage информацию для загрузки и установки пакетов программного обеспечения).

Настройка репозитория выполняется простыми действиями. Сперва создайте каталог repos.conf (если он ещё не существует):

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

Далее, скопируйте файл конфигурации репозитория Gentoo, предоставляемый Portage, в (только что созданный) каталог repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Просмотрите его с помощью текстового редактора или команды cat. Содержание в формате .ini должно выглядеть следующим образом:

Файл /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4

Значение переменной sync-uri по умолчанию будет определять местоположение зеркала на основе ротации. Это позволяет ослабить сетевую нагрузку на инфраструктуру Gentoo и повышает отказоустойчивость в случаях, когда конкретное зеркало недоступно. Рекомендуется придерживаться URI по умолчанию, если не используется локальное зеркало Portage.

Совет
Интересующиеся могут ознакомиться с официальными спецификациями API плагинов синхронизации Portage в статье Sync Portage проекта.

Копирование информации о DNS

Единственное, что ещё осталось сделать перед входом в новое окружение, это скопировать информацию о DNS из файла /etc/resolv.conf. Это нужно сделать, чтобы сеть всё ещё будет работать даже после входа в новое окружение. Файл /etc/resolv.conf содержит сервера имён.

Чтобы скопировать эту информацию, рекомендуется ввести ключ --dereference для команды cp. Благодаря этому /etc/resolv.conf будет скопирован как файл, если является символьной ссылкой. В противном случае в новом окружении символическая ссылка будет ссылаться на несуществующий файл (так как цель ссылки, скорее всего, будет недоступна внутри нового окружения).

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Монтирование необходимых файловых систем

Через несколько мгновений корневая система Linux будет перемещена в новое место. Чтобы новое окружение работало должным образом, для него должны быть доступны некоторые файловые системы.

Файловые системы, которые должны быть доступны:

  • /proc/ — псевдофайловая система (она выглядит как обычные файлы, но на самом деле генерируется на лету), через которую ядро Linux предоставляет информацию для окружения
  • /sys/ — псевдофайловая система, как и /proc/, которую она однажды заменит, также она более структурирована, чем /proc/
  • /dev/ — это обычная файловая система, частично управляемая менеджером устройств Linux (обычно udev), которая содержит все файлы устройств

Каталог /proc/ монтируется в /mnt/gentoo/proc/, остальные два каталога — через перепривязку точки монтирования. Это означает, что, например, /mnt/gentoo/sys/ на самом деле будет /sys/ (это просто вторая точка входа в ту же файловую систему), тогда как /mnt/gentoo/proc/ является новой точкой монтирования (так сказать, экземпляром) файловой системы.

root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
Заметка
Параметр --make-rslave необходим для дальнейшей поддержки systemd в ходе установки.
Предупреждение
Если при установке используется не дистрибутив Gentoo, то этого может быть недостаточно. Некоторые дистрибутивы делают /dev/shm символьной ссылкой на /run/shm/, которая после перехода в изолированную среду станет недействительной. Создание правильного подключения /dev/shm/ в tmpfs поможет избежать этой проблемы:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Также проверьте, что права доступа установлены в 1777:

root # chmod 1777 /dev/shm

Переход в новое окружение

Теперь, когда все разделы инициализированы и базовое окружение установлено, настало время войти в новое установочное окружение (выполнить chroot). Это означает, что сессия изменит свой корневой каталог (наивысший каталог, в который можно перейти) из текущей установочного окружения (CD или другого установочного носителя) в систему установки (где находятся размеченные разделы).

Переход в изолированное окружение делается в три шага:

  1. Изменение корневого каталога с / (который находится на установочном носителе) в /mnt/gentoo/ (на разделах диска) с помощью команды chroot
  2. Загрузка в память некоторых параметров из /etc/profile с помощью команды source
  3. Изменение приглашения командной строки, чтобы не забыть, что эта сессия находится в изолированном окружении.
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

С этого момента все действия выполняются непосредственно в новом окружении Gentoo Linux. Конечно, до финала ещё далеко, поэтому установка продлится ещё несколько разделов!

Совет
Если установка Gentoo будет случайно прервана где-то далее после этой точки, то можно «продолжить» установку с последнего состояния. Не нужно разбивать диск снова! Просто смонтируйте корневой раздел снова и проделайте предыдущие шаги, начиная с копирования информации о DNS, для повторного входа в рабочее окружение. Это также подойдет для решения проблем с загрузчиком. Больше информации можно найти в статье chroot.

Монтирование раздела boot

После входа в новое окружение необходимо смонтировать раздел boot. Он необходим в процессе компиляции ядра и установки загрузчика:

root #mount /dev/sda1 /boot

Настройка Portage

Установка снимка репозитория ebuild-файлов Gentoo

Следующим шагом будет установка снимка репозитория ebuild-файлов Gentoo. Этот снимок содержит коллекцию файлов, которая сообщает Portage о доступных программах (для установки), какой профиль может выбрать системный администратор, о новостях о конкретных пакетах или профилях и так далее.

emerge-webrsync рекомендуется использовать в случаях, когда система находится за межсетевым экраном (для загрузки снимка используется только протоколы HTTP/HTTPS), а также когда необходимо снизить нагрузку канал сети. У кого нет ограничений с сетью или шириной канала, могут счастливо перейти к следующему разделу.

Команда ниже загрузит последний снимок (которые выпускаются каждый день), с одного из зеркал Gentoo, и распакует его в системе:

root #emerge-webrsync
Заметка
Во время этой операции, emerge-webrsync может жаловаться на отсутствие /var/db/repos/gentoo/. В этом нет ничего страшного — инструмент сам создаст этот каталог.

Начиная с этого места, Portage может попросить установить некоторые рекомендуемые обновления: некоторые системные пакеты, установленные из архива stage, могут иметь новые доступные версии. Пакетному менеджеру теперь известно о новых пакетах благодаря снимку репозитория. Обновление пакетов можно проигнорировать, этот процесс можно отложить до завершения установки Gentoo.

Необязательно: Обновление репозитория ebuild-файлов Gentoo

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

Если необходимо установить последние обновления пакетов (выпущенных не более 1 часа назад), то используйте emerge --sync. Эта команда использует rsync-протокол для обновления репозитория ebuild-файлов Gentoo (которое было получено ранее с помощью emerge-webrsync) до самой свежей версии.

root #emerge --sync

На медленных терминалах (с медленным кадровым буфером или через последовательный порт), рекомендуется использовать параметр --quiet для ускорения процесса:

root #emerge --sync --quiet

Чтение новостей

После обновления репозитория ebuild-файлов Gentoo, Portage может вывести похожие сообщения:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Новостные сообщения были созданы для обеспечения коммуникационного канала и оповещения пользователей о важных событиях через репозиторий ebuild-файлов Gentoo. Для управления оповещениями используйте команду eselect news. Приложение eselect предоставляет общий интерфейс для системного администрирования. В данном случае eselect используется совместно с модулем news.

Для модуля news есть три наиболее распространенных операций:

  • list отображает общий список новостей.
  • с помощью read можно прочитать какую-либо новость.
  • purge удалит прочитанные новости, поэтому перечитать новость снова уже будет нельзя.
root #eselect news list
root #eselect news read

Более подробную информацию о чтении новостей можно найти на странице man:

root #man news.eselect

Выбор подходящего профиля

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

Вы можете увидеть, какой профиль в настоящее время используется в системе, с помощью команды eselect, только теперь с модулем profile:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/mips/ *
  [2]   default/linux/mips//desktop
  [3]   default/linux/mips//desktop/gnome
  [4]   default/linux/mips//desktop/kde
Заметка
Вывод команды является только примером и может меняться время от времени.

Как можно увидеть, для некоторых архитектурах есть субпрофиль для настольных систем.

Предупреждение
Не стоит халатно относиться к обновлениям профиля. Выбирая изначальный профиль, убедитесь, что профиль соответствует той же версии, которая была использована в stage3 (к примеру, ). Каждая новая версия профиля объявляется через элемент новостей с инструкциями по миграции. Прочитайте и следуйте им, прежде чем перейти на новый профиль.

После просмотра доступных профилей для архитектуры mips, пользователи могут выбрать другой системный профиль:

root #eselect profile set 2



Заметка
Подпрофиль developer сделан специально для разработки Gentoo Linux и не предназначен для использования обычными пользователями.

Обновление набора @world

На данный момент разумно будет обновить @world чтобы базовая часть системы изменилась.

Это действие необходимо, чтобы система могла применить какие-либо обновления с момента сборки stage3 и обновления профиля:

root #emerge --ask --verbose --update --deep --newuse @world
Совет
Если до этого был выбран профиль для полноценной графической оболочки, процесс установки может занять значительное время. Оценить время установки очень просто: чем короче имя профиля, тем меньше будет набор @world; чем меньше набор @world, тем меньше пакетов системе потребуется. Другими словами:
  • При выборе default/linux/amd64/ потребует обновления небольшого количества пакетов, когда как
  • При выборе default/linux/amd64//desktop/gnome/systemd потребует обновления гораздо большего числа пакетов, так как система инициализации поменяется с OpenRC на systemd, и будут установлены пакеты рабочего стола GNOME.

Настройка переменной USE

USE — это одна из самых мощных переменных Gentoo, доступная пользователям. Разные программы могут быть скомпилированы с или без поддержки некоторых элементов. Например, некоторые программы могут быть собраны с поддержкой GTK+ или Qt. Другие могут быть собраны с или без поддержки SSL. Некоторые программы можно даже собрать с поддержкой кадрового буфера (svgalib) вместо X11 (X-сервера).

Большинство дистрибутивов компилируют свои пакеты с поддержкой всего, что возможно, увеличивая размер и время запуска программ, не говоря уже о чрезмерных зависимостях. Благодаря Gentoo пользователь может определить с какими параметрами пакет должен быть скомпилирован. И здесь переменная USE вступает в игру.

В переменной USE пользователи могут определить ключевые слова, которые сказываются на параметрах сборки. Например, ssl компилирует SSL-поддержку в программах, которые её поддерживают. -X уберет поддержку X-сервера (обратите внимание на знак минус перед X). gnome gtk -kde -qt4 -qt5 будет компилировать программы с поддержкой GNOME (и GTK+), но без поддержки KDE (и Qt), что делает систему более оптимальной для использования GNOME (если архитектура поддерживает его).

Настройки по умолчанию для USE находятся в файле make.defaults профиля Gentoo, который используется на данный момент системой. Gentoo использует систему (комплекс) наследования для своих профилей в которую мы не будем погружаться на данный момент. Простой способ проверить какие настройки используются для USE — запустить emerge --info и просмотреть строку, начинающуюся с USE:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Заметка
В приведённом выше примере список укорочен. Настоящий список USE флагов намного больше.

Полное описание всех доступных USE-флагов можно найти в файле /var/db/repos/gentoo/profiles/use.desc.

root #less /var/db/repos/gentoo/profiles/use.desc

При использовании команды less можно использовать прокрутку с помощью клавиш и , для выхода нажмите клавишу q.

В качестве примера мы покажем настройки USE для системы ориентированной для использования KDE с поддержкой DVD, ALSA и записи CD:

root #nano -w /etc/portage/make.conf
Файл /etc/portage/make.confНастройки USE для системы ориентированной для использования KDE/Plasma с поддержкой DVD, ALSA и записи CD
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"

Если USE-флаг определён в /etc/portage/make.conf, он будет добавлен (или удалён, если перед USE-флагом написан знак -) в список по умолчанию. Если вы хотите, чтобы все определённые флаги USE были проигнорированы, и полностью настраивать флаги самостоятельно, то добавьте в начало переменной USE в make.conf комбинацию -*:

Файл /etc/portage/make.confИгнорирование USE-флагов по умолчанию
USE="-* X acl alsa"
Предупреждение
Пусть это и возможно, но установка -* (как в примере выше) не одобряется, так как в некоторых пакетах могут присутствовать тщательно подобранные наборы USE-флагов для конкретных пакетов, чтобы избежать конфликтов и прочих ошибок.

Необязательно: Настройка переменной ACCEPT_LICENSE

Каждый пакет в Gentoo помечаются лицензией (или лицензиями), под условиями которой возможно его использование. Это даёт пользователям перед установкой возможность выбирать программы с определёнными лицензиями или группами лицензий.

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

Portage использует переменную ACCEPT_LICENSE, чтобы определить пакеты, которые можно установить без вопросов к пользователю о выбранных лицензиях. Также можно делать исключения для определённых пакетов через /etc/portage/package.license.

Группы лицензий, определённые в репозитории Gentoo и Проектом Лицензий Gentoo:

Имя группы Описание
@GPL-COMPATIBLE Совместимые с GPL лицензии, одобренные Free Software Foundation [a_license 1]
@FSF-APPROVED Лицензии свободного ПО, одобренные FSF (включает @GPL-COMPATIBLE)
@OSI-APPROVED Лицензии, одобренные Open Source Initiative [a_license 2]
@MISC-FREE Различные лицензии, которые, вероятнее всего, тоже относятся к свободному ПО, то есть следуют Определению Свободного ПО [a_license 3], но не одобрены ни FSF, ни OSI
@FREE-SOFTWARE Сочетание @FSF-APPROVED, @OSI-APPROVED и @MISC-FREE
@FSF-APPROVED-OTHER Одобренные FSF лицензии для «свободной документации» и «работ для практического применения, не являющихся ПО или документацией» (включая шрифты)
@MISC-FREE-DOCS Различные лицензии для свободных документов и прочих работ (включая шрифты), следующие определению свободного произведения [a_license 4], но НЕ включены в @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Сочетание @FSF-APPROVED-OTHER и @MISC-FREE-DOCS
@FREE Надмножество всех лицензий, обладающих свободой использования, распространения, изменения и распространения изменений. Сочетание @FREE-SOFTWARE и @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Лицензии, разрешающие по крайней мере свободное распространение ПО в двоичной форме. Включает в себя @FREE
@EULA Лицензионные соглашения, которые пытаются отобрать ваши права. Они более строги, чем «все права защищены», или могут требовать явного согласия.

В профилях Gentoo предусмотрено значение по умолчанию, к примеру:

user $portageq envvar ACCEPT_LICENSE
@FREE

Это можно настроить на уровне системы, изменив /etc/portage/make.conf таким образом, чтобы, к примеру, разрешить пакеты с лицензиями, одобренными Free Software Foundation, the Open Source Initiative или следующими Определению Свободного ПО:

Файл /etc/portage/make.confCustomizing ACCEPT_LICENSE
ACCEPT_LICENSE="-* @FREE"

Также можно добавить переопределение допустимых лицензий для конкретных пакетов, например:

Файл /etc/portage/package.license/kernelПример переопределения допустимых лицензий
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode


Часовой пояс

Определите, какой часовой пояс будет установлен для системы. Просмотрите список всех доступных часовых поясов в каталоге /usr/share/zoneinfo/, затем запишите выбранный в файл /etc/timezone.

root #ls /usr/share/zoneinfo

Предположим, что необходимо установить часовой пояс Europe/Brussels:

root #echo "Europe/Brussels" > /etc/timezone

Старайтесь не использовать часовые пояса, начинающиеся с /usr/share/zoneinfo/Etc/GMT*, так как их названия не отражают настоящий часовой пояс. Например, GMT-8 на самом деле является GMT+8.

Далее перенастроим пакет sys-libs/timezone-data, что обновит файл /etc/localtime, основываясь на записи в /etc/timezone. Файл /etc/localtime используется системной библиотекой C, чтобы узнать, в каком часовом поясе находится система.

root #emerge --config sys-libs/timezone-data

Настройка локалей

Генерация локалей

Большинству пользователей достаточно иметь одну или две локали на своих системах.

Локаль указывает не только язык, который использует пользователь при взаимодействии с системой, но и правила для сортировки строк, формат вывода даты и времени, и так далее. Локали являются регистрозависимыми и должны использоваться так, как они описаны. Полный список доступных локалей можно найти в файле /usr/share/i18n/SUPPORTED.

Локали, поддерживаемые системой, должны быть указаны в /etc/locale.gen.

root #nano -w /etc/locale.gen

Следующие локали являются примером для создания английской (США) и русской (Россия) локалей с поддержкой формата символов (например, UTF-8).

Файл /etc/locale.genВключение US и RU локалей с поддержкой формата символов
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
Предупреждение
Мы настоятельно рекомендуем добавить хотя бы одну локаль UTF-8, так как для сборки многих приложений это является обязательным требованием.

Далее, запустим команду locale-gen, которая создаст все перечисленные в файле /etc/locale.gen локали.

root #locale-gen

Чтобы убедится, что выбранные локали теперь доступны, запустите команду locale -a.

Выбор локали

Теперь настало время установить локаль для всей системы. И снова мы используем eselect для этого, только теперь с модулем locale.

Команда eselect locale list выведет список доступных локалей:

root #eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   C.utf8
  [3]   en_US
  [4]   en_US.iso88591
  [5]   en_US.utf8
  [6]   POSIX
  [7]   ru_RU.utf8
  [8]   ru_RU.UTF-8
  [ ]   (free form)

Команда eselect locale set <NUMBER> установит необходимую локаль:

root #eselect locale set 8

Это также можно сделать вручную, с помощью файла /etc/env.d/02locale:

Файл /etc/env.d/02localeРучная настройка системной локали
LANG="ru_RU.UTF-8"
LC_COLLATE="C"

Установка локали предотвратит появление предупреждений и ошибок в процессе компиляции ядра и программ.

Заново перезагрузите окружение:

root #env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

Полное руководство локализации может дать дополнительную информацию, связанную с работой с локалями. Также стоит взглянуть на статью UTF-8 с очень подробной информацией о том, как включить поддержку UTF-8 в системе.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Установка исходного кода

Все дистрибутивы строятся вокруг ядра Linux. Ядро является слоем между пользовательскими программами и оборудованием системы. Gentoo предоставляет несколько вариантов исходного кода ядра. Полный список с описанием доступен на странице статье Общие сведения о ядре.

Для систем, основанных на mips архитектуре, рекомендуется пакет sys-kernel/mips-sources.

Выберем подходящий исходный код ядра и установим его с помощью emerge:

root #emerge --ask sys-kernel/mips-sources

Данная команда установит исходный код ядра Linux в /usr/src/, в котором символьная ссылка linux будет указывать на установленную версию:

root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo

Теперь следует сконфигурировать и собрать ядро. Существует два основных подхода:

  1. Ядро конфигурируется и собирается вручную.
  2. Ядро автоматически собирается и устанавливается с помощью genkernel.

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

По умолчанию: Ручное конфигурирование

Введение

Согласно расхожему мнению, настройка ядра — наиболее сложная процедура, с которой может столкнуться пользователь Linux. Это далеко не так — после нескольких сборок ядра, не всякий вспомнит, что это было сложно ;).

Однако одна вещь является истиной: при ручной конфигурации ядра очень важно понимать свою систему. Большую часть сведений можно почерпнуть, установив пакет sys-apps/pciutils, который содержит в команду lspci:

root #emerge --ask sys-apps/pciutils
Заметка
Находясь внутри изолированного окружения chroot, можно спокойно игнорировать любые предупреждения pcilib (например, pcilib: cannot open /sys/bus/pci/devices), которые могут появляться в выводе lspci.

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

Остаётся перейти в каталог с ядром и выполнить make menuconfig, который запустит экран меню конфигурации.

root #cd /usr/src/linux
root #make menuconfig

В конфигурации ядра Linux есть много-много разделов. Сначала пройдёмся по пунктам, которые должны быть обязательно включены (иначе Gentoo будет работать неправильно или же вовсе не запустится). Также в вики есть Руководство по настройке ядра Gentoo, которое поможет понять более тонкие детали.

Включение обязательных параметров

Убедитесь, что все драйверы, необходимые для загрузки системы (например, контроллер SCSI) собраны прямо в ядре, а не в виде модуля. В противном случае, система может не загрузиться.

Далее следует выбрать тип процессора. Также рекомендуется включить возможности MCE (если они доступны), чтобы пользователи системы могли получать оповещение о любых проблемах с оборудованием. На некоторых архитектурах (например, x86_64) подобные ошибки выводятся не в dmesg, а в /dev/mcelog. А для него понадобится пакет app-admin/mcelog.

Также включите Maintain a devtmpfs file system to mount at /dev, чтобы критически важные файлы устройств были доступны на самом раннем этапе загрузки (CONFIG_DEVTMPFS и CONFIG_DEVTMPFS_MOUNT):

Ядро Включение поддержки devtmpfs
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Убедитесь, что поддержка SCSI-дисков включена (CONFIG_BLK_DEV_SD):

Ядро Включение поддержки SCSI-дисков
Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support

Теперь перейдите в раздел File Systems и выберите те файловые системы, которые планируете использовать. Файловая система, используемая в качестве корневой должна быть включена в ядро, иначе Gentoo не сможет примонтировать данный раздел. Также включите Virtual memory и /proc file system. По необходимости выберете один или несколько элементов из списка (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS и CONFIG_TMPFS):

Ядро Выбираем необходимые файловые системы
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
 
Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

Если для подключения к Интернету используется PPPoE или модемное соединение, то включите следующие параметры (CONFIG_PPP, CONFIG_PPP_ASYNC и CONFIG_PPP_SYNC_TTY):

Ядро Выбираем необходимые драйвера для PPPoE
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Два параметра сжатия не повредят, но и не являются обязательными, как и PPP over Ethernet. Фактически, последний используется в случае, если ppp сконфигурирован на использование ядерный PPPoE режим.

Не забудьте настроить поддержку сетевых карт (Ethernet или беспроводных).

Поскольку большинство современных систем являются многоядерными, важно включить Symmetric multi-processing support (CONFIG_SMP):

Ядро Включаем поддержку SMP
Processor type and features  --->
  [*] Symmetric multi-processing support
Заметка
Во многоядерных системах каждое ядро считается за один процессор.

Если используются USB-устройства ввода (например клавиатура и мышь) или другие устройства, то не забудьте включить и эти параметры (CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):

Ядро Включаем поддержку USB для устройств ввода
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support


Подготовка конфигурации

Важно
На некоторых системах (Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2 и O2) необходимо 64-битное ядро для загрузки. Для таких систем установите sys-devel/kgcc64, чтобы собрать кросс-компилятор для сборки 64-битных ядер.

Многие из поддерживаемых систем имеют примерные файлы .configs, скрытые в исходных кодах ядра. Не все системы имеют конфигурацию, распространяемую таким образом. Те, которые имеют, могут быть сконфигурированы командами, показанными в таблице ниже.

Система Команда конфигурации
Серверы Cobalt make cobalt_defconfig
Indy, Indigo2 (R4k), Challenge S make ip22_defconfig
Origin 200/2000 make ip27_defconfig
Indigo2 Impact (R10k) make ip28_defconfig
O2 make ip32_defconfig

Все образы для установки Gentoo включают в себя конфигурацию ядра как часть образа. Конфигурация находится в /proc/config.gz. Во многих случаях можно использовать данный файл. Лучше, если ваши исходные коды ядра почти совпадают с ядром, которое в настоящее время работает. Чтобы распаковать данный файл, просто пропустите его через zcat, как показано ниже.

root #zcat /proc/config.gz > .config
Важно
Данная конфигурация ядра настроена для образа netboot. Поэтому она будет ожидать, что где-то рядом находится образ корневой файловой системы, либо как каталог для initramfs, либо устройство-петля для initrd. Когда вы запустите make menuconfig, не забудьте зайти в General Setup и выключить параметры для initramfs.

Настройка конфигурации

Как только вы нашли конфигурацию, скачайте её в каталог с вашим исходным кодом ядра, и переименуйте её в .config. Далее вы можете запустить make oldconfig чтобы обновить конфигурацию, и получить возможность изменить её до компиляции.

root #cd /usr/src/linux
root #cp /path/to/example-config .config
root #make oldconfig

Пока просто нажмимайте ENTER (или Return) на каждый запрос, чтобы выбрать значение по умолчанию…

root #make menuconfig
Важно
В разделе Kernel Hacking есть параметр с именем «Are You Using A Cross Compiler?». Она сообщает ядру, что нужно добавить «mips-linux-» (либо mipsel-linux… и так далее) к командам gcc и as при компиляции ядра. Это нужно выключить, даже если вы и правда делаете кросс-компиляцию. Вместо этого, если вам нужно вызвать кросс-компилятор, укажите префикс, используя переменную CRROSS_COMPILE, как показано в следующем разделе.
Важно
Существует известная ошибка с JFS и ALSA на системах Octane, на которой ALSA не работает. Из-за недостаточной стабильности JFS на MIPS, рекомендуется пока не использовать JFS.

Компиляция и установка

Теперь, когда ядро настроено, настало время его скомпилировать и установить. Выйдите из настройки и запустите процесс компиляции:

Заметка
На 64-битных машинах вам нужно указать CROSS_COMPILE=mips64-unknown-linux-gnu- (или mips64el-… на системе little-endian) для использования 64-битного компилятора.

Обычная компиляция:

root #make vmlinux modules modules_install

При кросс-компиляции на целевой системе измените mips64-unknown-linux-gnu- так, как вам необходимо:

root #make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-

При компиляции на другой системе, например, x86, используйте следующие команды для компиляции ядра и установки модулей в отдельный каталог, который потом можно передать на целевую систему.

root #make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
root #make modules_install INSTALL_MOD_PATH=/куда_нибудь
Важно
При компиляции 64-битного ядра для Indy, Indigo2 (R4k), Challenge S и O2 используйте цель vmlinux.32 вместо vmlinux. В противном случае ваша система не сможет загрузиться. Это необходимо для того, чтобы обойти PROM, который не понимает формат ELF64.
root #make vmlinux.32
Заметка
Можно включить параллельную сборку, используя make -jX, где X — это число параллельных задач, которые может запустить процесс сборки. Это похоже на инструкции, которые были даны ранее относительно файла /etc/portage/make.conf в части переменной MAKEOPTS

Данная команда создаст vmlinux.32, который будет вашим ядром.

По завершении компиляции ядра, скопируйте образ ядра в каталог /boot:

Заметка
На серверах Cobalt начальный загрузчик ожидает запакованный образ ядра. Прежде чем положить его в /boot/, не забудьте выполнить команду gzip -9 для образа.
root #cp vmlinux /boot/kernel-3.16.5-gentoo

Для серверов Cobalt сожмите образ ядра:

root #gzip -9v /boot/kernel-3.16.5-gentoo


Необязательно: Сборка initramfs

В некоторых случаях необходимо собрать initramfs — файловую систему инициализации, размещаемую в оперативной памяти. Одна из необходимых причин для этого — когда важные части системных путей (например, /usr/ или /var/) находятся на отдельных разделах. Эти разделы могут быть смонтированы средствами, расположенными внутри initramfs.

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

Для установки initramfs, сперва нужен sys-kernel/genkernel, который его создаст:

root #emerge --ask sys-kernel/genkernel
root #genkernel --install initramfs

Если необходима особая поддержка в initramfs, например LVM или RAID, то следует указать это через соответствующий параметр genkernel. Для более подробной информации см. genkernel --help. В следующем примере включена поддержка LVM и программного RAID (mdadm):

root #genkernel --lvm --mdadm --install initramfs

initramfs будет сохранён в /boot/ под названием, начинающимся с «initramfs»:

root #ls /boot/initramfs*

Теперь продолжите с раздела Модули ядра.

Альтернатива: Использование genkernel

Если ручная установка кажется слишком сложной, то можно воспользоваться утилитой genkernel, которая сконфигурирует и соберёт ядро автоматически.

genkernel конфигурирует ядро примерно так же, как это делается для установочного носителя. Это значит, что ядро, собранное genkernel, постарается определить всё оборудование в процессе загрузки. Поскольку genkernel не требует ручной конфигурации ядра, он идеально подходит для тех пользователей, кто не готов собирать собственное ядро.

Приступим. Сперва нужно установить sys-kernel/genkernel:

root #emerge --ask sys-kernel/genkernel

Далее отредактируйте файл /etc/fstab, где следует указать в строке /boot/ правильное устройство во втором поле. Если вы следовали примеру разбиения разделов из данного Руководста, то, скорее всего, это будет устройство /dev/sda1 с файловой системой ext2. Тогда строка должна выглядеть следующим образом:

root #nano -w /etc/fstab
Файл /etc/fstabНастройка точки монтирования /boot
/dev/sda1	/boot	ext2	defaults	0 2
Заметка
В процессе настройки Gentoo /etc/fstab ещё будет изменён. На данный момент мы правим лишь /boot, так как genkernel использует эту настройку.

Осталось скомпилировать ядро, выполнив genkernel all. Учтите, что поскольку genkernel включает поддержку как можно большего диапазона оборудования, процесс сборки может занять некоторое время!

Заметка
Если для загрузочного раздела не используется ext2 или ext3, то возможно придётся вручную настроить ядро, выполнив genkernel --menuconfig all и добавив поддержку нужной ФС (не как модуля). Пользователям LVM2 следует также добавить --lvm в качестве аргумента.
root #genkernel all

По завершению работы genkernel будут сформированы ядро, полный набор модулей и файловая система инициализации (initramfs). Ядро и initrd нам понадобятся позднее. Запишите название файлов ядра и initrd, так как они нам понадобятся при настройке загрузчика. Initrd запускается сразу после ядра для определения оборудования (как при загрузке установочного CD), перед запуском самой системы.

root #ls /boot/kernel* /boot/initramfs*

Модули ядра

Конфигурация модулей

Заметка
Модули оборудования не обязательно указывать вручную. В большинстве случаев, udev автоматически загрузит все необходимые модуля для обнаруженных устройств. Однако, не будет никакого вреда, если указать автоматически загружаемые модули вручную. Иногда очень специфическим устройствам необходима некоторая помощь, чтобы загрузить свои драйвера.

Укажите модули, которые должны загружаться автоматически в файлах /etc/modules-load.d/*.conf, по одному модулю в строке. Дополнительные параметры для модулей при необходимости можно указывать в файлах /etc/modprobe.d/*.conf.

Чтобы посмотреть доступные модули, выполните команду find, не забыв заменить «<kernel version>» на собранную в предыдущем шаге версию:

root #find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

Например, чтобы автоматически загрузить модуль 3c59x.ko (драйвер для определённого семейства сетевых карт от 3Com), отредактируйте файл /etc/modules-load.d/network.conf, добавив туда имя модуля. Фактическое имя файла несущественно для загрузчика.

root #mkdir -p /etc/modules-load.d
root #nano -w /etc/modules-load.d/network.conf
Файл /etc/modules-load.d/network.confПринудительная загрузка модуля 3c59x во время загрузки
3c59x

Продолжите установку с раздела Настройка системы.

Необязательно: Установка файлов прошивки

Для корректной работы некоторых драйверов требуется установка дополнительных файлов прошивки. Часто подобное требуется для сетевых интерфейсов, особенно беспроводных. Также, современные видеочипы от AMD, NVidia и Intel, при использовании отрытых драйверов, часто нуждаются во внешних файлах firmware. Большинство файлов прошивки поставляется в пакете sys-kernel/linux-firmware:

root #emerge --ask sys-kernel/linux-firmware




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Информация о файловой системе

О файле fstab

В Linux все разделы, используемые системой, должны быть записаны в файле /etc/fstab. Этот файл содержит информацию о точках монтирования разделов (где они должны быть видны в структуре файловой системы), как они должны быть подключены, а также специальные параметры (автоматическое подключение или нет, может ли пользователь их подключать или нет и так далее).

Создание файла fstab

В файле /etc/fstab используется синтаксис, напоминающий таблицу. Каждая строка состоит из шести полей, которые разделены пропусками (пробелами, отступами или смесь этого). Каждое поле имеет своё значение:

  1. Первое поле содержит блочное устройство (или удалённую файловую систему), которое следует примонтировать. Для экземпляров блочных устройств возможно использование различных идентификаторов, включая путь к устройству, метки файловой системы, метки раздела и UUID
  2. Второе поле содержит точку монтирования, к которой следует монтировать раздел.
  3. Третье поле содержит тип файловой системы, используемой разделом.
  4. Четвёртое поле содержит параметры, используемые командой mount во время монтирования. Так как у каждой файловой системы могут быть собственные уникальные параметры, рекомендуется прочитать man-страницу команды mount (man mount), чтобы получить полный список всех возможных параметров. Параметры монтирования разделяются запятыми.
  5. Пятое поле используется командой dump для определения того, нуждается ли раздел в дампе или нет. Обычно это поле содержит 0 (ноль).
  6. Шестое поле используется командой fsck для определения порядка проведения проверки ошибок файловой системы, если система была отключена некорректно. Для корневой файловой системы необходимо указывать 1, для остальных — 2 (или 0, если проверка не требуется вовсе).
Важно
Файл /etc/fstab, который предоставляется Gentoo по умолчанию, не является валидным файлом fstab, а представлен в качестве шаблона.
root #nano -w /etc/fstab

В оставшейся части текста в качестве имён блочных устройств разделов мы будем использовать /dev/sd*.

Метки файловых систем и UUID

И MBR (BIOS), и GPT поддерживают как метки (labels), так и UUID файловой системы. Эти свойства могут быть определены в /etc/fstab в качестве альтернативы для команды mount для определения блочного устройства. Такие свойства используются при попытке найти и примонтировать блочные устройства. Метки и UUID файловой системы определяются через префиксы LABEL и UUID. Их можно посмотреть командой blkid:

root #blkid
Предупреждение
Если файловая система внутри раздела будет полностью затёрта (wipe), то значение меток и UUID файловой системы также будут изменены или удалены.

Благодаря уникальности UUID, читателям, использующим таблицу разделов в стиле MBR, рекомендуется использовать UUID вместо меток для определения монтируемых томов в /etc/fstab.

Метки разделов и UUID

У пользователей, которые пошли по пути использования GPT, есть несколько более надёжных вариантов для определения разделов в /etc/fstab. Метки разделов и UUID разделов могут быть использованы для идентификации разделов блочного устройства, независимо от того, какая файловая система была выбрана для самого раздела. Метки и UUID раздела определяются через префиксы PARTLABEL и PARTUUID соответственно. Их можно увидеть в терминале с помощью команды blkid:

root #blkid

Хотя это не всегда верно для меток разделов, использование UUID для идентификации раздела в fstab обеспечивает гарантию того, что загрузчик не собьётся при поиске определённого тома, даже если файловая система будет изменена в будущем. Использование по умолчанию старых файлов блочных устройств (/dev/sd*N) для определения разделов в fstab будет рискованно в системах, которые часто перезагружаются и в которых регулярно добавляются и удаляются блочные устройства SATA.

Именование файлов блочных устройств зависит от ряда факторов, включая то, как и в каком порядке диски подключены в системе. Они могут отображаться в другом порядке, в зависимости от того, какое из устройств обнаруживается ядром первым в начале загрузки. При этом, если вы не намерены постоянно переключать жесткие диски, использование файлов блочных устройств по умолчанию является простым и удобным подходом.


Давайте посмотрим, как записать настройки для /boot/ раздела. Это просто пример, поэтому запись необходимо изменить в соответствии с ранее выбранной схемой разделов. В нашем mips примере, /boot/ является обычным /dev/sda1 разделом с файловой системой ext2. Необходимо проверять его во время загрузки, поэтому мы запишем следующее:

Файл /etc/fstabПример строки /boot для /etc/fstab
/dev/sda1   /boot     ext2    defaults        0 2

Из соображения безопасности некоторые пользователи могут не захотеть автоматически монтировать раздел /boot/. Для этого следует заменить defaults на noauto. Это будет означать, что раздел придётся монтировать каждый раз, когда понадобится его использовать.

Добавьте правила, которые соответствуют ранее запланированной схеме разметки диска, а также правила для таких устройств, как компакт-диски, и других устройств (если они есть в системе).

Ниже приведён более подробный пример файла /etc/fstab:


Файл /etc/fstabПолный пример /etc/fstab
/dev/sda1   /boot        ext2    defaults,noatime     0 2
/dev/sda10   none         swap    sw                   0 0
/dev/sda5   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

При использовании auto в третьем поле команда mount попытается автоматически определить тип файловой системы. Это рекомендуется для отсоединяемых устройств, которые могут использовать разные файловые системы. Параметр user в четвертом поле позволяет монтировать компакт-диски обычными пользователями.

Большинство пользователей возможно захотят добавить параметр noatime, что приведет к более высокой производительности, так как не будет считываться и меняться атрибут времени доступа к файлам (который, в общем и целом, обычно не нужен). Владельцам твердотельных накопителей (SSD) в дополнение к этому также рекомендуется добавить параметр discard (на данный момент только для ext4 и btrfs), что вызовет работу команды TRIM.

Дважды проверьте файл /etc/fstab, сохраните его и выйдите из редактора, чтобы продолжить дальше.

Информация о сети

Информация об узле и домене

Первое решение, которое предстоит принять пользователю, это как назвать его/её компьютер. Кажется, что это является довольно лёгким решением, но многие пользователи испытывают трудности с поиском подходящего имени для своего компьютера. Чтобы не мешкать слишком долго, выберите любое имя — его можно будет сменить позже. Например, в приведённом ниже примере используется имя узла tux с доменом homenetwork.

root #nano -w /etc/conf.d/hostname
# Устанавливаем переменную hostname в выбранное значение имени узла
hostname="tux"

Во-вторых, если требуется доменное имя, настройте его в файле /etc/conf.d/net. Это необходимо, если провайдер или сетевой администратор требует этого или в сети есть DNS-сервер, но нет DHCP-сервера. Не беспокойтесь о DNS или доменном имени, если используется DHCP для динамического распределения IP-адресов и конфигурации сети.

Заметка
По умолчанию файла /etc/conf.d/net не существует, поэтому его нужно создать.
root #nano -w /etc/conf.d/net
# Устанавливаем переменную dns_domain_lo выбранным доменным именем
dns_domain_lo="homenetwork"
Заметка
Если доменное имя не настроено, то пользователь может получить сообщение «This is hostname.(none)» на экране входа. Это можно исправить, удалив .\O в файле /etc/issue.

Если требуется NIS-домен (пользователям, которые не знают, что это такое, он не понадобится), то настройте его тоже:

root #nano -w /etc/conf.d/net
# Устанавливаем переменную nis_domain_lo выбранным NIS-доменом
nis_domain_lo="my-nisdomain"
Заметка
За более подробной информацией о конфигурации DNS и NIS обратитесь к примерам в /usr/share/doc/netifrc-*/net.example.bz2, которые можно прочесть с помощью bzless. Также, возможно будет интересно установить net-dns/openresolv, который поможет с настройками DNS/NIS.

Настройка сети

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

Заметка
Больше информации о настройке сети, в том числе об объединении интерфейсов, создании мостов, настройке 802.1Q VLAN и беспроводной сети, рассматриваются в разделе «Настройка сети».

Все настройки сети собраны в файле /etc/conf.d/net. В нём используется простой, но пока ещё непонятный синтаксис. Но не беспокойтесь, обо всём мы расскажем далее. Полностью документированные примеры, описывающие множество разных конфигураций, доступны в /usr/share/doc/netifrc-*/net.example.bz2.

Сначала установите net-misc/netifrc:

root #emerge --ask --noreplace net-misc/netifrc

По умолчанию используется DHCP. Но для того, чтобы он заработал, необходимо установить DHCP-клиент. Это будет описано далее в разделе «Установка необходимым системных пакетов».

Если сетевое соединение требует дополнительной настройки DHCP или вовсе не использует DHCP, тогда откройте /etc/conf.d/net:

root #nano -w /etc/conf.d/net

Настройте оба параметра config_eth0 и routes_eth0, введя информацию о IP-адресе и информацию о маршрутизации:

Заметка
Предполагается имя сетевого интерфейса eth0, однако имя в многом зависит от системы. Будем считать, что интерфейс называется так же, как интерфейс, который получил название при загрузке установочного носителя. Больше информации можно найти в разделе «Именование сетевых интерфейсов».
Файл /etc/conf.d/netНастройка статического IP-адреса
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

Для использования DHCP настройте config_eth0:

Файл /etc/conf.d/netНастройка для работы DHCP
config_eth0="dhcp"

Для получения полного списка доступных конфигураций прочтите /usr/share/doc/netifrc-*/net.example.bz2. Не забудьте также прочитать man-страницу для DHCP-клиента, если требуется сделать дополнительные настройки.

Если в системе имеются несколько сетевых интерфейсов, то повторите предыдущие шаги для config_eth1, config_eth2, и так далее.

Теперь сохраните настройки и выйдите из редактора, чтобы продолжить далее.

Автоматический запуск сетевого подключения при загрузке системы

Для того, чтобы сетевые интерфейсы начинали работать во время загрузки системы, их необходимо добавить к уровню запуска по умолчанию.

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

Если в системе есть несколько сетевых интерфейсов, то соответствующие файлы net.* должны быть созданы также, как мы сделали это для net.eth0.

Если после загрузки выяснится, что имя сетевого интерфейса (в данном документе используется имя eth0) не корректно, то выполните следующие шаги, чтобы исправить это:

  1. Измените настройки в файле /etc/conf.d/net, используя правильное название интерфейса (например, enp3s0 вместо eth0).
  2. Создайте новую символьную ссылку (например, /etc/init.d/net.enp3s0).
  3. Удалите старую символьную ссылку (rm /etc/init.d/net.eth0).
  4. Добавьте новую в уровень запуска по умолчанию.
  5. Удалите старую с помощью rc-update del net.eth0 default.

Файл hosts

Следующим шагом мы дадим Linux сведения о сетевом окружении. Это делается с помощью /etc/hosts, который помогает разрешать имя узла в IP-адреса для узлов, которых нет в сервере имён.

root #nano -w /etc/hosts
Файл /etc/hostsВнесение сетевой информации
# Это обязательные настройки для текущей системы
127.0.0.1     tux.homenetwork tux localhost
  
# Дополнительные настройки для других систем в сети
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

Сохраните и закройте текстовый редактор для продолжения.

Опционально: поддержка PCMCIA-устройств

Владельцам PCMCIA необходимо установить пакет sys-apps/pcmciautils.

root #emerge --ask sys-apps/pcmciautils

Системная информация

Пароль суперпользователя

Изменить пароль суперпользователя (с именем root) можно с помощью команды passwd.

root #passwd

Учётная запись root является всемогущей учетной записью в Linux, так следует подобрать достаточно надёжный пароль. Позже мы создадим обычного пользователя для повседневных операций.

Инициализация и конфигурация загрузки

Gentoo (по крайней мере при использовании OpenRC) использует /etc/rc.conf для настройки сервисов, запуска и остановки системы. Откройте /etc/rc.conf и прочтите все комментарии в файле. Проверьте настройки и измените их при необходимости.

root #nano -w /etc/rc.conf

Далее, откройте /etc/conf.d/keymaps для настройки раскладки клавиатуры. Отредактируйте файл и выберите нужную раскладку.

root #nano -w /etc/conf.d/keymaps

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

Наконец, отредактируйте /etc/conf.d/hwclock чтобы установить параметры часов. Отредактируйте его в соответствии с личными предпочтениями.

root #nano -w /etc/conf.d/hwclock

Если аппаратные часы не настроены на время UTC, то в файле необходимо установить clock="local". В противном случае система может отображать неправильное время.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Системный журнал

Некоторые утилиты не были включены в stage3, так как некоторые пакеты обеспечивают схожую функциональность. Теперь пользователь должен установить те, которые ему требуются.

Сперва, нужно установить то, что обеспечит возможность журналирования системы. В Unix и Linux много уделяется внимания поддержки журналирования - при необходимости, все, что происходит в системе, может быть записано в лог файлы. И делается это с помощью системного журнала.

Gentoo предоставляет несколько утилит системного журнала. Некоторые из них перечислены здесь:

  • app-admin/sysklogd — предоставляет традиционный набор возможностей. Настройки по умолчанию работают хорошо из коробки, что делает этот пакет хорошим вариантом для начинающих.
  • app-admin/syslog-ng — расширенные возможности ведения системного журнала. Требуются дополнительные настройки для того, чтобы журналировать что-либо в один большой файл. Некоторые продвинутые пользователи могут выбрать этот пакет за его потенциал; имейте ввиду, что дополнительные настройки необходимы для любого вида умного журналирования.
  • app-admin/metalog — гибко настраиваемая система журналирования.

Другие пакеты также доступны в Portage — количество доступных пакетов растёт каждый день.

Совет
Если планируется использовать sysklogd или syslog-ng, рекомендуется установить пакет logrotate, так как в этих пакетах нет механизма ротации системных журналов.
Совет
В systemd используется собственная подсистема журналирования под названием «journal». Для систем с systemd установка отдельного пакета журналирования необязательна и может потребовать дополнительных настроек для того, чтобы служба syslog могла читать сообщения из journal.

Установив выбранный пакет системного журнала, добавьте его в уровень запуска по умолчанию с помощью rc-update. Следующий пример покажет, как это сделать для app-admin/sysklogd:

root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default

Необязательно: планировщик задач Cron

Теперь настала очередь планировщика cron. Хотя он является дополнительной и не обязательной для каждой системы программой, всё-таки рекомендуется его установить.

Планировщик cron выполняет команды по расписанию. Это очень удобно, если некоторые команды требуется выполнять регулярно (например, ежедневно, еженедельно или ежемесячно).

Gentoo предоставляет на выбор несколько планировщиков cron, включая sys-process/bcron, sys-process/dcron, sys-process/fcron и sys-process/cronie. Установка любого из них подобна установке системного журнала. Следующий пример покажет, как это сделать для sys-process/cronie:

root #emerge --ask sys-process/cronie
root #rc-update add cronie default

Если планируется использовать dcron или fcron, то после их установки нужно выполнить следующую команду для инициализации:

root #crontab /etc/crontab

Необязательно: Индексирование файлов

Индексирование файлов поможет искать файлы в системе гораздо быстрее. Для этого установите sys-apps/mlocate.

root #emerge --ask sys-apps/mlocate

Необязательно: Удаленный доступ

Для того, чтобы после установки обеспечить удалённый доступ к системе, сценарий инициализации sshd в уровень запуска по умолчанию:

root #rc-update add sshd default

Если требуется доступ через последовательную консоль (что возможно в случае удаленных серверов), раскомментируейте раздел «serial console» в файле /etc/inittab:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

Утилиты для файловых систем

В зависимости от используемых файловых систем, важно установить необходимые утилиты для их обслуживания (проверка целостности, создание и так далее). Обратите внимание, что инструмент для управления файловыми системами ext2, ext3 и ext4 (sys-fs/e2fsprogs) уже установлен как часть набора @system.

В следующей таблице перечислены утилиты, необходимы для определённых файловых систем:

Filesystem Package
Ext2, 3, и 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs
Совет
Дополнительная информация о файловых системах в Gentoo доступна на странице о файловых системах.

Сетевые утилиты

Если нет необходимости в каких-либо дополнительных сетевых утилитах, можно продолжить чтение с раздела Настройка загрузчика.

Установка DHCP-клиента

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

Для того, чтобы система автоматически получила IP-адрес для одного или более сетевого интерфейса во время работы сценария netifrc, необходимо установить клиент DHCP. Мы рекомендуем использовать net-misc/dhcpcd, хотя в репозитории Gentoo есть много других клиентов:

root #emerge --ask net-misc/dhcpcd

Больше информации о dhcpcd можно найти в соответствующей статье.

Необязательно: Установка клиента PPPoE

Если для подключения к Интернету требуется PPP, установите пакет net-dialup/ppp:

root #emerge --ask net-dialup/ppp

Необязательно: Установка утилит для беспроводной сети

Если система будет подключатся к беспроводной сети, установите пакет net-wireless/iw (в случае подключения к открытым сетям или защищённым протоколом WEP), и/или пакет net-wireless/wpa_supplicant (в случае подключения к сетям, защищённым WPA или WPA2). iw также является полезной утилитой для сканирования беспроводных сетей.

root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant

Далее продолжим с раздела Настройка начального загрузчика.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление



arcload для машин с Silicon Graphics

arcload was written for machines that require 64-bit kernels, and therefore can't use arcboot (which can't easily be compiled as a 64-bit binary). It also works around peculiarities that arise when loading kernels directly from the volume header. Let's proceed with the installation:

root #emerge arcload dvhtool

Once this has finished, find the arcload binary inside /usr/lib/arcload/. Now, two files exist:

  • sashARCS: The 32-bit binary for Indy, Indigo2 (R4k), Challenge S and O2 systems
  • sash64: The 64-bit binary for Octane/Octane2, Origin 200/2000 and Indigo2 Impact systems

Use dvhtool to install the appropriate binary for the system into the volume header:

For Indy/Indigo2/Challenge S/O2 users:

root #dvhtool --unix-to-vh /usr/lib/arcload/sashARCS sashARCS

For Indigo2 Impact/Octane/Octane2/Origin 200/Origin 2000 users:

root #dvhtool --unix-to-vh /usr/lib/arcload/sash64 sash64
Заметка
The name sashARCS or sash64 does not have to be used, unless the operation is installing to the volume header of a bootable CD. For normal boot from hard-disk, it can be named whatever the user wants.

Now just use dvhtool to verify they are in the volume header:

root #dvhtool --print-volume-directory
----- directory entries -----
Entry #0, name "sash64", start 4, bytes 55859

The arc.cf file has a C-like syntax. For the full detail on how one configures it, see the arcload page on the Linux/MIPS wiki. In short, define a number of options, which are enabled and disabled at boot time using the OSLoadFilename variable.

Файл arc.cfAn example arc.cf
# ARCLoad Configuration
  
# Some default settings...
append  "root=/dev/sda5";
append  "ro";
append  "console=ttyS0,9600";
  
# Our main definition. ip28 may be changed if you wish.
ip28 {
        # Definition for a "working" kernel
        # Select this by setting OSLoadFilename="ip28(working)"
        working {
                description     "SGI Indigo2 Impact R10000\n\r";
                image system    "/working";
        }
  
        # Definition for a "new" kernel
        # Select this by setting OSLoadFilename="ip28(new)"
        new {
                description     "SGI Indigo2 Impact R10000 - Testing Kernel\n\r";
                image system    "/new";
        }
  
        # For debugging a kernel
        # Select this by setting OSLoadFilename="ip28(working,debug)"
        # or OSLoadFilename="ip28(new,debug)"
        debug {
                description     "Debug console";
                append          "init=/bin/bash";
        }
}

Starting with arcload-0.5, arc.cf and kernels may reside either in the volume header, or on a partition. To utilize this newer feature, place the files in the /boot/ partition (or / if the boot partition is not separate). arcload uses the filesystem driver code from the popular grub bootloader, and thus supports the same range of filesystems.

root #dvhtool --unix-to-vh arc.cf arc.cf
root #dvhtool --unix-to-vh /usr/src/linux/vmlinux new

CoLo for Cobalt MicroServers

Установка CoLo

On Cobalt servers, these machines have a much less capable firmware installed on chip. The Cobalt BOOTROM is primitive, by comparison to the SGI PROM, and has a number of serious limitations.

  • There's a 675kB (approximate) limit on kernels. The current size of Linux 2.4 makes it nearly impossible to make a kernel this size. Linux 2.6 and 3.x is totally out of the question.
  • 64-bit kernels are not supported by the stock firmware (although these are highly experimental on Cobalt machines at this time)
  • The shell is basic at best

To overcome these limitations, an alternative firmware, called CoLo (Cobalt Loader) was developed. This is a BOOTROM image that can either be flashed into the chip inside the Cobalt server, or loaded from the existing firmware.

Заметка
This guide will go through setting up CoLo so that it is loaded by the stock firmware. This is the only truly safe, and recommended way to set up CoLo.
Предупреждение
If wanted, these can be flashed into the server to totally replace the original firmware -- however, you are entirely on your own in that endeavour. Should anything go wrong, physically remove the BOOTROM and reprogram it with the stock firmware. If this sounds scary -- then DO NOT flash the machine. We take no responsibility for whatever happens if you ignore this advice.

Let's get on with installing CoLo. First, start by emerging the package.

root #emerge --ask sys-boot/colo

With that installed, take a look inside the /usr/lib/colo/ directory to find two files:

  • colo-chain.elf (the "kernel" for the stock firmware to load), and
  • colo-rom-image.bin (a ROM image for flashing into the BOOTROM)

We start by mounting /boot/ and dumping a compressed copy of colo-chain.elf in /boot/ where the system expects it.

root #gzip -9vc /usr/lib/colo/colo-chain.elf > /boot/vmlinux.gz

Configuring CoLo

Now, when the system first boots up, it'll load CoLo which will spit up a menu on the back LCD. The first option (and default that is assumed after roughly 5 seconds) is to boot to the hard disk. The system would then attempt to mount the first Linux partition it finds, and run the script default.colo. The syntax is fully documented in the CoLo documentation (have a peek at /usr/share/doc/colo-X.YY/README.shell.gz -- where X.YY is the version installed), and is very simple.

Заметка
Just a tip: when installing kernels, it is recommended to create two kernel images, kernel.gz.working -- a known working kernel, and kernel.gz.new -- a kernel that's just been compiled. It is possible to use symlinks to point to the curent "new" and "working" kernels, or just rename the kernel images.
Файл default.coloAn example CoLo configuration
#:CoLo:#
mount hda1
load /kernel.gz.working
execute root=/dev/sda5 ro console=ttyS0,115200
Заметка
CoLo will refuse to load a script that does not begin with the #:CoLo:# line. Think of it as the equivalent of saying #!/bin/sh in shell scripts.

It is also possible to ask a question, such as which kernel & configuration to boot, with a default timeout. The following configuration does exactly this, asks the user which kernel they wish to use, and executes the chosen image. vmlinux.gz.new and vmlinux.gz.working may be actual kernel images, or just symlinks pointing to the kernel images on that disk. The 50 argument to select specifies that it should proceed with the first option ("Working") after 50/10 seconds.

Файл default.coloMenu-based configuration
#:CoLo:#
lcd "Mounting hda1"
mount hda1
select "Which Kernel?" 50 Working New
  
goto {menu-option}
var image-name vmlinux.gz.working
goto 3f
@var image-name vmlinux.gz.working
goto 2f
@var image-name vmlinux.gz.new
  
@lcd "Loading Linux" {image-name}
load /{image-name}
lcd "Booting..."
execute root=/dev/sda5 ro console=ttyS0,115200
boot

See the documentation in /usr/share/doc/colo-VERSION for more details.

Setting up for serial console

Okay, the Linux installation as it stands now, would boot fine, but assumes the user will be logged in at a physical terminal. On Cobalt machines, this is particularly bad -- there's no such thing as a physical terminal.

Заметка
Those who do have the luxury of a supported video chipset may skip this section if they wish.

First, pull up an editor and hack away at /etc/inittab. Further down in the file, notice the following:

Файл /etc/inittabSnippet from inittab
# SERIAL CONSOLE
#c0:12345:respawn:/sbin/agetty 9600 ttyS0 vt102
  
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
  
# What to do at the "Three Finger Salute".
ca:12345:ctrlaltdel:/sbin/shutdown -r now

First, uncomment the c0 line. By default, it's set to use a terminal baud rate of 9600 bps. On Cobalt servers, this may be changed to 115200 to match the baud rate decided by the BOOT ROM. The following is how that section looks then. On a headless machine (e.g. Cobalt servers), we also recommend commenting out the local terminal lines (c1 through to c6) as these have a habit of misbehaving when they can't open /dev/ttyX.

Файл /etc/inittabExample snippet from inittab
# SERIAL CONSOLE
c0:12345:respawn:/sbin/agetty 115200 ttyS0 vt102
  
# TERMINALS -- These are useless on a headless qube
#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
#c2:12345:respawn:/sbin/agetty 38400 tty2 linux
#c3:12345:respawn:/sbin/agetty 38400 tty3 linux
#c4:12345:respawn:/sbin/agetty 38400 tty4 linux
#c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux

Now, lastly... we have to tell the system, that the local serial port can be trusted as a secure terminal. The file we need to poke at is /etc/securetty. It contains a list of terminals that the system trusts. We simply stick in two more lines, permitting the serial line to be used for root logins.

root #echo 'ttyS0' >> /etc/securetty

Lately, Linux also calls this /dev/tts/0 -- so we add this too:

root #echo 'tts/0' >> /etc/securetty

Tweaking the SGI PROM

Setting generic PROM settings

With the bootloader installed, after rebooting (which we will come to in a second), go to the System Maintenance Menu and select Enter Command Monitor (5) like did initially when netbooting the system.

Код Menu after boot
1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor

Provide the location of the Volume Header:

>>setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)

Automatically boot Gentoo:

>>setenv AutoLoad Yes

Set the timezone:

>>setenv TimeZone EST5EDT

Use the serial console - graphic adapter users should have "g" instead of "d1" (one):

>>setenv console d1

Set the serial console baud rate. This is optional, 9600 is the default setting, although one may use rates up to 38400 if that is desired:

>>setenv dbaud 9600

Now, the next settings depend on how the system is booted.

Settings for direct volume-header booting

Заметка
This is covered here for completeness. It's recommended that users look into installing arcload instead.
Заметка
This only works on the Indy, Indigo2 (R4k) and Challenge S.

Set the root device to Gentoo's root partition, such as /dev/sda3:

>>setenv OSLoadPartition <root device>

To list the available kernels, type "ls".

>>setenv OSLoader <kernel name>
>>setenv OSLoadFilename <kernel name>

Declare the kernel parameters to pass:

>>setenv OSLoadOptions <kernel parameters>

To try a kernel without messing with kernel parameters, use the boot -f PROM command:

root #boot -f new root=/dev/sda5 ro

Settings for arcload

arcload uses the OSLoadFilename option to specify which options to set from arc.cf. The configuration file is essentially a script, with the top-level blocks defining boot images for different systems, and inside that, optional settings. Thus, setting OSLoadFilename=mysys(serial) pulls in the settings for the mysys block, then sets further options overridden in serial.

In the example file above, we have one system block defined, ip28 with working, new and debug options available. We define our PROM variables as so:

Select arcload as the bootloader:- sash64 or sashARCS:

>>setenv OSLoader sash64

Use the "working" kernel image, defined in "ip28" section of arc.cf:

>>setenv OSLoadFilename ip28(working)

Starting with arcload-0.5, files no longer need to be placed in the volume header -- they may be placed in a partition instead. To tell arcload where to look for its configuration file and kernels, one must set the OSLoadPartition PROM variable. The exact value here will depend on where the disk resides on the SCSI bus. Use the SystemPartition PROM variable as a guide -- only the partition number should need to change.

Заметка
Partitions are numbered starting at 0, not 1 as is the case in Linux.

To load from the volume header -- use partition 8:

>>setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(8)

Otherwise, specify the partition and filesystem type:

>>setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)[ext2]


Перезагрузка системы

Выйдите из изолированной среды и размонтируйте все смонтированные разделы. Затем введите ту самую волшебную команду, которая запускает последний, настоящий тест: reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

Не забудьте вынуть загрузочный компакт-диск, иначе он загрузится снова вместо новой системы Gentoo.

Перезагрузившись во вновь установленную систему, переходите к завершению установки Gentoo.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
MIPS Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Управление учетными записями

Добавление учетной записи для повседневной работы

Работа под учётной записью root (суперпользователя) в системе Unix/Linux опасна, и этого следует всячески избегать. Поэтому для повседневной работы настоятельно рекомендуется добавить учётную запись обычного пользователя.

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

Группа Описание
audio Возможность доступа к аудиоустройствам.
cdrom Возможность прямого доступа к оптическим накопителям.
floppy Возможность прямого доступа к гибким дискам.
games Возможность играть в игры.
portage Возможность получать доступ к ограниченным ресурсам Portage.
usb Возможность доступа к устройствам USB.
video Возможность доступа к средствам видеозахвата и аппаратному ускорению видео.
wheel Возможность использования команды su.

Например, для создания учетной записи пользователя по имени larry, входящего в группы wheel, users и audio, сначала войдите в систему как root (только root может создавать учетные записи пользователей), а затем запустите useradd:

Login:root
Password: (Enter the root password)
root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (Enter the password for larry)
Re-enter password: (Re-enter the password to verify)

Если пользователю потребуется выполнить задачу от имени root, для временного получения привилегий root можно использовать su -. Другой способ - пользоваться пакетом sudo, который при правильной настройке вполне безопасен.

Очистка диска

Удаление архивов

Теперь, когда установка Gentoo закончена и система была благополучно перезагружена, можно удалить скачанный архив stage3 с жёсткого диска. Помните, что он был скачан в каталог /.

root #rm /stage3-*.tar.*

Что делать дальше

Документация

Не уверены что делать дальше? Есть множество путей для исследований… Gentoo даёт своим пользователям богатый выбор, а следовательно, и множество документированных (или не очень) возможностей для изысканий здесь, на вики, а также других ресурсах Gentoo (см. раздел Gentoo в сети).

Обязательно прочтите следующую часть Руководства Gentoo, Работа с Gentoo, в которой рассказывается, как поддерживать программное обеспечение в актуальном состоянии, как устанавливать дополнительные пакеты программ, даётся дополнительная информация о USE-флагах, системе инициализации OpenRC и многом другом, связанном с администрированием Gentoo после установки.

Кроме Руководства, можно также исследовать другие уголки вики, в которой есть дополнительная документация, созданная сообществом. Команда вики Gentoo предлагает обзор документации по темам, который содержит список статей, отсортированных по категории. Например, там есть руководство по локализации, с помощью которого можно сделать систему более «домашней» (особенно полезно пользователям, для которых английский язык не родной).

Gentoo в сети

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

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

Форумы и IRC

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

Списки рассылок

Существует несколько списков почтовых рассылок, доступных для членов сообщества, предпочитающих вести обсуждения через электронную почту, а не на форумах или IRC. Для подписки на определённый список необходимо следовать указанным на сайте инструкциям.

Отчёты об ошибках

Иногда, даже после посещения страниц вики, поиска на форумах или обсуждения в IRC и почтовой рассылке, не находится подходящего решения для возникшей проблемы. Обычно это является свидетельством того, что необходимо составить отчёт об ошибке на сайте Gentoo Bugzilla.

Руководство по разработке

Те пользователи, которые хотят узнать больше о разработке Gentoo, могут почитать Руководство разработки. Это руководство описывает порядок написания ebuild, работу eclass, предоставляет определение многим понятиям, лежащим в основе разработки Gentoo.

Напутственные слова

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

В качестве напоминания, запросы, связанные с данным Руководством, должны следовать инструкциями, приведённым в разделе «Как я могу улучшить Руководство?».

Мы ждём с нетерпением новых пользователей Gentoo!




Warning: Display title "Gentoo Linux mips Handbook: Установка Gentoo" overrides earlier display title "Handbook:MIPS/Full/Installation".