Установка Linux Funtoo на VMWare :: Cетевой уголок Majestio

Установка Linux Funtoo на VMWare


2024 год ☠️
Проект закрылся. Статья теперь, увы, только для памяти.

Попытка создать тестовую площадку на базе Linux Funtoo под VMWare. Изначально хотелось использовать ZFS в качестве базовой файловой системы. Но, по замечаниям с официального сайта Linux Funtoo, пакет поддержки ZFS на момент установки 07.08.2022 не поддерживает ядра версии 5+. Поэтому ограничивается стандартной установкой. Правда в качестве среды рабочего стола попытаюсь использовать xfce4, с акселерацией графики. Далее по шагам официальной документации, с некоторыми собственными улучшениями, которые каcаются только уменьшения интерактивного взаимодействия с программным инструментарием.

Содержание

  1. Подготовка к установке
  2. Подключение по SSH
  3. Подготавливаем диск
  4. Монтируем файловые системы
  5. Выставляем текущую дату-время
  6. Загрузка и распаковка Stage3
  7. Chroot в Funtoo
  8. Загрузка дерева Portage
  9. Правка файлов конфигурации
  10. Поставим портеж Midnight Commander'а
  11. Установим Firmware и Grub
  12. Установим сеть
  13. Настройки пользователей
  14. Резервное копирование

1. Подготовка к установке

Создаем виртуальную машину с включенной виртуализацией CPU, а в файл .vmx впишем или исправим, если есть, строчку firmware = "efi". При настройках CPU виртуальной машины выбираем "количество" CPU вдвое меньше количества физических, иначе возможны сбои VMWare при сборках портежей в гостевой системе. Выкачиваем образ LiveCD. На момент установки его можно было взять отсюда - *https://build.funtoo.org/livecd/funtoo-livecd-20220715-1607.iso

2. Подключение по SSH

В запущенной из LiveCD гостевой системе проверяем полученный IP по DHCP:

ifconfig

Выставляем пароль руту:

passwd

Сервер по-умолчанию уже должен быть запущен, но если по каким-то причинам не запущен - запускаем:

/etc/init.d/sshd start

Запускаем SSH-клиент, например Putty, и логинимся рутом.

3. Подготавливаем диск

sgdisk /dev/sda -Z -g -a1 
sgdisk -n1:2048:264191 -t1:EF00 --change-name=1:"EFI system partition" /dev/sda
sgdisk -n2:264192:8652799 -t2:8200 --change-name=2:"Linux swap" /dev/sda
sgdisk --largest-new=3 -t3:8300 --change-name=3:"Linux filesystem" /dev/sda

Должно получится что-то типа этой разметки, кроме размера последнего раздела:

gdisk -l /dev/sda
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          264191   128.0 MiB   EF00  EFI system partition
   2          264192         8652799   4.0 GiB     8200  Linux swap
   3         8652800        67108830   27.9 GiB    8300  Linux filesystem

Размечаем файловые системы

mkfs.vfat -F 32 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3

4. Монтируем файловые системы

# первая команда может выполниться с ошибкой, т.к. /mnt/funtoo может существовать
mkdir /mnt/funtoo
mount /dev/sda3 /mnt/funtoo
mkdir /mnt/funtoo/boot
mount /dev/sda1 /mnt/funtoo/boot

5. Выставляем текущую дату-время

Это важно для правильной загрузки портежей.

date
# вывод: Tue Aug  9 06:51:56 AM UTC 2022
date 080906562022
# пример установки: Tue Aug  9 06:56:00 AM UTC 2022

6. Загрузка и распаковка Stage3

Stage3 выбираем для своего типа проца, но без целей установки GNOME, Mate и прочих, ибо потом будем ставить XFCE. На момент написания этой заметки это лежало тут - https://build.funtoo.org/1.4-release-std/x86-64bit/intel64-ivybridge/2022-06-04/stage3-intel64-ivybridge-1.4-release-std-2022-06-04.tar.xz.

cd /mnt/funtoo
wget https://build.funtoo.org/1.4-release-std/x86-64bit/intel64-ivybridge/2022-06-04/stage3-intel64-ivybridge-1.4-release-std-2022-06-04.tar.xz
tar --numeric-owner --xattrs --xattrs-include='*' -xpf stage3-intel64-ivybridge-1.4-release-std-2022-06-04.tar.xz

7. Chroot в Funtoo

cd /mnt/funtoo
mount --rbind /proc proc
mount --rbind /sys sys
mount --rbind /dev dev
cp /etc/resolv.conf /mnt/funtoo/etc/
chroot . /bin/su --login

8. Загрузка дерева Portage

Сперва тестируем подключение к сети интернет пингом, потом используем утилиту ego:

ping -c 5 google.com
ego sync

9. Правка файлов конфигурации

Часть файлов конфигурации подлежит обязательной правке. Отдельная информация по файлу конфигурации /etc/make.conf - авторы проекта Funtoo (в отличии от Gentoo) этот файл не рекомендуют править, т.к. так как настройки были перенесены в расширенную систему профилей.

/etc/fstab

Для начала запускаем lsblk

lsblk

