В прошлый раз и позапрошлый раз, я устанавливал Ubuntu в виртуальной машине, но на реальный SSD-диск, который был проброшен в виртуальную машину как RDM-диск и как PCI-устройство. Сейчас же операционная система будет устанавливаться просто в VMware ESXi.

Перед установкой необходимо скачать установочный образ Ubuntu MATE 22.04.1 LTS (Jammy Jellyfish), для этого открываем ссылку и скачиваем iso-файл с установщиком.

Далее создаём виртуальную машину и запускаем её с нашего iso-диска.

Установка.

В меню загрузчика Grub нам предлагают попробовать загрузить и посмотреть на Ubuntu MATE без установки, запустить Ubuntu MATE в режиме безопасной графики (с ключом nomodeset) и проверить память на ошибки. Выбираем пункт Try or Install Ubuntu MATE и нажимаем на Enter.

С видео-драйвером по умолчанию, установщик Ubuntu MATE запускается в VMware ESXi с разрешением 1280x768. Для удобства дальнейшей установки лучше сразу изменить разрешение на более комфортное. Для этого нажимаем на клавиатуре Ctrl+Alt+T (Cmd+Alt+T) – у нас запустится MATE Terminal, а в нём выполняем команду mate-control-center для запуска панели управления MATE.

В панели управления в разделе Hardware выбираем пункт Displays. Далее либо повезёт, либо не повезёт. В случае Parallels Desktop доступны только два разрешения: 1400x1050 и 800x600, в случае VMware ESXi доступен для выбора целый спектр различных разрешений. Выбирайте любое понравившееся и нажимайте на кнопку Apply. Если есть необходимость включить HiDPI-режим, выбираем пункт Scaling: 200%, а далее в появившемся диалоговом окне нажимайте на кнопку Keep This Configutation.

После изменения разрешения, закрываем настройки дисплея, терминал и возвращаемся к установщику.

На первом экране установщика нам необходимо выбрать язык установщика. Не рекомендую выбирать Русский на данном этапе, т.к. помимо русского интерфейса установщика, по-русски будут называться каталоги в домашней папке пользователя – Рабочий стол, Мои документы и прочее, что доставит ряд неудобств в будущем.

Оставляем выбранным язык English и нажимаем на кнопку Install Ubuntu MATE.

Далее выбираем раскладку клавиатуры. Здесь уже можно выбрать Russian и в левом, и в правом списках языков, после чего нажимаем на кнопку Continue.

Теперь необходимо выбрать вариант установки – нормальный или минимальный и ещё пара опций. Выбираем пункт Minimal installation для минимальной установки, убираем галочку с пункта Download updates while installing Ubuntu MATE (т.к. время это нам не сэкономит, а сразу после установки всё равно нужно будет обновлять систему). После чего нажимаем на кнопку Continue.

Теперь необходимо выбрать вариант разбиения нашего диска. Пункт Erase disk and install Ubuntu MATE просто создаст несколько разделов на диске (корневой раздел, раздел /boot и раздел со свопом). Пункт Use LVM with new Ubuntu MATE installation сделает то же самое, но с использованием LVM. Можно было бы выбрать этот варианта, но, к сожалению, Volume Group при таком варианте будет называться ubuntu-mate-vg, а это противоречит моему понятию о фэн-шуе. Во-первых наличие символов тире в названии Volume Group – само по себе зло, во-вторых при выполнении команды df -h у нас слева на пол экрана будет указан путь к разделу.

Ранее я уже убедился, что разбивать диск используя инсталлятор смысла нет, т.к. нельзя настроить LVM. Поэтому будем разбивать диск вручную. Для запуска консоли нажимаем Ctrl+Alt+T (Cmd+Alt+T).

Затем вводим команду sudo gparted /dev/sda (если у Вас NVMe диск, а не обычный – вместо /dev/sda необходимо писать /dev/nvme0n1).

