3

Я создал файл подкачки с

dd if=/dev/zero of=swap.img bs=1024k count=4k
mkswap swap.img
swapon swap.img

Хотя это работает, команде swapon требуется время (около 10 минут) для завершения. Включение файла подкачки в /etc/fstab означает, что процесс загрузки будет остановлен на несколько минут.

Я заметил, что время выполнения команды dd уменьшится, если я увеличу размер блока (пробовал с 1024 и 1 раньше). Влияет ли это на swapon?

Будет ли swapon обрабатывать разреженные файлы? Я пытался успешно раньше, но после перезагрузки получил "файл подкачки имеет дыры", поэтому я переключился на полный файл.

Еще немного информации:

  • Использование Linux Mint KDE 15 RC
  • Файл подкачки находится на смонтированном разделе NTFS

Выход dd был

4096+0 records in
4096+0 records out 
4294967296 bytes (4,3 GB) copied, 73,9629 s, 58,1 MB/s 

Вывод mkswap был

Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=108b2e2d-e00a-40d0-8e28-c0b72003e63e

swapon не выдает никаких результатов, но dmesg впоследствии показал:

Adding 4194272k swap on /host/personal/swap.img.  Priority:-1 extents:9 across:4335880k

Любая идея, как создать файл подкачки (лучше даже в два раза больше), который монтируется в разумные сроки?

1 ответ1

2

Это не столько ответ, сколько серия подсказок. Прежде всего, на этой странице упоминается, что выполнение команды dd в разделе NTFS может повредить раздел. Не знаю почему и не знаю, правда ли это, но я подумал, что стоит упомянуть:

если /mnt /home - это диск NTFS, не используйте dd (запись на ваш диск NTFS может привести к повреждению файловой системы)

Каковы бы ни были подробности, создание файла подкачки в разделе NTFS действительно кажется проблематичным:

 $  dd if=/dev/zero of=swap.img bs=1024k count=4k
 4096+0 records in 
 4096+0 records out
 4294967296 bytes (4.3 GB) copied, 122.731 s, 35.0 MB/s
 $ mkswap swap.img 
 $ sudo swapon swap.img 
  swapon: /winblows/swap.img: skipping - it appears to have holes.

Точно такой же процесс, запущенный на разделе ext4, не выдает ошибок и, по-видимому, работает отлично, что указывает на проблему с диском NTFS. Кроме того, перемещение файла, работавшего с раздела ext4 на NTFS, и запуск swapon на нем приводит к той же ошибке "файл имеет дыры". Так что это действительно не файл, а раздел.

Это может быть проблемой, вызванной фрагментацией моего диска, но пользователь на этом форуме объявил, что он получает ту же проблему на недавно отформатированном диске, который содержит только 2 файла, так что похоже, что фрагментация не является проблемой.

С одной стороны, часто задаваемые вопросы по ntfs-3G (это модуль, используемый ядром для монтирования и доступа к разделам NTFS):

Могу ли я безопасно использовать файл подкачки, без тупиков в NTFS?

Да, это возможно, если все правильно настроено. Ниже приведен пример безопасного создания, инициализации и включения файла подкачки объемом 2 ГБ без блокировки:

dd if=/dev/zero of=swapfile bs=1M count=2000 
mkswap swapfile
swapon swapfile

Вы должны отключить файл подкачки с помощью команды «swapoff», прежде чем сможете размонтировать NTFS. Также обратите внимание, что другие решения, например, с использованием подкачки на устройстве с петлями, небезопасны и могут привести к тупику!

Таким образом, они, кажется, думают, что это должно работать. С другой стороны, когда я запускаю приведенные выше команды, я получаю ту же ошибку "файл имеет дыры".

Итак, хотя я не могу найти какую-либо убедительную информацию, я не могу заставить ее работать на NTFS. Я обнаружил, что различные посты, которые предлагают использовать раздел NTFS для файла подкачки, являются плохой идеей или описывают различные проблемы, с которыми сталкиваются пользователи, пытаясь сделать то же самое. В заключение, если у вас есть какой-либо способ избежать NTFS, это, вероятно, хорошая идея.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .