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 :
-
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
-
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
-
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
-
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
-
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.
-
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
-
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.
-
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
-
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
-
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
-
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
-
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
-
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
-
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 :
-
Montez l'image en utilisant
# hdiutil attach /tmp/backup_image.dmg -nomount
-
Démarrez la restauration, soit en :
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
'sresizeVolume
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 commandegpt
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, alorsasr
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.