web-dev-qa-db-fra.com

zerofree sur Ubuntu 18.04

J'utilise Ubuntu 18.04 pour le développement sur VM VirtualBox sur un hôte Windows 10 pro J'ai déjà compilé le disque dur virtuel en procédant comme suit: https: //www.howtogeek. com/312883/comment-réduire-un-espace-virtuel-machine-virtuelle-et-espace-disque-libre-up /

en dehors des mises à jour habituelles - je ne me suis pas amusé avec cela (récemment, je viens d'installer la mise à jour pour les ajouts de virtualbox)

auparavant, je n'avais qu'un seul fichier/dev/sda1; aujourd'hui, j'en ai eu trois et lorsque j'essaie d'exécuter zerofree sur l'un d'entre eux, le périphérique est monté en rw.

enter image description here

J'ai suivi quelques instructions ici aussi pour arrêter certains services et essayer de remonter, mais cela n'a pas fonctionné

https://unix.stackexchange.com/questions/42015/mount-is-busy-when-trying-to-mount-as-read-on-real-on-that-i-can-run-zerofree

il dit toujours que le point de montage est occupé

Je ne sais pas si cela s'est produit à cause d'une mise à jour récente? J'ai également testé en désinstallant les ajouts d'invité vmware - mais cela n'a pas fonctionné

Suggestions ?

4
Danish

Comme mentionné dans l'un des commentaires, vous avez trois partitions montées (sda1, sda2 et sda3) et plusieurs systèmes de fichiers temporaires utilisés à d'autres fins.

Le manuel de zerofreeindique que si vous souhaitez exécuter cette opération sur un système de fichiers, celui-ci doit être monté en lecture seule ou démonté. Lorsque vous exécutez Ubuntu, il est certain que la partition racine /, qui est /dev/sda1 sur votre ordinateur, est montée et que la commande donnera un échec.

Si vous souhaitez exécuter zerofreesur /dev/sda1, vous devrez soit démarrer à partir d'un autre périphérique, soit sous la forme d'une image USB ou ISO amorçable, soit effectuer un chroot vers une autre image Linux. Le lien auquel vous faites référence contient des instructions spécifiques sur l'exécution du programme sur la partition racine. Veuillez relire leurs instructions sur l’utilisation de ce programme sous Linux:

  • Démarrer et accéder à Grub avant le chargement du système d'exploitation
  • Choisissez "Options avancées" dans le menu contextuel.
  • Entrer dans une session en mode de récupération
  • utilisez le login 'root'
  • Identifier le disque
  • Exécutez zerofreename__
  • arrêter la machine
  • éteindre et redémarrer la VM

2019-01-22

La version actuelle d'Ubuntu rend difficile l'exécution de zerofreeà partir de la session de récupération - dans ce cas, il est plus facile d'exécuter ce programme à partir d'une clé USB en direct:

  • Télécharger un fichier iso Ubuntu actuel
  • Créez un CD/USB en direct avec l'iso Ubuntu
  • Démarrez votre appareil à partir du média en direct (cela peut aussi être fait dans les VM)
  • Installez le programme zerofreename__, s'il n'est pas déjà installé, avec la commande Sudo apt install zerofree
  • Lancer la commande
  • Redémarrer la machine
4
Charles Green

J'aimerais ajouter un commentaire à la réponse de Charles Green, mais je n'ai pas assez de réputation.

Lors de l'exécution de la commande zerofree, vous pouvez recevoir une erreur indiquant que la partition /dev/sda1 est montée en lecture-écriture. Dans ce cas, vous devez remonter cette partition en lecture seule:

mount -n -o remount,ro -t ext2 /dev/sda1 /

et relancez la commande zerofree, comme décrit ici

3
Matt07

Ce qui a fonctionné pour moi (combinant les réponses de plusieurs questions et forums connexes):

  • VirtualBox 5.2.10
  • Windows 10 en tant que système d'exploitation hôte
  • Ubuntu 18.04 en tant qu'OS invité

Commencez par installer zerofree:

Sudo apt-get install zerofree

Créez des 0 pour récupérer de l'espace (supprimez tous les fichiers inutiles et videz la corbeille)

Redémarrez dans le menu GRUB (appuyez sur Échap lors du démarrage d'Ubuntu)

Advanced options for Ubuntu > Recovery Mode (choose highest version number)

Dans Recovery Menu sélectionnez Drop to root Shell Prompt

df pour obtenir vos partitions

df

Essayez d'exécuter zerofree

zerofree /dev/sda1

La partition est en lecture-écriture, elle doit être montée en lecture seule pour que zerofree puisse exécuter Error:

Si vous obtenez une erreur de zerofree telle que /dev/sda1 est monté en tant que rw, vous devez le monter en lecture seule pour continuer.

Pour monter le /dev/sda1 ou votre partition désirée en lecture seule afin d’utiliser zerofree:

Tout d’abord, arrêtez l’écriture de tous les processus sur le disque pour éviter l’erreur mount /: mount busy

systemctl stop systemd-journald.socket
systemctl stop systemd-journald.service

Vérifiez si des partitions d'échange sont activées:

swapon -s

Si activé, alors les désactiver

Sudo swapoff -a

Enfin, vous devriez pouvoir monter dev/sda1 en lecture seule.

mount -n -o remount,ro -t ext2 /dev/sda1 /

Enfin, exécutez zerofree

zerofree /dev/sda1

Quand zerofree est terminé, fermez Ubuntu

halt

Enfin, sur le système d'exploitation hôte (dans mon cas, Windows 10), compactez le vdi pour récupérer de l'espace:

VBoxManage.exe modifymedium disk "C:\path\to\disk.vdi" --compact
0
Emmanuel N K