Alpine Linux Alpine Linux

Alpine: нет места на устройстве (diskless-режим)

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

В diskless-режиме система работает из оперативной памяти (tmpfs), поэтому место ограничено. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Диагностика
  5. Увеличение tmpfs
  6. Установка на диск

#Что означает ошибка

Сообщение
No space left on device

В Alpine в режиме diskless система целиком загружается в оперативную память (tmpfs), поэтому No space left on device означает исчерпание RAM-диска. Установка пакетов, логи и временные файлы занимают память. Размер по умолчанию ограничен половиной ОЗУ.

Решения: освободить место, увеличить tmpfs, установить Alpine на диск или сохранить данные на постоянный раздел.

Сначала узнайте, что занимает место.

В diskless-режиме система работает из оперативной памяти (tmpfs), поэтому место ограничено. Установите систему на диск (setup-disk) или монтируйте отдельный раздел для данных.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Диск не установленРабота в RAM.Выполните setup-disk.
Переполнен tmpfsНет места.Увеличьте размер.
Забыт lbu commitНе сохранено.Сохраните.
Кэш apkМало места.Очистите.

#Пошаговое решение

  1. Проверьте df -h и free -mДля Alpine diskless mode сначала проверьте df -h, df -i, free -m и mount | grep tmpfs: файловая система может храниться в памяти, а не на диске. Не удаляйте системные файлы; проверьте настройки сохранения lbu и объём доступной памяти. При постоянной нехватке места рассмотрите переход на sys-режим после создания копии конфигурации.
  2. Найдите крупные каталогиВ Alpine выполните df -h, df -i и du -h -d 1 /var /tmp 2>/dev/null, чтобы определить, где расходуется пространство и не закончились ли inode. В diskless-режиме часть каталогов может находиться в оперативной памяти, поэтому свободное место на внешнем диске не означает доступную память в /tmp. Удаляйте только известные временные файлы после просмотра результатов; проверьте, не хранятся ли данные приложения в RAM.
  3. Очистите кэш apk и логиСначала определите, где заканчивается место: выполните df -h, du -sh /var/cache/apk /var/log /tmp 2>/dev/null и посмотрите, установлен ли кэш пакетов (ls -ld /etc/apk/cache). В diskless-режиме кэш может лежать на постоянном носителе и обеспечивать повторную загрузку пакетов без интернета. Если накопились только старые архивы, администратор может выполнить штатную apk cache clean и повторить df -h, но не удаляйте весь кэш через rm -rf: после перезагрузки без сети нужных пакетов может не оказаться. Журналы удаляйте только по правилам конкретной службы после просмотра их содержимого.
  4. Увеличьте tmpfs или ОЗУУвеличение tmpfs имеет смысл только если именно корневой tmpfs близок к заполнению, а free -m показывает достаточный запас оперативной памяти. В diskless Alpine rootfs может ограничиваться параметрами размера tmpfs; на работающей системе изменение лимита монтирования допустимо лишь после резервного копирования и оценки RAM, иначе приложения получат нехватку памяти. Сначала найдите потребителей места через du -x -h -d1 /, освободите заведомо ненужные временные файлы штатными средствами, проверьте df -h / и free -m. Изменение rootflags=size=... или архитектуры хранения поручите администратору, знакомому с загрузчиком и резервным восстановлением.
  5. Установите Alpine на диск (sys-режим)Переход с Alpine diskless на установку на диск (sys) — это изменение схемы хранения, а не быстрый способ очистки. Сначала создайте резервную копию настроек (lbu backup) и пользовательских данных, уточните поддерживаемый способ установки для своей версии Alpine на официальном wiki.alpinelinux.org. Запускайте setup-alpine только после выбора целевого диска и понимания, что подготовка разделов может стереть данные. Если диск рабочий и нет копии, не продолжайте.
  6. Только проверка места и оперативной памяти в diskless-режиме
    Linux · Терминал (Bash)Команда
    Только проверка места и оперативной памяти в diskless-режиме. Очистка apk cache может убрать пакеты, нужные для автономной установки. Дополнительно: Только диагностика размеров файловых систем и оперативной памяти: не удаляйте кэш или файлы вне постоянного хранилища без проверки режима diskless.
    df -h
    free -m

#Диагностика

Сначала определите, загружен ли Alpine в режиме diskless, и сохраните текущие настройки. Посмотрите df -h, mount и du -sh /var/cache/apk /var/log /tmp 2>/dev/null. Кэш APK в diskless-системе может требоваться для автономной повторной установки пакетов при загрузке: не удаляйте его целиком через rm -rf /var/cache/apk/*. Удаляйте только старые пакеты штатной командой apk cache clean, когда понимаете, откуда будут доступны пакеты после перезагрузки. Если закончилась память tmpfs, сначала найдите её потребителей; сохранение настроек lbu commit не превращает временные данные в постоянные.

#Увеличение tmpfs

Для корня: параметр ядра overlaytmpfs=yes и rootflags=size=75% в загрузчике, либо для отдельных каталогов: mount -o remount,size=512M /tmp. Добавьте ОЗУ виртуальной машине. Сохраняйте изменения в диск: lbu commit записывает настройки на постоянный носитель (при настроенном LBU_MEDIA). Для установки пакетов в diskless включите кэш на диск: setup-apkcache и каталог /media/sda1/cache.

#Установка на диск

Если памяти не хватает постоянно, установите Alpine в режиме sys: setup-alpine → выберите диск → sys. Тогда корень располагается на ext4, а tmpfs используется лишь для /tmp и /run. Для данных создайте постоянный раздел и примонтируйте в /etc/fstab. Логи отправляйте на удалённый syslog или ограничьте размер: busybox-syslogd -C 64 (кольцевой буфер). Документация: wiki.alpinelinux.org/wiki/Diskless_Mode.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.