Так как диск абсолютно пустой, первым делом создаём таблицу разделов, для этого выбираем в меню Device пункт Create Partition Table.... Выбираем тип msdos (MBR) и нажимаем на кнопку Apply. В данной статье описывается простейшая установка на небольшой виртуальный диск, без EFI и прочих излишеств. Если есть необходимость использовать EFI, воспользуйте инструкцией в прошлой статье.

Теперь создадим основной раздел для Ubuntu, для этого нажимаем правой кнопкой мыши на неразмеченной области диска и выбираем пункт New. Оставляем размер раздела 65535 MiB, выбираем тип файловой системы lvm2 pv и нажимаем на кнопку Add.

Размер 71950 MiB кажется не логичным и не ровным, но данный размер позволит создать LVM и разделы, чей размер будет показан достаточно ровным. 60.0G для root и 1.0G для boot.

Для записи всех изменений на диск, выбираем в меню Edit пункт Apply All Operations, а в появившемся окне с предупреждениями нажимаем на кнопку Apply.

Затем закрываем окно с информацией о завершении разбиения.

После реального создания разделов на диске, выделяем наш раздел lvm2 pv, нажимаем на нём правой кнопкой мыши и выбираем пункт Manage Flags.

Выделяем галочками флаги boot и LVM, после чего нажимаем на кнопку Close.

Закрываем GParted и возвращаемся к консоли, где выполняем следующие команды:

$ sudo pvcreate /dev/sda1
$ sudo vgcreate vg_cloud /dev/sda1
$ sudo lvcreate -n lv_boot -L 1072m vg_cloud
$ sudo lvcreate -n lv_root -L 62680m vg_cloud
$ sudo lvcreate -n lv_swap -L 1780m vg_cloud
$ sudo lvs --units m

Здесь я использую название группы томов vg_cloud, потому что vg – это volume group, а cloud – будущий hostname виртуальной машины. А у разделов в названиях lv – это logical volume, а boot, root и swap их предназначения.

