Что не так с этой последовательностью операций, выполняемой в системе Debian Squeeze с файловой системой Btrfs?
$ dd if=/dev/zero of=swapfile2 bs=1024 count=524288
$ sudo mkswap swapfile2
$ sudo chown root:root swapfile2
$ sudo chmod 0600 swapfile2
$ sudo swapon -v -f swapfile2
swapon on swapfile2
swapon: /home/mathieu/swapfile2: found swap signature: version 1, page-size 4, same byte order
swapon: /home/mathieu/swapfile2: pagesize=4096, swapsize=536870912, devsize=536870912
swapon: swapfile2: swapon failed: Invalid argument
Моя файловая система:
$ mount
/dev/mapper/voxbox-root on / type btrfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/mapper/voxbox-boot on /boot type ext2 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
linux
filesystems
swap
btrfs
малат
источник
источник
Ответы:
а отвечал на Малаты
источник
btrfs
Файловая система не поддерживает файлы подкачки , поскольку он перемещает файл данных вокруг и код подкачки Linux занимает только отображение файл подкачки в один раз. Катастрофа произошла бы, если бы это было разрешено - случайные данные файла, которые использовали блоки, которые когда-то использовал файл подкачки, были бы повреждены.У меня меньше 50 репутации, поэтому я не могу комментировать. Но я должен обновить существующие ответы. В ядре Linux 5.0.0 btrfs изначально поддерживает swapfile. (Вы должны установить его как no-COW)
Вот некоторая информация из kernel.org: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
Эта ссылка показывает, как это сделать: https://wiki.archlinux.org/index.php/swap#Swap_file .
НЕ ПЫТАЙТЕСЬ В LINUX <4.21 !!!
источник
Если вы хотите поменять файл, просто используйте btrfs-swapon
источник
truncate -s 4G swapfile_holes.img
. Т.е. причина чего-тоswapon
проверяется в том, что файл подкачки должен удовлетворять некоторым требованиям для разумной производительности.losetup
картографию. Моя система зависла после начала использования swaplosetup
на btrfs (с предварительно выделенным файлом). Может быть, это как-то мешает работе буферов и кешей. Т.е. система хочет освободить память и что-то поменять, но это приводит к увеличению кеша для того же размера. Хотя я не уверен, я бы избежал этого.Обновление от апреля 2019 года : см. Ответ recolic, в котором утверждается, что Btrfs начал поддерживать своп с версии ядра Linux 5.0.0.
Оригинальный ответ:
Сатья ответ, кажется, содержит мертвые ссылки.
Я нашел это в FAQ Btrfs:
Источник: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F.
источник
Invalid argument
говорит, что что-то не так в аргументах дляswapon
команды.Прежде всего, прочитайте
man swapon
.Попробуй
sudo swapon swapfile2
. В моем случае это работает.источник