Gentoo GNU/Linux: установка на GPT диск

В отличии от предыдущей статьи, в которой рассматривалась установка Gentoo с использованием таблицы разделов MBR (DOS), здесь будет описана установка с использованием GPT. Она поддерживает диски размером более 2 ТБ.

После загрузки с инсталляционного диска необходимо создать разделы с помощью утилиты parted:

# parted -a optimal /dev/sda

задаём таблицу разделов GPT

(parted) : mklabel gpt

единица — Мегабайт

(parted) : unit MB

создаём раздел 2 МБ

(parted) : mkpart primary 1 3

задаём имя первому разделу grub

(parted) : name 1 grub

устанавливаем флаг bios_grub на первый раздел

(parted) : set 1 bios_grub on

создаём раздел 128 МБ

(parted) : mkpart primary 3 131

задаём имя второму разделу boot

(parted) : name 2 boot

устанавливаем флаг boot на второй раздел

(parted) : set 2 boot on

создаём раздел 2048 МБ (2 ГБ)

(parted) : mkpart primary 131 2179

задаём имя третьему разделу swap

(parted) : name 3 swap

создаём раздел, который займёт оставшееся место на диске

(parted) : mkpart primary 2179 -1

задаём имя четвёртому разделу rootfs

(parted) : name 4 rootfs

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

(parted) : print

если ничего не забыли, выходим из parted

(parted) : quit

Переходим к форматированию разделов. sda2 и sda4 форматируем в ext4, sda3 — swap, sda1 не трогаем:

# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda4
# mkswap /dev/sda3

Теперь для инсталляции необходимо примонтировать созданные разделы.

Сначала монтируем корневой раздел в каталог /mnt/gentoo

# mount /dev/sda4 /mnt/gentoo

затем создадим каталог /mnt/gentoo/boot и примонтируем к ней раздел загрузки sda2

# mkdir /mnt/gentoo/boot
# mount /dev/sda2 /mnt/gentoo/boot

и после этого включаем подкачку

# swapon /dev/sda3

Переходим в каталог /mnt/gentoo и с помощью links загрузим страницу зеркала Яндекса

# cd /mnt/gentoo
# links https://mirror.yandex.ru/gentoo-distfiles/releases/amd64/autobuilds/current-install-amd64-minimal/

Отсюда нам необходимо загрузить архив stage3-amd64-*.tar.xz.

После скачивания выходим из links (буквой q) и возвращаемся в консоль.

Затем распакуем полученный архив командой

# tar -xpvf stage3-amd64-20210317T214503Z.tar.xz

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

Теперь необходимо выбрать зеркало для синхронизации портажей. Для этого запустим утилиту mirrorselect

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

Здесь пометим звёздочками https://mirror.yandex.ru/gentoo-distfiles и http://mirror.yandex.ru/gentoo-distfiles

Жмём OK и возвращаемся в консоль.

Затем скопируем файл resolv.conf на диск

# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

После этого примонтируем /proc, /dev и /sys к жёсткому диску

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# mount -t sysfs none /mnt/gentoo/sys

и изменяем корень в режиме chroot

# chroot /mnt/gentoo /bin/bash

Затем создадим каталог /var/db/repos/gentoo

# mkdir /var/db/repos/gentoo

Обновим окружение

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

Затем создадим каталог для портажей и синхронизируем их

# mkdir /usr/portage
# emerge --sync

Теперь настроим поддержку русского языка в консоли. Открываем файл /etc/locale.gen

# nano /etc/locale.gen

и в конце файла добавим строчки

en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8

Перезапускаем локаль

# locale-gen

Настроим московское время

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

Теперь установим и настроим ядро. Качаем исходники

# USE="-doc symlink" emerge gentoo-sources

Открываем файл /etc/portage/make.conf

# nano /etc/portage/make.conf

и в самый низ добавим строчку

ACCEPT_LICENSE="*"

После этого устанавливаем утилиту автоматической сборки ядра

# emerge genkernel

и запустим команду

# genkernel all

Этот процесс займёт некоторое время.

Затем устанавливаем утилиту автоматического распознавания устройств udev, службу журналирования syslog-ng, dcron, и, если необходимо, чтобы машина получала IP-адрес от DHCP-сервера, службу DHCP-клиента

# emerge udev syslog-ng dcron dhcpcd

Добавим всё это в автозагрузку

# rc-update add udev boot
# rc-update add syslog-ng default
# rc-update add dcron default
# rc-update add dhcpcd default

Также, если необходимо будет работать с машиной через SSH, включаем в автозагрузку и SSH-сервер

# rc-update add sshd default

Чтобы подключиться через SSH с правами root, необходимо открыть конфиг /etc/ssh/sshd_config

# nano /etc/ssh/sshd_config

и добавить строчку

PermitRootLogin yes

Затем перезапустить SSH-сервер

# rc-service sshd restart

После этого открываем файл для автоматического монтирования разделов диска

# nano /etc/fstab

и пропишем в него следующие строки:

/dev/sda2   /boot   ext4   noatime   1 2
/dev/sda4   /   ext4   noatime   0 1
/dev/sda3   none   swap   sw   0 0
/dev/cdrom  /mnt/cdrom   auto   noauto,ro   0 0

Теперь поправим имя хоста. Для этого открываем файл hostname

# nano /etc/conf.d/hostname

и вписываем свой.

Затем настроим сеть. Для этого создадим файл /etc/conf.d/net

# touch /etc/conf.d/net

