Как решить ошибку при создании свопа: “пропускаем – похоже, есть дыры.” (Ubuntu 22.04)

Вопрос или проблема

Я пытаюсь создать файл подкачки размером 1 ГБ без успеха на моем Ubuntu 22.04.

Я использую следующие команды:

sudo rm /swapfile1
sudo dd if=/dev/zero of=/swapfile1 bs=1KB count=1MB status=progress
sudo chmod 0600 /swapfile1
sudo mkswap /swapfile1
sudo swapon /swapfile1

Вывод, который я получаю:

905663000 bytes (906 MB, 864 MiB) скопировано, 5 с, 181 MB/s
1000000+0 записей в
1000000+0 записей из
1000000000 bytes (1.0 GB, 954 MiB) скопировано, 5.46825 с, 183 MB/s

Настройка пространства подкачки версия 1, размер = 953.7 MiB (999993344 bytes)
нет метки, UUID=4c4c204b-57ff-484d-848b-d719e0260156

swapon: /swapfile1: пропуск - похоже, что в нем есть дыры.

Контекст

Когда я смотрю на свободное место, я вижу:

$ df /
Файловая система         1K-блоков     Использовано Доступно  Использовано% Подключено к
rpool/ROOT/ubuntu_emx73f 879401216 225886848 653514368  26% /

Обратите внимание, что я использую полное шифрование диска Ubuntu (не уверен, имеет ли это значение)

Также замена dd на fallocate не решает проблему

Благодарю FedKad, который указал мне на ответ Стратуса.

Что решило проблему:

sudo zfs create -V 1G -b 8192 -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/swap
sudo mkswap -f /dev/zvol/rpool/swap
sudo swapon /dev/zvol/rpool/swap

Спасибо

Это сработало

sudo zfs create -V 1G -b 8192 -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/swap
sudo mkswap -f /dev/zvol/rpool/swap
sudo swapon /dev/zvol/rpool/swap

Ответ или решение

Как решить ошибку создания свопа: "пропускается – кажется, что есть дыры" (Ubuntu 22.04)

Если вы столкнулись с ошибкой при создании файла подкачки (свопа) на Ubuntu 22.04 с сообщением "пропускается – кажется, что есть дыры", это указывает на проблемы с использованием swapfile, которые могут возникнуть в системах, использующих ZFS или других файловых системах с поддержкой снапшотов. В этом руководстве мы подробно рассмотрим, как устранить эту проблему, используя альтернативные методы.

Определение проблемы

Ошибка "skipping – it appears to have holes" возникает, когда система обнаруживает "дыры" в файле подкачки. Это может происходить по нескольким причинам, включая:

  1. Использование dd для создания файла подкачки: Если команда dd не создала файл без промежутков, возможно, ваш файл не является непрерывным (например, из-за особенностей файловой системы).
  2. Использование fallocate: Эта команда также может создавать файлы с "дырами", если не задать соответствующие параметры.
  3. Использование ZFS: Если ваш корневой раздел зашифрован с использованием ZFS, это также может вызвать проблемы с созданием файла подкачки.

Решение проблемы

Для успешного создания файла подкачки в Ubuntu 22.04, когда вы используете ZFS, рекомендуется создать специальный ZFS-устройство, а не использовать обычный файл подкачки. Вот как это сделать:

  1. Создание ZFS-устройства для свопа:
    Введите команду, чтобы создать виртуальное устройство размером 1 ГБ, которое будет использоваться как своп:

    sudo zfs create -V 1G -b 8192 -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/swap

    Параметры команды:

    • -V 1G: Задаёт объем свопа.
    • -b 8192: Устанавливает размер блока.
    • -o logbias=throughput: Оптимизирует распределение логов на производительность.
    • -o sync=always: Гарантирует синхронное сохранение данных.
    • -o primarycache=metadata: Сохраняет только метаданные в кэш.
    • -o com.sun:auto-snapshot=false: Отключает автоматические снимки.
  2. Форматирование нового устройства:
    Теперь вам нужно отформатировать это ZFS-устройство для использования как своп:

    sudo mkswap -f /dev/zvol/rpool/swap
  3. Включение свопа:
    После этого активируйте своп:

    sudo swapon /dev/zvol/rpool/swap
  4. Проверка:
    Убедитесь, что своп успешно активирован, с помощью команды:

    sudo swapon --show

Заключение

Создание свопа на Ubuntu 22.04 в системе с ZFS может вызвать трудности, особенно если используется щадящий режим с записями. Устранение проблемы с помощью более безопасных методов создания ZFS-устройства обеспечивает более надежную и оптимизированную работу системы. Следуя инструкциям выше, вы сможете избежать проблем с "дырами" и успешно настроить своп на вашей системе.

Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться за поддержкой в сообществе Ubuntu или на специализированных форумах.

Оцените материал
Добавить комментарий

Капча загружается...