MKSWAP(8)

NOM
mkswap - Créer une zone d'échange (swap) Linux

SYNOPSIS

mkswap [options] périphérique [blocs]

mkswap [options] --size taille --file fichier

DESCRIPTION

mkswap crée une zone d’échange Linux sur un périphérique ou dans un fichier.

Le paramètre périphérique est normalement une partition du disque dur (/dev/sdb7 par exemple) mais peut aussi être un fichier. Le noyau Linux ne regarde pas les identifiants de partition, mais beaucoup de scripts d’installation supposeront que les partitions de type 82 en hexadécimal (LINUX_SWAP) sont, par défaut, des partitions d’échange. (Attention : Solaris utilise aussi le type 82 ; prenez garde de ne pas supprimer les partitions Solaris.)

Le paramètre blocs est superflu mais il est conservé pour des raisons de compatibilité ascendante. Il indique la taille désirée de la zone d’échange par blocs de 1024 octets. mkswap utilisera la totalité de la partition ou du fichier si la taille est omise. L’indiquer est imprudent — une coquille pourrait détruire le disque.

Après avoir créé la zone d’échange, vous aurez besoin de la commande swapon(8) pour l’utiliser. Habituellement les zones d’échange sont indiquées dans le fichier /etc/fstab afin qu’elles puissent être utilisées au démarrage par la commande swapon -a dans les scripts de démarrage.

AVERTISSEMENT

L’en-tête de la zone d’échange ne modifie pas le premier bloc. Un chargeur de démarrage ou une étiquette de disque peut y être placé, mais ce n’est pas une configuration recommandée. La configuration recommandée est d’utiliser une partition séparée pour la zone d’échange.

mkswap, comme beaucoup d’autres outils du type mkfs, efface le premier bloc de la partition pour rendre les anciens systèmes de fichiers invisibles.

Cependant, mkswap refuse de supprimer le premier bloc d’un périphérique avec une étiquette de disque (SUN, BSD, etc.).

OPTIONS

-c, --check
    Vérifier le périphérique (si c’est un périphérique bloc) pour découvrir les blocs corrompus avant de créer une zone d’échange. Si des blocs corrompus sont trouvés, leur nombre est affiché.

-F, --file
    Créer un fichier d’échange avec les permissions de fichier appropriées et remplire les blocs sur le disque.

-f, --force
    Continuer même si la commande est stupide. Cela permet de créer une zone d’échange plus grande que la taille du fichier ou de la partition dans laquelle elle réside.

    Ainsi, sans cette option, mkswap refusera d’effacer le premier bloc d’un périphérique avec une table de partitions.

-q, --quiet
    Supprimer la sortie et les messages d’avertissements.

-L, --label étiquette
    Indiquer une étiquette de périphérique pour permettre l’utilisation de swapon(8) avec cette étiquette.

--lock[=mode]
    Utiliser un verrou BSD exclusif pour le périphérique ou le fichier visé. L’argument facultatif mode peut être yes, no (ou 1 et 0) ou nonblock. Si cet argument est absent, sa valeur par défaut est yes. Cette option écrase la variable d’environnement $LOCK_BLOCK_DEVICE. Le comportement par défaut est de n’utiliser aucun verrou, mais cela est recommandé pour éviter des collisions avec systemd-udevd(8) ou d’autres outils.

-p, --pagesize taille
    Indiquer la taille de page (en octet) à utiliser. Cette option est normalement inutile, mkswap lit la taille depuis le noyau.

-U, --uuid UUID
    Spécifier le UUID à utiliser. Par défaut, un UUID est généré. Le format du UUID est des séries de chiffres hexadécimaux séparés par des tirets, comme ceci : « c1b9d5a2-f162-11cf-9ece-0020afc76f16 ». Le paramètre UUID peut aussi être l’une de ces valeurs :

    clear
        effacer le UUID du système de fichiers

    random
        générer un nouveau UUID aléatoire

    time
        générer un nouveau UUID basé sur l’heure

-e, --endianness ENDIANNESS
    Specify the ENDIANNESS to use, valid arguments are native, little or big. The default is native.

-o, --offset position
    Spécifie l'offset où écrire la zone d’échange.

-s, --size taille
    Spécifie la taille du fichier d’échange créé. La taille peut être suivie des suffixes multiplicatifs KiB (=1024), MiB (=1024*1024) et ainsi de suite pour GiB, TiB, PiB, EiB, ZiB et YiB (la partie « iB » est facultative, par exemple « K » est identique à « KiB »). Si le fichier existe et est plus grand que la taille, il sera tronqué à cette taille. Cette option n’a de sens qu’avec --file.

-v, --swapversion 1
    Indiquer la version de l’espace d’échange. Cette option ne sert actuellement à rien car l’ancienne option -v 0 est devenue obsolète et que seule -v 1 est prise en charge. Le noyau ne prend plus en charge le format v0 d’espace d’échange depuis la version 2.5.22 (juin 2002). La nouvelle version v1 est prise en charge depuis le noyau 2.1.117 (août 1998).

--verbose
    Exécution verbeuse. Avec cette option, mkswap sort plus de détails à propos des problèmes détectés durant la préparation de la zone d’échange.

-h, --help
    Afficher l’aide-mémoire puis quitter.

-V, --version
    Afficher la version et quitter.

ENVIRONNEMENT

LIBBLKID_DEBUG=all
    Activer la sortie de débogage de libblkid.

LOCK_BLOCK_DEVICE=<mode>
    Utiliser un verrou exclusif BSD. Le mode est « 1 » ou « 0 ». Consulter --lock pour davantage de détails.

NOTES

La taille utile maximale d’une zone d’échange dépend de l’architecture et de la version du noyau.

Le nombre maximal de pages qu’il est possible d’adresser avec l’en-tête de la zone d’échange est 4 294 967 295 (entier de 32 bits non signé). L’espace restant dans le périphérique d’échange est ignoré.

Actuellement, Linux autorise 32 zones d’échange. Les zones en cours d’utilisation sont visibles dans le fichier /proc/swaps.

mkswap refuse les zones de taille inférieure à 10 pages.

Si vous ne connaissez pas la taille de page utilisée par votre machine, vous pouvez la découvrir avec getconf PAGESIZE.

En plus de mkswap --file, il est aussi possible de créer un fichier d’échange manuellement avant de l’initialiser avec mkswap, par exemple en utilisant une commande comme

Depuis la version 2.41, mkswap --file défini l’attribut nocow pour les fichiers nouvellement créés afin de supporter les fichiers d’échange sur Btrfs.

    # dd if=/dev/zero of=fichier_échange bs=1MiB count=$((8*1024))

pour créer un fichier d’échange de 8 GiB.

Dans un tel cas, veuillez lire les notes dans swapon(8) sur les restrictions d’utilisation de fichier d’échange (trous, préallocation et problèmes de copie sur écriture).

VOIR AUSSI

fdisk(8), swapon(8)

SIGNALER DES BOGUES

Pour signaler un bogue, utilisez le

DISPONIBILITÉ

La commande mkswap fait partie du paquet util-linux, elle est disponible sur