3 votes

Image disque du système d'exploitation + partition de récupération ?

Je travaille fréquemment avec plusieurs versions d'OS X et j'aimerais disposer d'une image contenant la partition système et la partition de récupération d'une version particulière de l'OS. Est-ce possible ? (le disque où se trouvent ces partitions contient plusieurs autres partitions que je ne veux pas, donc l'image complète du disque n'est pas une option).

Je suppose que cela ne peut pas être fait en une seule étape, j'ai donc déjà créé une image sparsebundle de taille appropriée avec une disposition GPT :

hdiutil create -size 35g -layout GPTSPUD -type SPARSEBUNDLE /path/to/new_image.dmg

L'étape suivante serait de copier la partition concernée sur cette image, mais je ne sais pas comment faire. Mon expérience de Linux me dit que l'utilitaire de partitionnement devrait être l'endroit où chercher pour cela, mais je ne vois rien dans la section diskutil qui semble faire ce que je veux.

Conseils/idées ?

0 votes

Après être passé par KB d'Apple y ce poste Ce sont mes observations : - Les partitions supplémentaires sont ajoutées dans une étape séparée en utilisant diskutil 's resizeVolume qui permet d'ajouter des partitions dans l'espace libre après la partition sur laquelle on travaille. - La partition de récupération ne diffère que par son type de GUID dans la table GPT. En utilisant la commande gpt la suppression de la partition et sa réinsertion avec le GUID approprié permet d'obtenir l'état souhaité.

0 votes

Intéressant aussi, asr au moins la version de OS X 10.11, restaurera la partition système. et la récupération qui suit immédiatement. Si l'on part d'un disque qui a déjà un système d'exploitation et une partition, alors asr devrait être suffisant pour tout faire. En fait, le véritable problème est que l'utilitaire de disque graphique crée des images de partitions et des images de systèmes de fichiers uniques qui ne contiennent pas la partition de récupération correspondante.

1voto

DanO Points 1173

Démarrer à partir d'une installation de travail

Une configuration de travail est un disque, ou une image de disque complet avec des partitions multiples ( IED ci-après), où le système d'exploitation et sa partition de récupération sont connus pour être corrects, très probablement parce qu'ils ont été créés par le programme d'installation du système d'exploitation. Comme mentionné dans le commentaire, asr est suffisant pour gérer la copie des deux partitions dans ce cas.

En supposant que le système d'exploitation source et les partitions de récupération sont disk3s11 y disk3s12 respectivement, je recommande la procédure suivante :

  1. Réduisez la partition du système d'exploitation à sa taille minimale. Ce n'est pas nécessaire, mais je suggère de le faire lorsque vous ne pouvez pas être sûr que la partition cible de l'utilisateur sera aussi grande que celle que vous utilisez.

    $ diskutil resizeVolume disk3s11 limits
    
    ... (minimum size will be mentioned here) ...
    
    $ diskutil resizeVolume disk3s11 24GB
  2. Créer un IDE temporaire de taille appropriée sous forme de faisceau clairsemé. Rappelez-vous, la restauration prend 650 Mo supplémentaires sur la partition système, et EFI prend un autre 210 MB. Je vais donc ajouter un Go supplémentaire à la taille utilisée à l'étape 1, juste pour être sûr. Le piège ici est, hdiudil soutien uniquement binaire préfixes (1024 pour k etc.). Dans cet exemple, 25 Go = 23,29 Go.

    $ hdiutil create -layout GPTSPUD -type SPARSEBUNDLE -size 23.29g /tmp/temp_FDI
    
    created: /tmp/temp_FDI.sparsebundle
  3. Attachez l'image sans la monter (cela échouerait, puisque la partition n'a pas été formatée). Prenez note de la /dev/ pour la partition Apple_HFS.

    $ hdiutil attach /tmp/temp_FDI.sparsebundle -nomount
    
    /dev/disk5              GUID_partition_scheme           
    /dev/disk5s1            EFI                             
    /dev/disk5s2            Apple_HFS
  4. Exécuter asr avec la partition vide de l'image comme cible. Vous devrez entrer le chemin complet vers /dev/... les entrées. De plus, comme la source est un disque physique, des privilèges élevés sont nécessaires. Vous devriez voir l'outil se terminer par 2 rangs de Restaurer... progrès.

    $ sudo asr restore --source /dev/disk3s11 --target /dev/disk5s2 --erase  --noverify
    
        Validating target...done
        Validating source...done
        Erase contents of /dev/disk5s2 ()? [ny]: y
        Validating sizes...done
        Restoring  ....10....20....30....40....50....60....70....80....90....100
        Restoring  ....10....20....30....40....50....60....70....80....90....100
  5. Enfin, créez une image compressée en lecture seule à partir du sparsebundle. Utilisez la fonction "whole disk" du sparsebundle. /dev/ entrée ( /dev/disk5 ).

    $ hdiutil create -format ULFO -srcdevice /dev/disk5 -o /tmp/OS_X_10.11-combined_FDI2.dmg
    
    ...
    Elapsed Time:  2m 33.743s
    File size: 8000565446 bytes, Checksum: CRC32 $5D496986
    Sectors processed: 48842670, 38032196 compressed
    Speed: 120.8Mbytes/sec
    Savings: 68.0%
    created: /tmp/OS_X_10.11-combined_FDI2.dmg 

    Vous pouvez utiliser UDZO si vous souhaitez que votre image soit compatible avec les anciennes versions d'OS X et leurs environnements de récupération respectifs (ULFO n'a été introduit qu'en 10.11).


