Гид по технологиям

Как исправить ошибку read-error on swap-device в Ubuntu

5 min read Linux Обновлено 06 Dec 2025
Исправить read-error on swap-device в Ubuntu
Исправить read-error on swap-device в Ubuntu

Материнская плата ПК с установленными модулями памяти

Linux — надёжная операционная система для серверов и рабочих станций. Но даже она иногда даёт сбои из‑за нехватки памяти или проблем со swap. Ошибка “read-error on swap-device” может сделать систему нестабильной или вовсе неотзывчивой. В этой статье объясняю, как диагностировать причину и устранить проблему в Ubuntu.

Что такое swap и зачем он нужен

Определение: swap — это дополнительная область хранения, которую ядро Linux использует, когда оперативная память (RAM) заполнена. Swap может быть отдельным разделом, файлом на диске или помещением в сжатую оперативную память (zram).

Swap нужен для:

  • Поддержки работы приложений при дефиците оперативной памяти.
  • Уменьшения риска аварийных завершений процессов при временных всплесках нагрузки.

Важно: чтение из swap гораздо медленнее, чем из RAM. Поэтому swap помогает выжить, но не заменяет реальный объём оперативной памяти.

Частые причины ошибки read-error on swap-device

  • Очень мало RAM: при интенсивных задачах система начинает активно использовать swap. Это повышает нагрузку на диск и задержки чтения/записи.
  • Слишком маленький swap-файл или переполнение swap: если swap заполнен, система может испытывать ошибки при работе с подкачкой.
  • Повреждение файловой системы или битые сектора на диске: если хранение swap расположено на повреждённом носителе, чтение возвращает ошибки.
  • Неправильные записи в /etc/fstab: при изменении swap без корректного обновления fstab система пытается подключить несуществующий или перемещённый swap.
  • Аппаратные проблемы: проблемы с контроллером диска, кабелями или самими накопителями.

Исходный вывод: увеличение RAM или swap часто решает проблему, но иногда потребуется работать с диском и конфигурацией.

Просмотр размера и состояния swap

Чтобы понять, сколько у вас swap и активен ли он, используйте встроенные утилиты.

Просмотреть активные swap-области:

swapon --show

Команда для отображения размера swap-файла в Linux

Выход команды покажет путь к swap (например, /swapfile или /dev/sdXN) и объём в ГБ. На десктопе можно использовать графический монитор:

  • Нажмите клавиши Super (клавиша Windows) + A, найдите «System Monitor» или «Системный монитор». График памяти покажет использование RAM и swap.

Системный монитор с графиком использования оперативной памяти и swap

Пошаговое восстановление и создание swap-файла

Ниже — безопасный процесс отключения старого swap, создания нового и включения его обратно.

  1. Отключите текущий swap (если это swap-файл /swapfile):
sudo swapoff /swapfile
  1. Создайте новый swap-файл нужного размера. Пример для 4 ГБ:
sudo fallocate -l 4G /swapfile

Примечание: если fallocate не поддерживается на вашей файловой системе, используйте dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
  1. Ограничьте права доступа — только root должен иметь доступ:
sudo chmod 600 /swapfile
  1. Инициализируйте swap-область:
sudo mkswap /swapfile
  1. Включите swap:
sudo swapon /swapfile
  1. Убедитесь, что swap активен:
swapon --show
free -m
cat /proc/swaps
  1. Если вы хотите, чтобы swap подключался автоматически при загрузке, добавьте строку в /etc/fstab (проверьте правильность пути и опций перед перезагрузкой):
/swapfile none swap sw 0 0

Важно: ошибочная запись в /etc/fstab может привести к проблемам при загрузке. Всегда делайте резервную копию файла перед изменениями.

Мониторинг использования памяти и поведения системы

Команды для наблюдения в реальном времени:

free -m            # показывает RAM и swap в мегабайтах
vmstat 1           # системная статистика с интервалом 1 сек
top или htop       # процессы и использование памяти
dmesg | grep -i swap  # сообщения ядра, связанные со swap
journalctl -k | grep -i swap

