web-dev-qa-db-fra.com

Lecteur signalant un espace libre incorrect

J'ai donc échangé mon SSD SATA brillant pour un SSD PCI-E encore plus brillant. Je lance mon système d'exploitation principal sur le SSD parce que c'est stupide-rapide. C'est ce que j'ai fait sur mon ancien disque SSD. J'ai donc créé une nouvelle partition EXT4, puis ddedisposé les données (désolé, je ne connais plus la commande exacte que j'ai exécutée) et, après avoir réinstallé grub, j'ai démarré sur le périphérique PCI. E SSD. À première vue, tout avait parfaitement fonctionné et les choses allaient plus vite que jamais.

Mais ensuite, j'ai remarqué que l'espace disque disponible sur le nouveau disque plus grand était presque identique à celui de l'autre disque ... Un disque deux fois plus petit.

Il semble donc que j'ai copié les fichiers de manière incorrecte et que certaines métadonnées du système de fichiers ont été copiées.

Des outils comme du et Disk Usage Analyzer reviennent avec les chiffres corrects. Les choses qui regardent la partition (et non les fichiers) semblent penser que le lecteur est de 120 Go

Cela fait une semaine que je me sers de ce disque, je ne suis donc plus synchronisé avec l'ancien disque SSD. Ce n'est donc pas un travail qui me remplit de joie que de relancer les données et de recommencer à zéro: deux questions:

  1. Y at-il un moyen de réparer mon système de fichiers afin qu'il sache de quoi il s'agit vraiment? fscke2fsck et badblocks semblent tous être capables de le scanner sans trouver de problème.

  2. Si je rebranche mon ancien SSD, y copie les données de mon PCI-E, puis les copie sur un nouveau système de fichiers (par exemple, jongle avec les données), quel est le meilleur moyen de le faire? Je souhaite évidemment conserver toutes les autorisations et les liens symboliques là où ils se trouvent.

7
Oli

L'outil que vous avez utilisé dd n'est pas un outil de copie de fichier, c'est un outil de copie de disque qui copie octet pour octet. Cela signifie que toutes les informations, y compris les métadonnées relatives à la quantité d'espace disponible sur la partition du lecteur, ont été copiées.

Vous devez effectuer une sauvegarde complète de vos fichiers, formater le lecteur (y compris un format de parition complet), créer une nouvelle partition ext4 et un lecteur de remplacement, puis copier les fichiers.

Une fois les fichiers copiés, vous devez chroot sur le nouveau système et exécuter la commande update-grub pour installer le système d’amorçage sur le nouveau lecteur.

Ou vous pouvez simplement lancer une nouvelle installation d'Ubuntu et remettre vos fichiers.


Ce qu'Oli a fait pour résoudre ce problème

  1. Démarré sur un LiveCD et sélectionné "Try Ubuntu"
  2. Monté mon SSD et aussi un autre disque (pour copier)
  3. A couru

    Sudo rsync -ax /media/ssd /media/backup-drive/ssd-backup
    

    Cela prend beaucoup de temps. Avant de copier, je nettoyais un peu, mais il me restait encore 35 Go. Pendant que j'écrivais des rafales d'écriture d'environ 120 Mo/s, cela m'a pris un certain temps. rsync ne vous donnera pas de sortie par défaut, mais vous pouvez ajouter --progress si vous voulez une quantité de détails pervers (bien que cela ait été trop rapide pour que je puisse vraiment le lire - et probablement juste pour ralentir les choses).

  4. J'ai essayé de mettre le lecteur à nuke mais le problème avec "device busy" de palimpsest (Utilitaire de disque) a été lancé, j'ai donc lancé le programme d'installation! Dans l'installateur, je lui ai simplement dit de créer un système de fichiers Nice en utilisant l'intégralité du lecteur SSD, puis j'ai exécuté killall ubiquity après avoir copié les fichiers.
  5. Ensuite, j'ai fouillé tous les fichiers que le programme d'installation avait copiés, puis j'ai copié les fichiers de sauvegarde:

    Sudo rm -rf /media/ssd/*
    Sudo rsync -ax /media/backup-drive/ssd-backup /media/ssd
    
  6. Ensuite, j'ai redémarré et trouvé que mon UUID avait changé (évident quand on y pense), donc grub2 n'avait aucune idée de l'endroit où démarrer et a explosé, alors je suis retourné dans le LiveCD. Si vous suivez ceci comme guide, je vous suggère de sauter cette étape;)
  7. Réinstallez Grub! J'ai suivi la documentation d'aide et suivi l'option chroot. Vous pourriez avoir besoin de modifier votre /etc/fstab pendant que vous y êtes.
  8. Redémarrez et vous devriez avoir terminé. Je suis de retour, j'ai une métrique "d'espace" d'espace libre. Huzzah.
4

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.

Vous devez d'abord faire une sauvegarde.

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.

4
John S Gruber

En fait, il est OK de dd le disque entier dans un autre. Mais vous devez ensuite redimensionner les partitions pour remplir le nouveau disque plus grand. Vous pouvez utiliser l’impressionnant outil de partitionnement de disque gparted pour le faire. Ils ont aussi leur propre LiveCD.

4
vadipp

J'ai rencontré ce problème lors du redimensionnement d'une partition Linux EX2 à l'aide de Paragon Partition Manager sous Windows. Heureusement, j'avais deux partitions Linux EX2, chacune avec des distributions Linux. J'ai pu démarrer sur la partition Linux qui n'avait pas été redimensionnée, puis utiliser Gparted pour réduire puis étendre à nouveau la partition qui n'avait pas correctement alloué l'espace libre au système de fichiers. Cela a fonctionné parfaitement!

0
user215334