убрать 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