5 votes

L'équivalent en ligne de commande de Disk Utility, qui n'est pas diskutil, pour obtenir l'UUID

Dans le prolongement de la réponse à la question Pouvez-vous faire en sorte qu'OSX ne monte que certaines partitions lorsque vous connectez un disque dur externe ? Tous les sites que j'ai vérifiés ( CNET , OSXDaily, Fils de discussion de l'assistance Apple ) disent que vous devez utiliser l'Utilitaire de disque (ou la ligne de commande diskutil info /dev/disk<X>s<Y> ) pour trouver l'UUID.

Existe-t-il un équivalent en ligne de commande qui me donne cette information, qui n'est pas diskutil ? En particulier, un qui fonctionnera en mode mono-utilisateur ?

Pourquoi diskutil ne fonctionne pas

Sur mode utilisateur unique (au moins sur Mountain Lion) après l'exécution :

/sbin/fsck -fy
/sbin/mount -uw /

en cours d'exécution :

diskutil info disk0s5

donne l'erreur suivante

Unable to run because unable to use the DiskManagement framework.
Common reasons include, but are not limited to, the DiskArbitration
framework being unavailable due to being booted in single user mode.

Contexte

Mon problème est que j'ai une partition mourante sur mon disque interne, qui ne contient qu'un système d'exploitation Snow Leopard obsolète, mais qui ralentit mon Mac (de manière insupportable), comme le signale (à plusieurs reprises) la console :

kernel: disk0s5: I/O error.

Je ne démarre plus dans Snow Leopard mais dans Mountain Lion qui se trouve sur un disque FireWire externe. Je voudrais donc laisser la partition Snow Leopard non montée, en utilisant la ligne suivante

UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none hfs rw,noauto

sur /etc/fstab .

Cependant, pour obtenir l'UUID de la partition défectueuse, je dois ouvrir Disk Utility et monter la partition défectueuse, ce qui est un processus torturément lent (il faut environ vingt minutes à Disk Utility pour s'ouvrir).


TL;DR - Puis-je obtenir l'UUID de la partition interne, lors du démarrage en mode mono-utilisateur d'un OS stocké sur une partition qui se trouve sur un disque FW externe ?

5voto

janm Points 2812

Mise à jour :

IOReg donne l'UUID de la partition, et non l'UUID du volume, car il opère sous la couche HFS. J'avais supposé à tort que l'UUID du périphérique était nécessaire plutôt que l'UUID du volume car il se substituait à un noeud de périphérique. Pour obtenir l'UUID du volume, utilisez hfs.util . Par exemple :

/System/Library/Filesystems/hfs.fs/Contents/Resources/hfs.util -k disk0s3

Remplacez "disk0s3" par l'"identifiant de périphérique" de votre volume. Ceci est différent du "nœud de périphérique" (qui est "/dev/disk0s3" dans ce cas).

Détails originaux d'IOReg :

Vous pouvez exécuter ioreg -c IOMedia -r pour afficher l'arborescence des périphériques de disque de votre système. Cela devrait donner une quantité gérable de sortie (par rapport à ioreg -l qui montre tout).

Si vous voulez juste extraire les UUIDs, vous pouvez ioreg -c IOMedia -r | grep UUID mais l'inconvénient est que vous perdez le contexte.

Le site diskutil est intéressante ; elle dépend manifestement de démons qui ne fonctionnent pas en mode mono-utilisateur.

1voto

klanomath Points 63400

Installer GPT Fdisk . Après avoir démarré en mode utilisateur unique, entrez :

/sbin/fsck -fy
/sbin/mount -uw /
/usr/local/bin/gdisk

En mode interactif, saisissez d'abord le nœud du périphérique (par exemple, disk0) :

/dev/disk0

puis i pour afficher des informations détaillées sur une partition.
Enfin, entrez le numéro de la partition, par exemple 5 pour obtenir le GUID unique de la partition :

Partition GUID code: 53746F72-6167-11AA-AA11-00306543ECAC (Apple Core Storage)
Partition unique GUID: 7AA0FD56-01BC-4EA1-8CE2-7972E63A2A6D
First sector: 409640 (at 200.0 MiB)
Last sector: 133955543 (at 63.9 GiB)
Partition size: 133545904 sectors (63.7 GiB)
Attribute flags: 0000000000000000
Partition name: ''

1voto

Greenonline Points 897

Par ailleurs, je viens de découvrir qu'il n'est pas nécessaire de faire tout cela, car, au lieu d'utiliser l'UUID, vous pouvez utiliser la méthode de l'UUID. étiquette de volume à la place, dans /etc/fstab comme ça :

LABEL=Archive none hfs rw,noauto 0 0

Cette méthode a l'avantage de :

  1. étant beaucoup plus simple à mettre en œuvre, et plus important encore ;
  2. L'étiquette du volume ne change pas, alors que les UUIDs changent lorsque vous branchez d'autres disques FW ou USB. Donc, si vous utilisez des UUIDs dans /etc/fstab alors vous devez mettre à jour ces UUIDs pour les disques non montés, en /etc/fstab chaque fois que vous modifiez la configuration du disque.

Remarque : L'utilisation de la LABEL sur /etc/fstab Il se peut que cela ne fonctionne pas toujours (par exemple, si le disque est très endommagé et que l'étiquette ne peut pas être lue). Dans ce cas, vous serez obligé d'utiliser l'UUID.

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