Если система активно свопит и становится медленной, рассмотрите изменение значения swappiness (как часто система будет пользоваться swap):

cat /proc/sys/vm/swappiness  # текущее значение (обычно 60)
sudo sysctl vm.swappiness=10  # временно снизить агрессивность

Чтобы сделать значение постоянным, измените /etc/sysctl.conf.

Когда простое пересоздание swap не помогает

Контрпримеры / ситуации, в которых описанные шаги не устраняют проблему:

  • Повреждён диск или есть битые сектора. В этом случае swap, размещённый на проблемном диске, будет давать ошибки чтения. Решение: проверить SMART (smartctl), выполнить fsck и при необходимости заменить диск.
  • Проблемы в оборудовании (контроллер SATA/PCIe, плохие кабели) — требуется диагностика и замена железа.
  • Повреждён загрузочный или системный раздел, некорректные права на /swapfile или неправильный формат — проверьте логи ядра (dmesg) и systemd-journald.
  • Аппаратная память (RAM) действительно неисправна — её стоит протестировать с помощью memtest86.

Альтернативные подходы и улучшения

  • Увеличить объём физической RAM — наиболее устойчивое решение для серверов и рабочих станций.
  • Использовать выделенный swap-раздел вместо файла, если вы предпочитаете управление разделами.
  • Включить zram: сжатый swap в оперативной памяти. Это уменьшает использование диска и улучшает отклик на системах с медленными носителями.
  • Настроить swappiness и cache pressure, чтобы снизить частоту обращения к swap.
  • Для временных данных использовать tmpfs, если данные не критичны и могут быть сброшены при перезагрузке.

Чеклист для ролей

Для системного администратора:

  • Проверить swapon –show и dmesg на ошибки.
  • Проверить /etc/fstab и права /swapfile.
  • Просканировать диск (smartctl) и файловую систему (fsck).
  • Рассмотреть возможность увеличения RAM или переноса swap на надёжный носитель.

Для разработчика/пользователя:

  • Мониторить free -m и htop при нагрузке.
  • При зависании убивать проблемные процессы (kill или pkill).
  • Временно снизить swappiness.

Для десктоп-пользователя:

  • Пересоздать swap-файл через приведённые команды.
  • Проверить наличие обновлений ядра и драйверов диска.

Короткая шпаргалка команд

# Просмотр и диагностика
swapon --show
free -m
cat /proc/swaps
dmesg | grep -i swap
journalctl -k | grep -i swap
smartctl -a /dev/sda
memtest86 # запуск с USB для теста RAM

# Создание swap-файла 4G
sudo swapoff /swapfile
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Альтернатива если нет fallocate
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

# Настройка swappiness временно
sudo sysctl vm.swappiness=10

Матрица рисков и способы смягчения

РискПоследствиеСмягчение
Повреждение дискаОшибки чтения swap, падения сервисовSMART, fsck, замена носителя
Неправильный /etc/fstabСистема может не загрузитьсяРезервная копия fstab, тест перед реBOOT
Недостаток RAMЧастые зависания и медленная работаУвеличение RAM, zram, корректный swap
Неправильные права на /swapfileswap не подключится или будет небезопасенchmod 600 /swapfile

Критерии приёмки

  • swapon –show показывает ожидаемый объём и активность.
  • Система не отдаёт ошибок “read-error on swap-device” в dmesg/journal.
  • При нагрузке система остаётся отзывчивой в пределах ожидаемых показателей.

Однострочный глоссарий

  • swap: область подкачки, дополнительная память на диске.
  • swappiness: параметр, определяющий агрессивность использования swap.
  • zram: сжатый swap в оперативной памяти.

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

Короткое резюме

  • Проверьте состояние swap и RAM.
  • Отключите и пересоздайте swap-файл при необходимости.
  • Диагностируйте диск и память при подозрениях на аппаратные проблемы.
  • Рассмотрите zram или добавление RAM как долгосрочное решение.

Примечание: перед изменением системных файлов всегда делайте резервные копии и, при возможности, тестируйте операции на тестовой машине.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство