Вопрос или проблема
Я пытаюсь создать файл подкачки размером 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" возникает, когда система обнаруживает "дыры" в файле подкачки. Это может происходить по нескольким причинам, включая:
- Использование
dd
для создания файла подкачки: Если командаdd
не создала файл без промежутков, возможно, ваш файл не является непрерывным (например, из-за особенностей файловой системы). - Использование
fallocate
: Эта команда также может создавать файлы с "дырами", если не задать соответствующие параметры. - Использование ZFS: Если ваш корневой раздел зашифрован с использованием ZFS, это также может вызвать проблемы с созданием файла подкачки.
Решение проблемы
Для успешного создания файла подкачки в Ubuntu 22.04, когда вы используете ZFS, рекомендуется создать специальный ZFS-устройство, а не использовать обычный файл подкачки. Вот как это сделать:
-
Создание 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
: Отключает автоматические снимки.
-
Форматирование нового устройства:
Теперь вам нужно отформатировать это ZFS-устройство для использования как своп:sudo mkswap -f /dev/zvol/rpool/swap
-
Включение свопа:
После этого активируйте своп:sudo swapon /dev/zvol/rpool/swap
-
Проверка:
Убедитесь, что своп успешно активирован, с помощью команды:sudo swapon --show
Заключение
Создание свопа на Ubuntu 22.04 в системе с ZFS может вызвать трудности, особенно если используется щадящий режим с записями. Устранение проблемы с помощью более безопасных методов создания ZFS-устройства обеспечивает более надежную и оптимизированную работу системы. Следуя инструкциям выше, вы сможете избежать проблем с "дырами" и успешно настроить своп на вашей системе.
Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться за поддержкой в сообществе Ubuntu или на специализированных форумах.