web-dev-qa-db-fra.com

Lorsque vous clonez une partition ext4 avec la commande "dd" sur une partition plus grande, l'espace disponible sur la partition ne augmente pas

Duplicate possible:
Le lecteur a signalé un espace libre incorrect

Récemment, j'ai essayé de cloner mon disque dur avec l'outil DD. Tout allait bien, comme cloner des partitions NTFS, mais en ce qui concerne ext4 - dd fait une chose étrange. Par exemple. Avec une partition de 12 Go avec 4 Go d’espace libre, lorsqu’il essaie de la cloner sur la nouvelle partition de 25 Go, elle le clone, mais les données qui étaient auparavant de 12 Go sont maintenant de 21 Go avec 4 Go (la même quantité d’espace libre toujours telle qu’elle était sur le disque). l'ancienne partition). Cela se produit chaque fois que je clone mes partitions home et root (ext4). J'essayais aussi de réduire la taille de la nouvelle partition à celle de l'ancienne, mais dd se termine par une erreur en disant qu'il n'y a pas assez d'espace, ce qui devrait suffire ...

N'importe qui? Que se passe-t-il?

6
Piotr Kołątaj

Je suppose que vous faites quelque chose comme:

Sudo dd if=/dev/sda98 of=/dev/sda99

où/dev/sda98 a une taille de 12 Go et/dev/sda99 une taille de 25 Go.

Évidemment, ces noms sont faux, mais vous voyez l'idée.

Ce que vous avez fait est de déplacer non seulement les données, mais tout le système de fichiers, y compris toutes ses métadonnées décrivant ce qui est gratuit et ce qui est utilisé, vers la nouvelle partition. Il a beaucoup d'espace libre, mais cet espace libre n'a pas été incorporé dans le système de fichiers sous/dev/sda99, il est donc caché à la fin de la partition et complètement inutilisable.

La solution consiste à redimensionner le système de fichiers situé dans la partition:

Sudo resize2fs /dev/sda99

cela fonctionne sur les systèmes de fichiers EXT2, EXT3 et EXT4.

Je vous encourage tout d’abord à faire une sauvegarde, mais je suppose que vous avez toujours les données dans la partition originale.

Cela indiquera au système de fichiers de se développer dans tout l'espace disponible sur la partition, en incorporant le nouvel espace dans les métadonnées du système de fichiers afin que les fichiers puissent y être stockés.

Vous ne pouvez pas copier une partition plus grande sur une partition plus petite avec dd que si vous lui indiquez de ne copier autant qu'avec le paramètre count. dd copie un peu, bit par bit, de tout ce qui se trouve dans la partition source vers la partition cible. Dans ce cas, il tente de copier tout l'espace caché/invisible sur la plus petite partition avec le contenu d'origine. Il n'a aucune idée de ce qu'il est en train de copier - il ne doit pas du tout être un système de fichiers valide.

11
John S Gruber