Quel est le problème avec cette séquence d'opérations, fonctionnant sur un système Debian Squeeze avec un système de fichiers 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
Mon système de fichiers est:
$ 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
malat
la source
la source
Réponses:
tel que publié par malat
la source
btrfs
système de fichiers ne peut pas prendre en charge les fichiers d'échange car il déplace les données de fichiers et le code d'échange Linux ne prend le mappage du fichier d'échange qu'une seule fois. Une catastrophe se produirait si cela était autorisé - les données de fichiers aléatoires qui utilisaient des blocs que le fichier d'échange une fois utilisé serait corrompus.J'ai moins de 50 points de réputation donc je ne peux pas commenter. Mais je dois mettre à jour les réponses existantes. Dans le noyau Linux 5.0.0, btrfs prend désormais nativement en charge le fichier d'échange. (Vous devez le définir comme non-vache)
Voici quelques informations de kernel.org: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
Ce lien montre comment le faire: https://wiki.archlinux.org/index.php/swap#Swap_file .
N'ESSAYEZ PAS SUR LINUX <4.21 !!!
la source
Si vous voulez quand même échanger sur un fichier, utilisez simplement btrfs-swapon
la source
truncate -s 4G swapfile_holes.img
. C'est-à-dire que laswapon
vérification de quelque chose est que le fichier d'échange doit remplir certaines conditions pour des performances raisonnables.losetup
cartographie. Mon système s'est bloqué après avoir commencé à utiliser le swap throughlosetup
sur btrfs (avec un fichier pré-alloué). Peut-être que cela interfère d'une manière ou d'une autre avec les tampons et les caches. C'est-à-dire que le système veut libérer de la mémoire et échanger quelque chose, mais cela entraîne une augmentation du cache pour la même taille. Bien que je ne sois pas sûr, j'éviterais cela.Mise à jour d'avril 2019 : veuillez consulter la réponse de recolic, qui affirme que Btrfs a commencé à prendre en charge le swap à partir de la version 5.0.0 du noyau Linux.
Réponse originale:
La réponse de Sathya semble contenir des liens morts.
J'ai trouvé cela dans la FAQ Btrfs:
Source: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
la source
Invalid argument
dit que quelque chose ne va pas dans les arguments pour laswapon
commande.Tout d'abord, lisez
man swapon
.Essayez
sudo swapon swapfile2
. Dans mon cas, cela fonctionne.la source