открываем его

# nano /etc/conf.d/net

и впишем свои настройки сетевого интерфейса

config_enp0s3="192.168.1.45 netmask 255.255.255.0"
routes_enp0s3="default via 192.168.1.1"
dns_servers_enp0s3="8.8.8.8 8.8.4.4"

Если машина должна получить сетевые настройки через DHCP-сервер, то тогда впишем так:

config_enp0s3="dhcp"

После этого создадим символьную ссылку на net.enp0s3

# cd /etc/init.d
# ln -s net.lo net.enp0s3
# cd /

и добавим сетевой интерфейс в автозагрузку

# rc-update add net.enp0s3 default

Теперь запаролим суперпользователя

# passwd

Настроим раскладку клавиатуры. Для этого откроем файл keymaps

# nano /etc/conf.d/keymaps

и исправим строчку

keymap="us"

на

keymap="ru"

Настроим часы

# nano /etc/conf.d/hwclock

исправим строчку

clock="UTC"

на

clock="local"

Теперь установим и сконфигурируем загрузчик grub:

# emerge grub
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Выходим из режима chroot

# exit

Размонтируем все подключённые разделы и файловые системы

# umount /mnt/gentoo/{proc,dev,sys}
# umount /mnt/gentoo/boot

и перезагружаем машину

# reboot

Больше LiveCD нам не понадобится

После перезагрузки настроим русификацию консоли

Установим утилиты terminus-font, intlfonts, freefonts, cronyx-fonts, corefonts, kbd

# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts kbd

Затем создадим файл /etc/env.d/02locale

# touch /etc/env.d/02locale

и внесём в него следующие строчки:

LC_ALL=""
LANG="ru_RU.UTF-8"

После этого откроем файл /etc/conf.d/keymaps

# nano /etc/conf.d/keymaps

и исправим следующие строчки:

keymap="ru"

на

keymap="ruwin_alt_sh-UTF-8"

и

windowkeys="YES"

на

windowkeys="NO"

Остальные строчки должны быть такими:

extended_keymaps=""
dumpkeys_charset=""
fix_euro="NO"

Теперь откроем файл /etc/conf.d/consolefont

# nano /etc/conf.d/consolefont

в нём исправим следующие строки:

consolefont="default8x16"

на

consolefont="UniCyr_8x16"

раскомментируем и исправим

#consoletranslation="8859-1_to_uni"

на

consoletranslation=""

Добавим consolefont в автозагрузку:

# rc-update add consolefont boot

С настройкой русификации всё.

Теперь настроим файл hosts

# nano /etc/hosts

исправим

127.0.0.1 localhost

на свой, например

127.0.0.1 gentoo-test.homenet gentoo-test localhost

Для удобства установим файловый менеджер Midnight Commander

# emerge app-misc/mc

Запускаем его при необходимости

# mc

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

Gentoo GNU/Linux: установка на GPT диск: 8 комментариев

  1. по вашим рекомендациям пробовал установить , но споткнулся на ошибке
    #grub-install /dev/sda
    Installing for [86_64-efi platform.
    grub-install: error: cannot find EFI directory.

    помогите пожалуйста.

  2. Такая ошибка возникает в случае, когда не был создан раздел bios_grub размером 2 МБ. Проверьте, вы скорее всего что-то упустили. Я недавно проверял по этому мануалу, всё получилось.

  3. Делал все по инструкции ничего не упустил, перепроверял каждую команду — в итоге:
    (chroot) livecd / # grub-install /dev/sda
    Installing for x86_64-efi platform.
    grub-install: error: cannot find EFI directory.

    Если сделать иначе, тоже ошибка:

    grub-install —target=x86_64-efi —efi-directory=/boot
    Installing for x86_64-efi platform.
    grub-install: error: /boot doesn’t look like an EFI partition.

    Помогать не нужно, сделал все по хэндбуку — работает отлично.

  4. Что такое загрузочный раздел BIOS?
    Загрузочный раздел BIOS необходим, только если вы комбинируете разметку дисков GPT с загрузчиком GRUB2 в режиме BIOS/Legacy. Он не требуется при загрузке в режиме EFI/UEFI, и также не требуется при использовании дисков MBR. Это очень маленький (1—2 Мб) раздел, в который загрузчики типа GRUB2 могут разместить дополнительные данные, которые не помещаются в выделенное хранилище. Мы не будем использовать его в данном руководстве.

    Создание разделов на диске с GPT для UEFI
    Следующие части объяснят, как создать структуру разделов из примера для установки с GPT/UEFI с использованием fdisk (пример структуры разделов приводился выше):

    Раздел Описание
    /dev/sda1 Системный (и загрузочный) раздел EFI (ESP)
    /dev/sda2 Раздел подкачки
    /dev/sda3 Корневой раздел

    Ошибка тут про раздел в 2 мб

  5. Плюс на скрине по разбивке дисков у вас sda1 — fat32 хотя вы пишете, что его трогать не следует, тогда как он стал fat32 если он не форматировался?

  6. // Плюс на скрине по разбивке дисков у вас sda1 — fat32 хотя вы пишете, что его трогать не следует, тогда как он стал fat32 если он не форматировался?

    его трогать действительно не нужно…

  7. // grub-install —target=x86_64-efi —efi-directory=/boot

    вот этого как раз делать не нужно.

    // Помогать не нужно, сделал все по хэндбуку — работает отлично.

    хорошо, что у вас всё получилось 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *