убрать snap из ubuntu-server и отключить лишние службы

Часть 1: Удаление Snap и его следов


1. Удалите все Snap-пакеты
Сначала удалите пакеты Snap, начиная с зависимых:
sudo snap remove --purge lxd
sudo snap remove --purge core20
sudo snap remove --purge core22
sudo snap remove --purge snapd

Если какие-то пакеты не удаляются — посмотрите список всех установленных:
snap list

Удалите все по очереди:
sudo snap remove --purge <имя>

2. Удалите сам snapd
sudo apt purge snapd

3. Удалите остатки
sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd

4. Заблокируйте Snap (чтобы не ставился снова)
Чтобы APT не устанавливал snapd как зависимость:
echo -e 'Package: snapd\nPin: release a=*\nPin-Priority: -10' | sudo tee /etc/apt/preferences.d/nosnap.pref

Часть 2: Отключение лишних служб (systemd)


systemctl list-units --type=service --state=running
Примеры служб, которые можно отключить:

| Служба                        | Назначение                             | Команда                                            |
| ----------------------------- | -------------------------------------- | -------------------------------------------------- |
| `snapd.service`               | Snap-демон                             | `sudo systemctl disable --now snapd`               |
| `motd-news.service`           | Новости Ubuntu                         | `sudo systemctl disable --now motd-news`           |
| `unattended-upgrades.service` | Автообновления                         | `sudo systemctl disable --now unattended-upgrades` |
| `fwupd.service`               | Обновление прошивок                    | `sudo systemctl disable --now fwupd`               |
| `cloud-init`                  | Облачная инициализация (если не нужно) | `sudo systemctl disable --now cloud-init`          |
| `lxd-agent.service`           | Агент LXD (если не используете LXD)    | `sudo systemctl disable --now lxd-agent`           |

Дополнительно (опционально)
systemctl list-unit-files --type=service | grep enabled

Условно "лишние" службы (можно отключить без потери функциональности)

| Служба                         | Назначение                            | Отключение                                          |
| ------------------------------ | ------------------------------------- | --------------------------------------------------- |
| `snapd`                        | Snap-платформа                        | `sudo systemctl disable --now snapd`                |
| `motd-news`                    | Новости Ubuntu при входе              | `sudo systemctl disable --now motd-news`            |
| `unattended-upgrades`          | Автоматические обновления             | `sudo systemctl disable --now unattended-upgrades`  |
| `fwupd`                        | Обновления прошивок                   | `sudo systemctl disable --now fwupd`                |
| `cloud-init`                   | Инициализация облачных образов        | `sudo systemctl disable --now cloud-init` + удалить |
| `pollinate`                    | Сбор телеметрии Ubuntu                | `sudo systemctl disable --now pollinate`            |
| `apport`                       | Отчёты об ошибках                     | `sudo systemctl disable --now apport`               |
| `lxd-agent`                    | Агент LXD внутри контейнера           | `sudo systemctl disable --now lxd-agent`            |
| `systemd-timesyncd`            | Синхронизация времени (если не нужен) | `sudo systemctl disable --now systemd-timesyncd`    |
| `rsyslog`                      | Логгер, можно отключить если journald | `sudo systemctl disable --now rsyslog`              |
| `update-notifier` / `whoopsie` | Уведомления об обновлениях            | `sudo systemctl disable --now whoopsie`             |


Дополнительно (если совсем минимизировать):

| Служба         |  Назначение                                                      | Как отключить / удалить                                                         |
|--------------- |------------------------------------------------------------------|---------------------------------------------------------------------------------|
|`cups`          |Система печати                                                    |`sudo apt purge cups*`                                                           |
|`avahi-daemon`  |Автообнаружение сетевых сервисов (Bonjour)                        |`sudo systemctl disable --now avahi-daemon`    `sudo apt purge avahi-daemon`     |
|`bluetooth`     |Поддержка Bluetooth                                               |`sudo systemctl disable --now bluetooth`    `sudo apt purge bluez`               |
|`ModemManager`  |Модемы и мобильные сети                                           |`sudo systemctl disable --now ModemManager`    `sudo apt purge modemmanager`     |
|`NetworkManager`|GUI-сетевой менеджер (не нужен на сервере)                        |`sudo systemctl disable --now NetworkManager`    `sudo apt purge network-manager`|
|`irqbalance`    |Балансировка IRQ на многоядерных CPU (можно отключить на малых VM)|`sudo systemctl disable --now irqbalance`    `sudo apt purge irqbalance`         |
|`atd`           |Планировщик одноразовых задач `at`                                |`sudo systemctl disable --now atd`    `sudo apt purge at`                        |
|`man-db.timer`  |Автообновление кэша man-страниц                                   |`sudo systemctl disable --now man-db.timer`                                      |
|`whoopsie`      |Отправка отчётов об ошибках Ubuntu                                |`sudo systemctl disable --now whoopsie`    `sudo apt purge whoopsie`             |
|`lvm2-monitor`  |Мониторинг LVM, если не используешь LVM                           |`sudo systemctl disable --now lvm2-monitor`    `sudo apt purge lvm2`             |

Как посмотреть, что активно
systemctl list-units --type=service --state=running

А чтобы посмотреть, какие службы включены на автозапуск:
systemctl list-unit-files --type=service | grep enabled

Не отключай без причины:

| Служба                         | Назначение                                         |
| ------------------------------ | -------------------------------------------------- |
| `sshd`                         | SSH-доступ                                         |
| `systemd-journald`             | Логирование                                        |
| `systemd-networkd` / `netplan` | Сетевые интерфейсы                                 |
| `dbus`                         | IPC для некоторых служб                            |
| `cron`                         | Задания по расписанию                              |
| `getty@tty1`                   | Локальная консоль (можно отключить, если не нужна) |

Не отключай критически важные службы:

| Служба                         | Нельзя отключать если…              |
| ------------------------------ | ----------------------------------- |
| `systemd-networkd` / `netplan` | используется для настройки сети     |
| `sshd`                         | нужен удалённый доступ              |
| `cron`                         | используются фоновые задания        |
| `systemd-resolved`             | используется DNS через systemd      |
| `dbus`                         | зависит много системных компонентов |



Кастомизация входа (опционально)
Отключи новости Ubuntu при входе по SSH:
sudo chmod -x /etc/update-motd.d/*

Удалить cloud-init, если не нужен:
sudo apt purge cloud-init
sudo rm -rf /etc/cloud/ /var/lib/cloud/

Проверка зависимостей

apt depends cloud-init
apt-mark showauto | grep cloud-init

grep cloud-init /var/log/dpkg.log
zgrep cloud-init /var/log/dpkg.log.*

Поскольку, после удаления cloud-init, при apt autoremove удаляются ethtool fdisk iproute2 netplan-generator netplan.io, то лучше его не удалять, а отключить все связанные с ним службы

1. Отключить systemd-службы cloud-init

sudo systemctl disable cloud-init.service
sudo systemctl disable cloud-init-local.service
sudo systemctl disable cloud-config.service
sudo systemctl disable cloud-final.service

Чтобы сразу остановить их, если они активны:

sudo systemctl stop cloud-init.service
sudo systemctl stop cloud-init-local.service
sudo systemctl stop cloud-config.service
sudo systemctl stop cloud-final.service

2. Отключить cloud-init на уровне конфигурации
Создайте файл, чтобы полностью отключить работу cloud-init (службы при этом всё равно будут установлены, но ничего не будут делать):

sudo touch /etc/cloud/cloud-init.disabled

3. (опционально) Проверить, что службы отключены

systemctl list-unit-files | grep cloud-init

4. Проверка на следующей перезагрузке, что cloud-init больше не запускается:

sudo journalctl -b | grep cloud-init


minimalize-server.sh



This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 17th, 2026 03:02 pm
Powered by Dreamwidth Studios