Наблюдаем:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  1.5G  1 loop
sda      8:0    0   32G  0 disk
├─sda1   8:1    0  128M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 27.9G  0 part /
sr0     11:0    1  1.8G  0 rom

Редактируем:

nano -w /etc/fstab

И приводим к виду:

/dev/sda1       /boot         vfat    noauto,noatime  1 2
/dev/sda2       none          swap    sw              0 0
/dev/sda3       /             ext4    noatime         0 1

/etc/localtime

Делаем ссылкой:

ln -sf /usr/share/zoneinfo/Europe/Minsk /etc/localtime

/etc/conf.d/hwclock

Так как двойной загрузки с Windows у нас нет - этот файл не правим.

/etc/locale.gen

nano -w /etc/locale.gen

Приводим к виду:

en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
locale-gen
eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   C.utf8
  [3]   POSIX
  [4]   en_US.utf8
  [5]   ru_RU.utf8
  [ ]   (free form)
eselect locale set 5
env-update && source /etc/profile

/etc/portage/make.conf

nano -w /etc/portage/make.conf
L10N="en-US ru-RU"
LINGUAS="en_US ru_RU"

10. Поставим портеж Midnight Commander'а

emerge slang
emerge app-misc/mc

11. Установим Firmware и Grub

emerge -av linux-firmware
emerge -av grub
emerge intel-microcode iucode_tool
mount -o remount,rw /sys/firmware/efi/efivars
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
ego boot update

12. Установим сеть

Wi-Fi

Для VMWare это конечно можно пропустить. Обычно это ставят под мобильные устройства типа ноутбуков

emerge linux-firmware networkmanager
rc-update add NetworkManager default

DHCP

На этапе установки будет использоваться DHCP, будет установлен статический ШЗ-адрес.

rc-update add dhcpcd default

Hostname

nano /etc/conf.d/hostname

13. Настройки пользователей и рестарт

Важный этап, иначе после перезагрузки в систему войти будет невозможно - только повторная загрузка и настройка с LiveCD!

Установим пароль рута

passwd

Добавим регулярного пользователя

useradd -m majestio
usermod -G wheel,audio,video,plugdev,portage majestio
passwd majestio

Установка Entropy Generator

emerge haveged
rc-update add haveged default

Перезагрузка

exit
cd /mnt
umount -lR funtoo
reboot

14. Резервное копирование

После рестарта логинимся SSH-клиентом под регулярным пользователем (majestio) и производим установку утилит:

su
emerge e2fsprogs
emerge scrub

Дефрагментация и очистка свободного места

rm -f /var/cache/portage/distfiles/*
rm -f /stage3*
e4defrag /dev/sda3
scrub -X /root/scrub -p fillzero
shutdown -Ph now

epro mix-in +vmware-guest +xfce +gfxcard-vmware Вывод:

=== Enabled Profiles: ===

        arch: x86-64bit
       build: current
     subarch: intel64-ivybridge
      flavor: core
     mix-ins: vmware-guest
     mix-ins: gfxcard-vmware
     mix-ins: xfce

Updating profiles at /etc/portage/make.profile/parent...
emerge --autounmask-write xorg-x11 pulseaudio networkmanager lightdm
mv /etc/portage/._cfg0000_package.use  /etc/portage/package.use
emerge xorg-x11 pulseaudio networkmanager lightdm
emerge --autounmask-write xfce4-meta
cat /etc/portage/._cfg0000_package.use >> /etc/portage/package.use
emerge xfce4-meta
epro flavor desktop
epro
=== Enabled Profiles: ===

        arch: x86-64bit
       build: current
     subarch: intel64-ivybridge
      flavor: desktop
     mix-ins: vmware-guest
     mix-ins: gfxcard-vmware
     mix-ins: xfce


=== Python kit: ===

      branch: 3.7-release

=== All inherited flavor from desktop flavor: ===

                     workstation (from desktop flavor)
                            core (from workstation flavor)
                         minimal (from core flavor)

=== All inherited mix-ins from desktop flavor: ===

                               X (from workstation flavor)
                           audio (from workstation flavor)
                             dvd (from workstation flavor)
                           media (from workstation flavor)
      mediadevice-audio-consumer (from media mix-in)
                mediadevice-base (from mediadevice-audio-consumer mix-in)
      mediadevice-video-consumer (from media mix-in)
                mediadevice-base (from mediadevice-video-consumer mix-in)
        mediaformat-audio-common (from media mix-in)
          mediaformat-gfx-common (from media mix-in)
        mediaformat-video-common (from media mix-in)
                  console-extras (from workstation flavor)
                           print (from desktop flavor)

=== All inherited mix-ins from gfxcard-vmware mix-ins: ===

      core-gl-kit:gfxcard-vmware (from gfxcard-vmware mix-in)
emerge x11-libs/gdk-pixbuf
emerge open-vm-tools
media-libs/mesa
rc-update add vmware-tools default
emerge --update --newuse --deep @world
emerge --depclean
emerge virtual/libmysqlclient
emerge dev-db/postgresql
emerge x11-libs/libxkbcommon

Правим .xinitrc

Продолжение не следует ...

Рейтинг: 0/5 - 0 голосов