Comment effacer l'espace inutilisé avec des zéros? (Je demande un outil pour le système de fichiers btrfs )
Je cherche quelque chose de plus intelligent que
cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
Comme FSArchiver recherche "l'espace utilisé" et ignore le site inutilisé mais opposé.
Objectif: je voudrais compresser les images de partition, il est donc fortement recommandé de remplir l'espace inutilisé avec des zéros.
Btw. Pour ext3, ext4: effacez l'espace inutilisé avec des zéros (ext3, ext4) . Ici je demande des btrfs
Clarification de "l'algorithme plus intelligent": Comme je vois que "l'algorithme plus intelligent" prête à confusion, j'ai finalement décidé d'ajouter une ligne à ce sujet. Cher lecteur, veuillez considérer le système de fichiers comme une infrastructure de données. À des fins de simplification, imaginons une carte contenant un arbre rouge-noir à équilibrage automatique, qui est utilisée comme clé d'association -> tableau de valeurs, où les valeurs sont des entiers. L'objectif est d'effacer toutes les valeurs négatives avec des zéros. Un algorithme "pas intelligent" va itérer dessus et ajouter des paires clé: valeur à la nouvelle carte (avec éventuellement une modification négative à zéro). L'algorithme intelligent détectera simplement les endroits où les valeurs négatives sont stockées et les effacera sur place .
la source
sfill
suggestion ? Il semble qu'il ne nécessite pas d'extX.truncate
et / oufallocate
Réponses:
Voici une nouvelle version modifiée et bien plus étendue de ma réponse à votre question précédente:
sfill
dusecure-delete
paquet peut faire ce que vous voulez.Contrairement à zerofree (qui ne fonctionne qu'avec les systèmes de fichiers ext2, ext3 et ext4), sfill fonctionnera avec n'importe quel système de fichiers.
par exemple
La page d'accueil sfill / secure-delete semble maintenant avoir disparu, mais elle est empaquetée pour debian et ubuntu. probablement d'autres distributions aussi. si vous avez besoin de code source, celui-ci peut être trouvé dans les archives debian si vous ne le trouvez nulle part ailleurs.
REMARQUE: sfill ne fonctionne que sur un système de fichiers monté. Si vous remplissez à zéro les fichiers d'image à partir du système hôte plutôt qu'à partir d'une machine virtuelle, vous devrez monter l'image fs sur l'hôte. La méthode exacte varie en fonction du type de fichier image dont il s'agit (par exemple qcow2 ou raw).
Le montage d'images «brutes» est simple et direct. Utilisez simplement
kpartx
le fichier image pour créer un périphérique de bouclage et / dev / mapper / entrées pour chaque partition peut ensuite être monté individuellement.voici un script partiel modifié à partir d'un fragment du script que j'utilise pour monter des images de disques durs libérés net-bootable (utilisé pour les mises à jour du bios sur les machines où flashrom ne fonctionne pas):
REMARQUE: cela suppose que chaque partition de l'image est montable. vrai dans mon cas d'utilisation (une image hd de freedos avec une partition). pas vrai si l'une des partitions est, disons, swap space. Détecter de telles partitions et utiliser dd pour mettre à zéro la partition de swap reste un exercice pour le lecteur :)
Cette méthode, ou une variante de celle-ci, devrait également fonctionner pour les volumes LVM.
Si vos images sont qcow, vous pouvez utiliser l'
qemu-nbd
outil duqemu-utils
package, qui présentera le fichier image et ses partitions en tant que périphériques de bloc réseau - par exemple / dev / nbd0 / dev / ndb0p1 - qui peut être utilisé de la même manière que le / périphériques dev / mapper ci-dessus.Il est peut-être plus facile et moins compliqué (mais plus long) d'utiliser
qemu-img
pour convertir de qcow en raw, utilisez la méthode pour raw ci-dessus, puis reconvertissez l'image brute modifiée en qcow2 compressé. Cela entraînera probablement des images légèrement plus petites que l'utilisation de qemu-nbd car vous compresserez la nouvelle image qcow2 lors de sa création.la source
La façon correcte et "intelligente" de vider l'espace libre consiste à utiliser:
Utilisez-le sur un système de fichiers monté.
Il est important de noter qu'il n'y a aucun avantage de sécurité à cela. Si vous souhaitez effacer votre disque pour des raisons de sécurité, sauvegardez vos fichiers, mettez à zéro le disque entier avec une commande comme "déchiqueter" puis restaurez vos fichiers.
Cependant, la solution fonctionne correctement si votre disque est une provision allégée sur un système de fichiers clairsemé et que vous souhaitez récupérer l'espace inutilisé.
la source