À l'origine, j'ai utilisé la méthode suivante pour arrêter un jeu de données occupé afin de me permettre d'exporter ce jeu de données pour une reconstruction de pool. J'utilise un jeu de données ZFS pour mon répertoire /home et je n'ai pas pu trouver le processus qui l'a occupé. Voici ma solution qui devrait également fonctionner pour vous, lorsque vous ne trouvez pas le processus à l'aide de votre ensemble de données :
- Sur tous les ensembles de données que vous souhaitez exporter (mais que vous avez eu des difficultés à exporter), définissez :
zfs set canmount=noauto dataset1
zfs set canmount=noauto dataset2 ... et ainsi de suite où vous remplacez les noms de vos jeux de données par dataset1, dataset2, etc...
Le paramètre canmount=noauto garantit que l'ensemble de données ne sera pas monté au redémarrage
-
Créez un compte utilisateur (ou utilisez le compte root) qui n'utilise pas l'ensemble de données pour /home etc... Donnez à ce compte les privilèges sudo.
-
Redémarrez et connectez-vous au compte ci-dessus, c'est-à-dire le compte que vous venez de créer à l'étape 2. Ce compte devrait démarrer sans monter les ensembles de données que vous avez modifiés à l'étape 1 et, par conséquent, refuser ces ensembles de données à tous les démons/programmes.
-
Étant donné que les ensembles de données ne sont plus occupés, vous pouvez maintenant les détruire et/ou leurs instantanés.
-
Assurez-vous de :
zfs set canmount=on datasetx
(où datasetx est votre jeu de données en question) à tous les jeux de données que vous souhaitez monter au démarrage. C'est la valeur par défaut de zfs. Cordialement, Phil