10.14 Mojave Redimensionnement d'une partition via le Terminal

Voici
Bloc de code:
pro-de-olivier-1:~ maolea$ df -H
Filesystem                                      Size   Used  Avail Capacity   iused               ifree %iused  Mounted on
/dev/disk1s1                                    256G   141G   114G    56%   1252840 9223372036853522967    0%   /
devfs                                           208k   208k     0B   100%       705                   0  100%   /dev
/dev/disk3s2                                    525G   155G   370G    30%     11158          4294956121    0%   /Volumes/Stockage 2
/dev/disk2s2                                    150G   122G    28G    82%   1219804          4293747475    0%   /Volumes/High Sierra
/dev/disk2s4                                    374G   313G    61G    84%     24078          4294943201    0%   /Volumes/Stockage
/dev/disk4s5                                    449G   448G   670M   100%     38845          4294928434    0%   /Volumes/Clône Stockage
/dev/disk5s1                                    239G    54G   185G    23%    170907           181166185    0%   /Volumes/BOOTCAMP
map -hosts                                        0B     0B     0B   100%         0                   0  100%   /net
map auto_home                                     0B     0B     0B   100%         0                   0  100%   /home
//[email protected]/Travaux%20en%20cours   3.8T   3.1T   784G    80% 745013879           191510633   80%   /Volumes/Travaux en cours
//[email protected]/Cloud%20Mariol         3.8T   3.1T   784G    80% 745013879           191510633   80%   /Volumes/Cloud Mariol
//[email protected]/Photos                 3.8T   3.1T   784G    80% 745013879           191510633   80%   /Volumes/Photos
/dev/disk4s2                                    551G   376G   175G    69%   2920554          4292046725    0%   /Volumes/Clône Mac OS
pro-de-olivier-1:~ maolea$
 
Afin qu'on y voie clair > je reposte ici la configuration du disque -->
Bloc de code:
/dev/disk4 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS Clône Mac OS            550.7 GB   disk4s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk4s6
   4:                  Apple_HFS Clône Stockage          448.6 GB   disk4s5

  • et l'occupation de ses 2 volumes montés principaux -->
Bloc de code:
Filesystem        Size   Used   Avail  Capacity    Mounted on
/dev/disk4s2      551G   376G   175G   69%         /Volumes/Clône Mac OS
/dev/disk4s5      449G   448G   670M   100%        /Volumes/Clône Stockage

  • ton volume du bas Clône Stockage => est plein comme un œuf : 448 Go d'occupation sur 449 Go = 670 Mo d'espace libre.
  • ton volume du haut Clône Mac OS => a de la marge : 376 Go d'occupation sur 551 Go = 175 Go d'espace libre.

Donc tu t'es dit : je vais rétrécir le volume Clône Mac OS de 150 Go (supposons) = possible depuis qu'il n'y a plus qu'une partition de secours. Et... je vais ajouter ces 150 Go => au volume du bas Clône Stockage = impossible strictement et absolument -->

- car on n'ajoute jamais d'espace libre à une partition "par en-haut" > mais "par en-bas". C'est une question de construction d'une partition : une partition a une tête et un pied. La tête de la partition (blocs de début) porte le système de fichiers (ici jhfs+) formateur du volume. Le pied de partition est libre de structure logicielle organisatrice du volume => la partition peut donc s'agrandir "par les pieds" :hilarious:. Et pas "par-dessus la tête" (où réside le système de fichiers) > car un système de fichiers ne gère de blocs qu'en numérotation descendante (à partir de son "super-bloc" ou 1er bloc de résidence de son header ou en-tête ; et pas en numérotation remontante (en prenant en charge des blocs antécédant la partition par leurs n° dans la table de partition).​

Conséquence : il faudrait que tu clones le contenu de Clône Stockage dans un autre volume > que tu supprimes ce volume > que tu rétrécisses Clône Mac OS à 400 Go > et que tu recrées le volume Clône Stockage avec la totalité de l'espace libre disponible => ce qui ferait 600 Go. Cela fait > rétroclonage du contenu sauvegardé => au nouveau volume Clône Stockage.

----------

Note : pour visualiser la numérotation des blocs (qui sont ordonnés arithmétiquement de 0 à n d'une façon linéaire orientée > laquelle n'a absolument rien à voir avec la représentation circulaire en camembert de l'Utilitaire de disque) > passe la commande :
Bloc de code:
sudo gpt show disk4

  • et poste le tableau.

Tu vas voir instantanément que la représentation graphique circulaire de l'Utilitaire de blocs est inductrice d'imaginations erronées > et qu'il n'y a réellement qu'une linéarité arithmétique des blocs gérée comme telle par la table GPT.
 
C'est exacteemnt ce que je me suis dit quand CCC m'a annoncé que "Clône Stockage" était plein :D

Bloc de code:
pro-de-olivier-1:~ maolea$ sudo gpt show disk4
Password:
       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  1075488280      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1075897920     1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1077167456   876095528      4  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1953262984      262151       
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header

On peut supprimer "Clône Stockage" sans le clôner, je ferais une nouvelle sauvegarde une fois les partitions redimensionnées.
 
Tu peux voir à la colonne "start" => le arithmétique du bloc qui constitue le bloc de départ de telle ou telle partition.

- et à la colonne "size" => l'extension numérique (en nombre arithmétique de blocs de 512 octets ici) des partitions.​

Bref : un ordre linéaire (arithmétique) du bloc n°0 (1er bloc) => au bloc n°1953525168 (dernier bloc) > qui n'a rien à voir avec une géométrie circulaire comme l'affichage de l'Utilitaire de disque le laisse imager de façon erronée. En induisant des imaginations de repartitionnement circulaire absolument interdit par la linéarité arithmétique de la numération des blocs.

----------

Repasse une commande :
Bloc de code:
diskutil list disk4

  • et poste la distribution actuelle du disque => que je sois sûr des index de partitions.
 
Effectivement c'est trompeur avec l'Utilitaire disque.

Mais, sauf si je me trompe, si on créé deux partition d'un disque ou "P1" fait 600 go et "P2" 400go avec chacuns des données dessus. Il est possible via l'utilitaire disque de transféré de l'espace disque de P1 vers P2, ce qui serait le cas de figure ici ? A moins que le fait de faire une troisième partition pause problème lorsqu'on efface celle du milieu comme j'ai fait.

Bloc de code:
pro-de-olivier-1:~ maolea$ sudo gpt show disk4
Password:
       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  1075488280      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1075897920     1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1077167456   876095528      4  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1953262984      262151         
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header
pro-de-olivier-1:~ maolea$ diskutil list disk4
/dev/disk4 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS Clône Mac OS            550.7 GB   disk4s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk4s6
   4:                  Apple_HFS Clône Stockage          448.6 GB   disk4s5
pro-de-olivier-1:~ maolea$
 
Passe la commande (copier-coller) :
Bloc de code:
diskutil eraseVolume free null disk4s5 ; diskutil resizeVolume disk4s2 400g jhfs+ "Clône Stockage" 0b

  • la commande supprime la partition du bas (Clône Stockage) > rétrécit la partition du haut (Clône Mac OS) à 400 Go > et crée une partition de 600 Go environ avec un volume Clône Stockage. Ce qui va donner lieu à des déplacements sur les blocs de la partition de secours.

Poste le retour intégral (en principe la nouvelle distribution du disque devrait être automatiquement affichée à la fin).
 
Ca m'impressionne toujours autant :)

Ca me semble parfais tout ça :up:

Bloc de code:
pro-de-olivier-1:~ maolea$ diskutil eraseVolume free null disk4s5 ; diskutil resizeVolume disk4s2 400g jhfs+ "Clône Stockage" 0b
Started erase on disk4s5 Clône Stockage
Unmounting disk
Finished erase on disk4
Resizing to 400000000000 bytes and adding 1 partition
Started partitioning on disk4s2 Clône Mac OS
Verifying the disk
Verifying file system
Volume was successfully unmounted
Performing fsck_hfs -fn -x /dev/rdisk4s2
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume Clône Mac OS appears to be OK
File system check exit code is 0
Restoring the original state found as mounted
Resizing
Shrinking file system
Copying booter
Modifying partition map
Initialized /dev/rdisk4s4 as a 558 GB case-insensitive HFS Plus volume with a 49152k journal
Mounting disk
Finished partitioning on disk4s2 Clône Mac OS
/dev/disk4 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS Clône Mac OS            400.0 GB   disk4s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk4s3
   4:                  Apple_HFS Clône Stockage          599.2 GB   disk4s4
pro-de-olivier-1:~ maolea$
 
Formellement résolu : 400 Go pour Clône Mac OS & près de 600 Go pour Clône Stockage.

- et la partition de secours a récupéré l'index disk4s3 => parce que bien sûr la partition originale disk4s6 (qui était déjà un clone de la primitive) --> a été supprimée > et que l'actuelle partition de secours est son clone (un clone de clone donc). Comme l'index disk4s3 se trouvait vacant (non attribué) => hop ! le kernel a pris en charge la partition de secours clone avec le 1er index disponible disk4s3. Et comme l'index disk4s4 se trouvait aussi vacant > après suppression du volume Clône Stockage disk4s5 => le nouveau Clône Stockage élargi se trouve indexé disk4s4 du plus proche index vacant.​

Tu n'as plus qu'à recharger le volume Clône Stockage via un clonage à rebours.
 
  • J’aime
Réactions: mariol66
Clône, clône de clône, je vois des clônes partout :eek::D en tout cas merci beaucoup, j'ai appris beaucoup de choses:up: En plus tout est impeccable et ordonné disk4s1 s2 s3 s4:merci: