0 votes

Comment puis-je redimensionner une image créée à l'aide de dd qui contient une copie bloc par bloc de mon disque Mac ?

J'ai créé une copie d'un disque dur de 1 To qui fonctionne (mais qui présente quelques erreurs de disque) à l'aide de la méthode suivante dd . Je peux monter l'image ( hdiutil attach ou double-cliquez simplement dans le Finder) sans problème et voir les fichiers sur le volume principal HFS+. Cependant, je ne vois pas les autres partitions que je sais être là (EFI, Recovery HD). Je sais qu'elles sont là car si je restaure l'image directement sur un disque physique, elles sont là.

Cependant, je voudrais restaurer cette image sur un SSD de 480 Go (plus petit), et je dois donc réduire la partition HFS+ principale/grande de l'image. Il y a beaucoup d'espace libre dans la partition (700GB) donc cela devrait être faisable.

J'ai essayé de convertir l'image en une image en lecture-écriture ( hdiutil convert -format UDRW ) ou un faisceau clairsemé ( hdiutil convert -format UDSB - donne un fichier de 200 Go).

L'image en lecture-écriture ne sera pas redimensionnée :
hdiutil: resize request is below minimum size allowed.

Running hdiutil compact sur le paquet épars ne le réduira pas :
Reclaimed 0 bytes out of 796.9 GB possible.

Quelle est la manière correcte de redimensionner la partition HFS+ principale/grande dans l'image disque complète ?

1voto

klanomath Points 63400

À mon avis, cela peut être possible mais ce n'est pas efficace car pour y parvenir, il faudrait extraire et réduire une partie de l'image brute dd, puis réassembler les trois parties. De plus, vous devez manipuler la table de partition gpt à l'intérieur de l'image dd brute réassemblée en la modifiant en hexadécimal. Ensuite, vous devez dd retour de l'image.

Faites plutôt ce qui suit, qui prend beaucoup moins de temps et qui est probablement moins sujet aux erreurs :

  • Partitionnez votre nouveau disque avec 3 partitions : EFI, le volume principal du système et une partition Recovery HD.
  • Puisque EFI et la partition de récupération ont des tailles fixes et des blocs de départ définis, vous pouvez simplement dd l'EFI et le Recovery HD dans votre image brute dd vers les partitions respectives de votre nouveau SSD
  • Pour copier le contenu de l'ancien volume principal, montez l'image dd raw et rsync le contenu vers le nouveau volume principal.

Ici, je suppose que vous avez un disque externe avec un OS X complet (El Capitan) pour préparer le SSD. Tous les noms/identifiants de périphériques ou tailles sont juste des exemples et peuvent différer de votre environnement/résultats réels.

Préparation de votre nouveau SSD :

  • Ouvrez l'utilitaire de disque et effacez le nouveau disque (Nom : SSD/Format : OS X Extended (Journaled)/Scheme : Table de partition GUID)

  • Ouvrez le Terminal et entrez diskutil list . Le résultat devrait être (les tailles peuvent être légèrement différentes des vôtres) :

    /dev/disk0 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *480.0 GB   disk0
       1:                        EFI EFI                     209.7 MB   disk0s1
       2:                  Apple_HFS SSD                     479.6 GB   disk0s2
    /dev/disk1...
  • Dans le Terminal, entrez sudo gpt -r show disk0 . Le résultat devrait être (les tailles peuvent être légèrement différentes des vôtres) :

          start       size  index  contents
              0          1         PMBR
              1          1         Pri GPT header
              2         32         Pri GPT table
             34          6         
             40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
         409640  936755120      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      937164760     262151         
      937426911         32         Sec GPT table
      937426943          1         Sec GPT header
  • Maintenant démontez le disque0 et supprimez la seconde partition :

    diskutil umountDisk disk0
    sudo gpt remove -i 2 disk0
  • Ajoutez la partition de récupération. La partition de récupération a toujours la taille 1269536 blocs et commence à la taille totale du disque en blocs - 1269576 blocs (dans mon exemple c'est : 937426944 - 1269576 = 936157368)

    sudo gpt add -i 3 -b 936157368 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
  • Entrez sudo gpt -r show disk0 à nouveau pour afficher la nouvelle partition :

          start       size  index  contents
              0          1         PMBR
              1          1         Pri GPT header
              2         32         Pri GPT table
             34          6         
             40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
         409640  935747728         
      936157368    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
      937426904          7         
      937426911         32         Sec GPT table
      937426943          1         Sec GPT header
  • Dans l'espace vide entre les partitions i=1 et i=3, ajoutez une nouvelle partition. Le bloc de départ et la taille sont donnés par les données trouvées ci-dessus :

    sudo gpt add -i 2 -b 409640 -s 935747728 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
  • Démontez disk0 et formatez le nouveau volume :

    diskutil umountDisk disk0
    sudo newfs_hfs -J -v "SSD" /dev/disk0s2

Restauration de vos données :

  • Montez votre image disque brute en double-cliquant dessus.

  • Entrez diskutil list . Vous devriez voir une nouvelle entrée similaire à celle-ci :

    /dev/disk0 (internal, physical):
    ...
    /dev/disk3 (disk image):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        +1.0 TB     disk3
       1:                        EFI EFI                     209.7 MB   disk3s1
       2:                  Apple_HFS Macintosh HD            1.0 TB     disk3s2
       3:                 Apple_Boot Recovery HD             650.0 MB   disk3s3
  • Déposez l'EFI et le Recovery HD de l'image sur le SSD :

    sudo dd if=/dev/disk3s1 of=/dev/disk0s1 bs=4096
    diskutil umountDisk disk0
    sudo dd if=/dev/disk3s3 of=/dev/disk0s3 bs=4096
  • monter le volume principal du SSD :

    diskutil mount disk0s2
  • rsync le contenu du volume principal de l'image disque (qui devrait être visible sur votre bureau contrairement aux partitions EFI/Recovery HD) vers le volume principal du SSD :

    sudo rsync -a /Volumes/Volume_name_of_Diskimage/ /Volumes/SSD

Ceci est un exemple de commande rsync très basique. Vous pouvez affiner la commande rsync (options/exclusions) selon les critères suivants ce ou ce des scripts liés.


Veuillez vérifier tous les noms de périphériques dans les différentes commandes contenant dd ou gpt ou vous allez supprimer ou écraser des partitions/données importantes sans le vouloir.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X