Удалите строку с устаревшим идентификатором подкачки из /etc/fstab, если она больше не соответствует реальному разделу. Это решает 90% подобных ситуаций в Red OS.
Если система не загружается, используйте live-образ, смонтируйте корневую файловую систему вручную и проверьте содержимое конфигурационного файла монтирования. Часто после клонирования или переразметки диска swap получает новый идентификатор, старый становится мусором.
Команда для проверки текущих идентификаторов:
blkid | grep swap
mkswap /dev/sdX
swapon /dev/sdX
blkid /dev/sdX
И замените старую строку в fstab на актуальную. Синтаксис должен быть точным, иначе система встанет колом на этапе инициализации служб.
Внимание! Red OS не игнорирует отсутствующий swap. Он не просто пропускается, а ломает всю цепочку запуска systemd. Результат – интерактивный шелл и горящий лог.
Нет swap в системе? Используйте fallocate -l 1G /swapfile и настройте файл подкачки. Не забудьте про права:
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Не забудьте прописать его в /etc/fstab так:
/swapfile none swap defaults 0 0
Red OS особенно капризен к ошибкам в конфигурации загрузки. Любая мелочь приводит к провалу и требует вмешательства через live-режим. Не рассчитывайте на автоматическое восстановление, здесь его нет.
Важно помнить: после правок обязательно выполните
mount -aиswapon --showдля проверки, всё ли смонтировалось корректно и работает ли подкачка.
Проблема кажется тривиальной, но может вылиться в часы простоя. Не полагайтесь на автогенерацию. Проверяйте руками. Всегда.
Содержание статьи
Как определить, что проблема связана именно с UUID SWAP-раздела
Первое: заходим в emergency shell и проверяем, что остановило последовательность. Команда journalctl -xb покажет, где всё сломалось. Ищите строки вида:
Dependency failed for Resume from hibernate using device with XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Далее: сверяем текущее состояние блочных устройств:
blkid | grep -i swap
Совпадает ли с тем, что в /etc/fstab? Нет? Тогда виновник найден. Бывает после dd, rsync, восстановления из образа или ручного форматирования.
Чтобы вытащить строку напрямую:
cat /etc/fstab | grep -i swap
Проверьте, существует ли вообще такой раздел:
ls /dev/disk/by-uuid/ | grep XXXXXX-XXXX
Если нет – система ждёт то, чего уже не существует. Тупик. Red OS не переходит к следующему пункту fstab, если один из них не найден. Это не Ubuntu. Здесь всё строго.
Важно! Повреждённая или отсутствующая ссылка на область подкачки блокирует запуск не напрямую, а через зависимость от
dev-*unit в systemd. Понимать механизм критично.
Скрипт-проверка для автоматизации сверки:
awk '$3 == "swap" {print $1}' /etc/fstab | while read line; do blkid | grep "$line" || echo "Нет устройства: $line"; done
Если устройство отсутствует, сообщение будет явным. Работает на всех актуальных релизах Red OS 7.x и 8.x.
Периодически встречается путаница между файловым swap и разделом. Ищите файл /swapfile – если он есть, /etc/fstab должен ссылаться на него, а не на /dev/sdX с мёртвым UUID.
Помните: Подсистема подкачки в Red OS активируется жёстко через systemd-генератор, а не init-скриптами. Проблема начинается ещё на стадии initramfs.
Бывает, что swap указан как LABEL, но blkid не возвращает метку – тогда fstab молчит, а systemd падает. Диагностируется командой:
lsblk -o NAME,LABEL,UUID,TYPE | grep -i swap
Нет совпадений – вручную пересоздайте swap, назначьте метку или uuid, пересоберите initrd через dracut -f. Без этого – бесконечный emergency shell и мигалки курсора.
Пошаговая инструкция по исправлению UUID в /etc/fstab
Сначала находим актуальный идентификатор. Введите:
blkid | grep -i swap
Если система в emergency shell, используйте:
blkid -c /dev/null
Скопируйте строку с нужного устройства. Пример:
/dev/sda2: UUID="f3d6e84a-3f24-4c00-9b1c-a617e0c321c8" TYPE="swap"
Откройте таблицу монтирования:
nano /etc/fstab
Найдите строку, начинающуюся с UUID= и указывающую на раздел подкачки. Замените старый идентификатор на актуальный. Пример:
UUID=f3d6e84a-3f24-4c00-9b1c-a617e0c321c8 none swap defaults 0 0
Сохраните и закройте файл. Проверка синтаксиса перед перезагрузкой – обязательна:
mount -a
Если ошибок нет – отлично. Дальше включаем область подкачки вручную:
swapon -a
swapon --show
Важно! Если
mount -aвозвращает ошибку, не перезагружайтесь. Иначе снова попадёте в emergency shell. Найдите опечатку, пересмотрите пробелы, уберите лишние символы.
Если подкачка создавалась заново через файл, строка в /etc/fstab будет другой:
/swapfile none swap defaults 0 0
Перезапуск initramfs обязателен, если используется гибернация:
dracut -f
Забудете – получите kernel panic или вечную инициализацию. Проверка на стороне GRUB:
cat /proc/cmdline | grep resume=
Если указан старый идентификатор, обновите конфигурацию загрузчика. Пример для GRUB 2:
nano /etc/default/grub
Исправьте параметр resume=UUID=..., затем выполните:
grub2-mkconfig -o /boot/grub2/grub.cfg
Помните: Red OS не прощает ошибок в fstab. Всё должно быть синтаксически точно, без закомментированных строк, если они касаются swap.
Закончили? Перезагрузитесь. Если всё сделали правильно – система стартует без зависаний и откатов в shell. Если нет – вернитесь к blkid и перепроверьте всё снова. Один лишний символ – и здравствуй, черный экран.
Что делать, если SWAP-раздел отсутствует или был удалён
Сначала отключаем несуществующую привязку. Удалите строку из /etc/fstab, ссылающуюся на неактуальное устройство. Иначе systemd будет пытаться смонтировать призрак. Бесконечные таймауты, логика рушится, сервисы висят в ожидании. Удалите. Немедленно.
Проверка текущего состояния:
swapon --show
Создание нового пространства. Первый способ – через файл:
fallocate -l 2G /swapfile
Назначаем права:
chmod 600 /swapfile
Делаем его рабочим:
mkswap /swapfile
swapon /swapfile
Проверяем:
swapon --show
Теперь добавляем в fstab:
/swapfile none swap defaults 0 0
Не нравится файл? Хотите отдельный раздел? Тогда используйте:
fdisk /dev/sdX
Создайте новый раздел с типом Linux swap (ID 82). Сохраняете. Инициализируете:
mkswap /dev/sdXn
swapon /dev/sdXn
Получаете идентификатор:
blkid /dev/sdXn
Пример строки для /etc/fstab:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap defaults 0 0
Важно помнить: Red OS не использует init-скрипты для подкачки. Всё через fstab и systemd. Без явной записи активация невозможна.
Внимание на hibernation. Если она используется – нужно обновить /etc/default/grub, указав новый путь в параметре resume=. После правки:
grub2-mkconfig -o /boot/grub2/grub.cfg
Обновление initramfs обязательно:
dracut -f
Внимание! Пропустите этот шаг – и получите kernel panic при попытке восстановления состояния системы.
Факт отсутствия подкачки в Red OS критичен только при нехватке оперативной памяти или включённой гибернации. В остальных случаях – можно загрузиться, но будут лаги, непредсказуемость, тормоза. Ваш выбор.