Travailler à partir de la base

Il est possible d'assembler une "configuration de travail" à partir d'images à partition unique (images qui n'ont pas de table de partition, et donc pas d'indice pour les partitions). asr qu'une partition particulière est une récupération ; SPI ci-après). La procédure n'est pas pour les âmes sensibles.

Je vais supposer que j'ai un SPI compressé, en lecture seule, de la partition système et de la partition de récupération. Réduire les partitions à la taille minimale est une autre paire de manches, où l'utilisation d'une UDRW l'image semble inévitable. N'hésitez pas à suggérer une solution plus simple.

  1. Avec cela en tête, faites un pré-rétrécissement de l'image de la partition système. Les images en lecture seule ne peuvent être réduites qu'avec une ombre.

    $ hdiutil resize -sectors min  OS_X_10.11-system.dmg -shadow /tmp/pre-shrink.shadow
  2. Vérifiez la taille de l'image, puis attachez-la

    $ hdiutil imageinfo OS_X_10.11-system.dmg -shadow /tmp/pre-shrink.shadow
    
    ...
        Total Bytes: 27648868352
    
    $ hdiutil attach OS_X_10.11-system.dmg -shadow /tmp/pre-shrink.shadow -nomount
    
    ...
    /dev/disk7

La taille est d'environ 27,65 Go.

  1. Créez une image éparse suffisamment grande pour contenir le système et les partitions de récupération en taille réelle - AFAICT, les SPIs ne peuvent pas être redimensionnés et cela doit être fait dans un FDI. Avec l'espace supplémentaire nécessaire pour EFI et la récupération, nous aurons besoin de 28,6 Go = 26,64 GiB.

    $ hdiutil create -layout GPTSPUD -type SPARSEBUNDLE -size 26.64g /tmp/temp_FDI
    $ hdiutil attach /tmp/temp_FDI.sparsebundle -nomount
    /dev/disk5              GUID_partition_scheme           
    /dev/disk5s1            EFI                             
    /dev/disk5s2            Apple_HFS   
  2. Faites un asr restaurer à partir des SPI du système /dev/ dans la partition de données du sparsebundle.

    $ asr restore --source /dev/disk7 --target /dev/disk5s2 --erase --noverify
  3. Maintenant, vérifiez la taille minimale de la partition en utilisant diskutil . Ensuite, utilisez resizeVolume pour rétrécir la partition et créer la partition de récupération en une seule étape.

    $ diskutil mount disk5s2
    $ diskutil resizeVolume disk5s2 limits
    
    ... (minimum size will be mentioned here) ...
    
    $ diskutil resizeVolume disk5s2 24GB JHFS+ Recovery %recovery% Free\ Space dummy 1m
  4. Restaurez le SPI de récupération dans la nouvelle partition sur le FDI. Elle sera probablement montée, alors démontez-la. Vous pouvez travailler avec l'image directement.

    $ asr restoreexact --source /path/to/OS_X_10.11-recovery.dmg --target /dev/disk5s3 --erase --noverify
    
    ...
    $ diskutil umount disk5s3
  5. Voici la partie délicate - videz la table de partition en utilisant la fonction gpt l'utilitaire, en prenant note de la partition de récupération commencer y taille valeurs. Supprimez l'enregistrement de la partition de récupération et ajoutez-le à nouveau avec le type GUID modifié. Vous saurez quel enregistrement correspond à la partition de récupération grâce à l'index ("disk5s"). 3 "), et par sa taille (représentée ici par les secteurs 512 B).

    $ gpt show disk5
    ...
       47546784    1269536      3  GPT part - "Recovery"
    ...
    $ gpt remove -i 3 disk5
    $ gpt add -b 47546784 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk5
  6. Facultatif : je recommande également de modifier le nom de la partition (défini par défaut sur "image disque") pour qu'il corresponde au nom de volume de la partition système.

    $ gpt label -i 2 -l "OS X 10.11" disk5
  7. Maintenant, puisque hdiutil resize ne fonctionne pas avec les sparsebundles de la manière dont nous le voudrions, vous pouvez soit :

    • Laisse ça comme ça. Ce n'est pas comme si l'espace libre consommait quelque chose. Continuez avec l'étape 5 dans le Configuration de travail scénario.
    • Convertir l'image temp_FDI.sparsebundle en UDRW, et essayer de la réduire correctement. Je n'ai pas testé cela et la nécessité d'écrire la taille entière de l'image pour cette étape rend l'exercice inutile.
    • Traitez le sparsebundle existant à ce stade comme un disque avec un système optimalement rétréci, et exécutez le premier scénario sur celui-ci, en sautant l'étape 1. C'est-à-dire créer un autre sparsebundle image, et lancez asr qui, cette fois, copiera les deux partitions dans la nouvelle image, et convertira que à l'image ULFO.

Restauration du site

Étapes de la restauration à partir de l'image créée :

  1. Montez l'image en utilisant

    # hdiutil attach /tmp/backup_image.dmg -nomount
  2. Démarrez la restauration, soit en :

    • Utilisez l'application "Disk Utility", en restaurant à partir de la partition de l'image de sauvegarde vers la partition de votre disque (celle de Sierra). fonctionne juste en restaurant également la partition de récupération : vous verrez deux étapes de restauration/vérification)
    • Utilisez asr de manière similaire à celle décrite ci-dessus :

      $ asr restore --source /dev/disk1s2 --target /dev/disk0s4 --erase --noverify

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