Размеры логических томов (кроме раздела для swap'а) подобраны опытным путём, в основном для того, чтобы в выводе команды df -h показывались ровные значения. А размер для swap – это остаток от виртуального диска. В дальнейшем этот раздел будет удалён, а для swap'а будет добавлен отдельный диск.

После настройки LVM закрываем консоль и возвращаемся к инсталлятору. Выбираем пункт Something else и нажимаем на кнопку Continue.

Скорее всего с первого раза наши новые разделы и логические тома LVM не отобразятся в окне разбиения диска инсталлятора.

Просто нажмите на кнопку Back, снова выберите пункт Something else и нажмите на кнопку Continue.

Нам необходимо сопоставить созданные логические тома и разделы точкам монтирования и выберем для них файловые системы. Для начала выберем раздел /dev/mapper/vg_cloud-lv_root, который мы определили под корневой и нажмите на кнопку Change. В окошке редактирования раздела выбираем тип файловой системы Ext4, ставим галочку для форматирования раздела и выбираем точку монтирования /, после чего нажимаем на кнопку OK.

Повторяем то же самое для раздела /dev/mapper/vg_cloud-lv_boot. Выделяем раздел и нажемаем на кнопку Change. В окошке редактирования раздела выбираем тип файловой системы Ext4, ставим галочку для форматирования раздела и выбираем точку монтирования /boot, после чего нажимаем на кнопку OK.

Теперь выбираем раздел /dev/mapper/vg_cloud-lv_swap и нажимаем на кнопку Change. В следующем окне выбираем тип раздела swap area и нажимаем на кнопку OK.

В качестве устройства для установки загрузчика оставляем выбранный по умолчанию диск /dev/sda.

Теперь нажимаем на кнопку Install Now, для начала установки Ubuntu MATE на наш диск.

Программа-установщик покажет нам изменения разделов, которые мы сейчас делали. Для продолжения установки нажмём на кнопку Continue.

Предпоследним шагом перед установкой нам нужно выбрать часовой пояс. Кликаем мышкой на свой и нажимаем на кнопку Continue.

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

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

Обновление системы после установки.

После того как мы залогинились в систему первый раз – запустится приложение Welcome, которое сразу же спросит, хотим ли мы собирать телеметрию и отправлять разработчикам. Нажимаем на кнопку Do Not Send.

В следующем окне приложения снимем галочку с пункта Open Welcome when I log on и нажмём на кнопку Close, чтобы данное приложение больше не запускалось.

Как видно на экране, у нас уже запущен Software Updater, просто кликнем на названии этого приложения на таскбаре. Как мы видим, присутствует достаточно много обновлений, нажмём на кнопку Install Now для их установки. Приложения сначала будут скачиваться, а затем устанавливаться. После установки обновлений появится сообщение в котором возможно нужно будет нажать кнопку Restart Now для перезагрузки. Но если обновления для системных пакетов (вроде ядра) не устанавливались – в перезагрузке нужды не будет, тогда просто нажмём на кнопку OK.

Настройка после установки.

Настройка экрана.

После перезагрузки Ubuntu MATE запустится в графическом режиме, но с разрешением 1024x768.

В случае использования Parallels Desktop – изменить разрешение можно будет только после установки Parallels Tools. Для этого в меню Parallels Desktop выбираем пункт Установить Parallels Tools в меню Действия. После монтирования образа с Parallels Tools, данный образ автоматически примонтируется и откроется в Ubuntu. Кликаем дважды на иконке install-gui для установки. Вводим пароль и нажимаем на кнопку OK. После установки нажимаем на кнопку Reboot.

В случае VMware ESXi или в случае установки Ubuntu на голое железо, просто открываем панель управления, затем в блоке Hardware открываем пункт Displays и выбираем любое понравившееся разрешение из списка, после чего нажимаем на кнопку Apply, а затем на кнопку Keep This Configuration, если выбранное разрешение нас устраивает. Если есть необходимость включить HiDPI-режим, выбираем пункт Scaling: 200%, а далее в появившемся диалоговом окне нажимайте на кнопку Keep This Configutation.

Теперь интерфейс приобретает человеческий вид. :)

Установка и настройка OpenSSH:

Затем сразу установим SSH-сервер:

$ sudo apt install openssh-server

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

Сразу после того как установили openssh-server, рекомендую попробовать подключиться к нему, затем скопировать свой ключ и подключиться с ипользованием ключа. После этого подключение по паролю стоит запретить (оставив разрешение для подключения с паролем только для определённых IP-адресов).

# Эти команды нужно выполнять на своём компьютере, для копирования своего ключа
$ ssh-copy-id admin@cloud.acmelabs.spb.ru
$ ssh admin@cloud.acmelabs.spb.ru
# А конфигурационный файл редактируем, соответственно, на виртуальной машине
$ sudoedit /etc/ssh/sshd_config.d/10-password-authentication.conf
PasswordAuthentication no
Match address 192.168.0.0/16
    PasswordAuthentication yes
Match address 123.234.123.234/32
    PasswordAuthentication yes
$ sudo service ssh

Затем стоит настроить firewall:

$ sudo ufw allow ssh
Rules updated
Rules updated (v6)
$ sudo ufw status
Status: inactive
$ sudo ufw enable 
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

Настройка терминала:

Запускаем терминал (нажимаем правой кнопкой мыши на рабочем столе и выбираем в меню пункт Open Terminal) и первым делом выполняем команду:

$ gsettings set org.mate.caja-open-terminal desktop-opens-home-dir true

Это нужно, чтобы терминал запускался с шеллом находящимся в домашней папке по умолчанию, а не в папке Desktop.

Добавим себе немного прав, они нам пригодятся в дальнейшем:

$ sudo usermod -a -G audio,bluetooth,dialout,lp,netdev admin

Далее ещё выполняем ряд команд для настройки терминала:

