J'ai un script que j'exécute afin d'optimiser l'espace disque avant de sauvegarder un invité virtuel (vraiment peu importe quel hyperviseur est utilisé).
Les versions d'Ubuntu modernes (par exemple 18.04) semblent utiliser par défaut /swapfile
une partition plutôt qu'une partition à cet effet. C'est bien aussi.
Cependant, je voudrais remplir le fichier d'échange avec la partition racine qui le contient.
Avec les partitions de swap, cela était relativement indolore car il y avait toujours un moyen d'extraire l'existant $UUID
de la partition de swap et - après avoir rempli la partition de zéro - d'exécuter mkswap -U $UUID
pour recréer ladite partition de swap.
Cependant, avec le /swapfile
je ne vois pas comment faire ça. Bien que je réalise que vous ne pouvez pas monter un /swapfile
UUID dans /etc/fstab
, je voudrais quand même conserver l'UUID.
Je pense donc avoir besoin de l'un des éléments suivants pour continuer:
- J'ai besoin d'une méthode qui peut remplir le fichier d'échange sans effacer également les structures qui en font une partition d'échange (c'est-à-dire éviter d'avoir à exécuter
mkswap -U $UUID
) - J'ai besoin d'une méthode pour récupérer l'UUID existant à partir d'un fichier d' échange (par opposition à une partition où je peux utiliser n'importe quoi de
blkid
à regarder/dev/disk/by-uuid/$UUID
...)
blkid
avec un paramètre. Je suppose que je devrais faire cela plutôt que, par exemple, utiliserdd
avec un décalage.blkid
. Selon la version, vous pourrez peut-êtreblkid swap -o value -s uuid
extraire uniquement l'UUID.blkid -o export <file>
je l'ai déjà fait et j'ai opté pour que je passe parsed
le préfixelocal
à chaque ligne et que j'utilise ensuiteeval
Bash. De cette façon, j'ai les valeurs dans ma fonction en tant que variables d'environnement local tout de suite.