$ gsettings set org.mate.terminal.keybindings help 'disabled'
$ gsettings set org.mate.terminal.keybindings new-tab '<Super>t'
$ gsettings set org.mate.terminal.keybindings close-tab '<Super>w'
$ gsettings set org.mate.terminal.keybindings new-window '<Super>n'
$ gsettings set org.mate.terminal.keybindings close-window '<Super>q'
$ gsettings set org.mate.terminal.keybindings copy '<Super>c'
$ gsettings set org.mate.terminal.keybindings paste '<Super>v'
$ gsettings set org.mate.terminal.keybindings select-all '<Super>a'
$ gsettings set org.mate.terminal.keybindings search-find '<Super>f'
$ gsettings set org.mate.terminal.keybindings full-screen '<Super>Return'
$ gsettings set org.mate.terminal.keybindings next-tab '<Super>braceright'
$ gsettings set org.mate.terminal.keybindings prev-tab '<Super>braceleft'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-1 '<Super>1'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-2 '<Super>2'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-3 '<Super>3'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-4 '<Super>4'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-5 '<Super>5'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-6 '<Super>6'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-7 '<Super>7'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-8 '<Super>8'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-9 '<Super>9'
$ gsettings set org.mate.terminal.keybindings switch-to-tab-10 '<Super>0'
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ allow-bold true
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ font 'Monospace 9'
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ use-system-font false
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ custom-command 'env TERM=xterm-256color /bin/bash'
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ use-custom-command true
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ default-size-columns 110
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ default-size-rows 36
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ use-custom-default-size true
$ gsettings set org.mate.terminal.profile:/org/mate/terminal/profiles/default/ scrollbar-position 'hidden'

После этого перезагружаем терминал.

Отключим горячую клавишу Command / Win:
$ gsettings set com.solus-project.brisk-menu hot-key ''
Включим горячую клавишу Super+R для диалога Run Application:
$ gsettings set org.mate.Marco.global-keybindings panel-run-dialog '<Super>r'
Выключим горячую клавишу Super+T для запуска терминала:
$ gsettings set org.mate.Marco.global-keybindings run-command-4 'disabled'

Для запуска терминала останутся горячие клавиши <Ctrl><Alt>+t, а <Super>+t будет использоваться в терминале для открытия новых вкладок.

Настройка рабочего стола (устанавливаем чёрный фон, для более быстрой работы RDP и VNC):
$ gsettings set org.mate.background picture-filename ''
$ gsettings set org.mate.background color-shading-type 'solid'
$ gsettings set org.mate.background primary-color 'rgb(0,0,0)'

Настройка внешнего вида Ubuntu Mate (чёрная тема взамен светлой):

$ gsettings set org.mate.interface gtk-theme 'Yaru-MATE-dark'
$ gsettings set org.mate.interface icon-theme 'Yaru-MATE-dark'
# Если захотите оставить заголовки окон светлыми, следующую строку можно не выполнять
$ gsettings set org.mate.Marco.general theme 'Yaru-dark'

Настройка рабочего окружения:

$ gsettings set org.mate.caja.preferences default-folder-viewer 'list-view'
$ gsettings set org.mate.caja.window-state sidebar-width 80
$ gsettings set org.mate.caja.window-state geometry '900x600+0+28'
$ gsettings set org.mate.interface enable-animations false
$ gsettings set org.mate.media-handling automount-open false
$ gsettings set org.mate.media-handling automount false
$ gsettings set org.mate.power-manager button-power shutdown
$ gsettings set org.mate.screensaver lock-enabled true
$ gsettings set org.mate.screensaver idle-activation-enabled false
$ gsettings set org.mate.screensaver themes []
$ gsettings set org.ayatana.indicator.datetime show-seconds true

Настройка клавиатуры и раскладки:

$ gsettings set org.mate.peripherals-keyboard delay 300
$ gsettings set org.mate.peripherals-keyboard rate 50
$ gsettings set org.mate.peripherals-keyboard-xkb.kbd layouts "['us', 'ru']"
$ gsettings set org.mate.peripherals-keyboard-xkb.kbd options "['grp_led\tgrp_led:scroll', 'grp\tgrp:ctrl_shift_toggle']"
$ gsettings set org.mate.peripherals-keyboard-xkb.general disable-indicator true
$ systemctl --user enable ayatana-indicator-keyboard
Created symlink ~/.config/systemd/user/ayatana-indicators.target.wants/ayatana-indicator-keyboard.service → /usr/lib/systemd/user/ayatana-indicator-keyboard.service.
$ systemctl --user start ayatana-indicator-keyboard
$ mkdir ~/.config/autostart/
$ cp /etc/xdg/autostart/ayatana-indicator-keyboard.desktop ~/.config/autostart/

Теперь установим Midnight Commander и ряд дополнительных утилит:

$ sudo apt install mc atop curl htop iotop pinfo screen

Установка полного DNS-имени компьютера:

$ sudo hostnamectl set-hostname cloud.acmelabs.spb.ru

Добавляем права на редактирование сетевых соединений группе netdev:

$ sudoedit /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla
[Let Group 'netdev' Modify System Settings for Network]
Identity=unix-group:netdev
Action=org.freedesktop.NetworkManager.settings.modify.system
ResultAny=yes
ResultInactive=no
ResultActive=yes

Добавляем права всем пользователям использовать Wi-Fi:

$ sudoedit /etc/polkit-1/localauthority/50-local.d/50-allow-wi-fi-scan.pkla
[Allow Wi-Fi Scan for All Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan
ResultAny=no
ResultInactivity=no
ResultActive=yes

Убираем предупреждение update-initramfs:

После обновления ядра, во время создания образов initrd.img появляются следующие предупреждения:

I: The initramfs will attempt to resume from /dev/dm-2
I: (/dev/mapper/vg_cloud-lv_swap)
I: Set the RESUME variable to override this.

Для того, чтобы их не было, выполним несколько команд:

$ sudo blkid | grep swap
/dev/mapper/vg_cloud-lv_swap: UUID="b0fe8847-288f-4eec-8cd4-c163799e853f" TYPE="swap"
$ sudoedit /etc/initramfs-tools/conf.d/resume
RESUME=UUID=b0fe8847-288f-4eec-8cd4-c163799e853f
$ sudo update-initramfs -u -k all

Отключаем 30-секундное ожидание загрузчика grub во время запуска Ubuntu:

$ sudoedit /etc/default/grub
GRUB_RECORDFAIL_TIMEOUT=2
$ sudo update-grub

Установка и настройка RDP:

В прошлый раз я устанавливал VNC, но с тех пор отказался от него и полностью перешёл на RDP.

$ sudo apt install xrdp
$ sudo adduser xrdp ssl-cert
$ sudoedit /etc/xrdp/sesman.ini
[Security]
AllowRootLogin=false

$ sudoedit /etc/xrdp/xrdp_keyboard.ini
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_ru=0x00000419

[layouts_map_ru]
rdp_layout_us=ru,us
rdp_layout_ru=ru,us

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
; model=pc105 # при необходимости
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

$ sudo systemctl restart xrdp.service xrdp-sesman.service

После подключения по RDP мы получаем примерно такую красоту:

Если Вы будете использовать RDP с включенным режимом HiDPI, то имеет смысл уменьшить размер курсора мыши. Из-за бага в XRDP курсор мыши будет выглядеть обрезанным. Для уменьшения курсора необходимо выполнить команду:

$ gsettings set org.mate.peripherals-mouse cursor-size 20
$ sudo ufw allow from 192.168.0.0/16 to any port 3389
Rules updated
$ sudo ufw allow from 123.234.123.234/32 to any port 3389
Rules updated
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
3389                       ALLOW       192.168.0.0/16
3389                       ALLOW       123.234.123.234/32

Осталось только по этой заметке настроить рабочее окружение в консоли и наша Ubuntu готова к работе.


Previous Post