4 votes

J'essaie de formater une carte SD pour raspberry pi, mais je reçois une autorisation refusée.

J'essaie de formater ma carte SD sur un Mac (MacOS Mojave 10.14.6).

J'utilise un lecteur de carte relié à l'ordinateur et l'adaptateur de carte SD est en position déverrouillée. Ma carte SD est une Samsung Evo 32GB.

Voici à quoi ressemble le terminal, c'est un script archlinux modifié :

Deannes-MBP:~ dena$ SD_CARD=/dev/disk2s1
Deannes-MBP:~ dena$ echo "o p n p 1 +100M t c n p 2 w"| fdisk $SD_CARD
fdisk: /dev/disk2s1: Permission denied

J'ai également essayé ceci pour avoir un aperçu :

ls -l /dev/disk2s1
brw-r----- 1 root operator 1, 9 1 Mar 16:14 /dev/disk2s1

Pas sûr que ça aide.

Je suis totalement novice en la matière et j'ai peu de connaissances en informatique (notamment en matière de codage). J'ai regardé d'autres messages/problèmes en ligne, et j'ai essayé de souffler dans le lecteur de carte (quelqu'un a dit que cela aidait). Mais cela n'a rien donné.

Quand je regarde le partage et les permissions pour la carte SD, il est dit que vous avez un accès personnalisé.

Si quelqu'un a une idée de la manière dont je peux formater ce document, ce serait formidable.

2voto

David Anderson Points 30783

Vous trouverez ci-dessous une liste des problèmes liés à la procédure indiquée dans votre question.

  • Comme d'autres l'ont indiqué dans les commentaires et les réponses, vous devez faire précéder le fdisk avec sudo .
  • D'autres utilisateurs ont suggéré que le paramètre de sécurité devait être modifié. La version de MacOS utilisée pour vérifier cette réponse était Catalina version 10.15.3. Vous trouverez ci-dessous le paramètre des Préférences Système dans le volet Sécurité et Confidentialité. Sous Accès intégral au disque, l'application Terminal n'est pas cochée, comme indiqué ci-dessous. Sous Fichiers et dossiers, les éléments suivants ont été cochés pour le terminal.
  • Le site fdisk dans votre question n'est pas appliquée à un lecteur. L'identifiant disk2s1 peut représenter une partition, un conteneur, une session ou un volume. Bien que le fdisk La commande peut le permettre, mais il n'y a aucune raison logique de le faire. Le dispositif doit être de la forme /dev/diskN donde N est un nombre entier positif. Il faut s'assurer que l'on se réfère bien à la carte SD.
  • Le site fdisk peut être une commande interactive. Cela signifie que la commande peut exiger un texte lu à partir de l'entrée standard. Ce texte est souvent appelé commande d'entrée. Sous Linux, fdisk La valeur par défaut est interactive. Cependant, sous MacOS, fdisk ne le fait pas. Pour faire fdisk interactif sous MacOS, le e doit être incluse. Dans votre question, cette option a été omise.
  • Vous avez essayé d'envoyer les commandes d'entrée vers fdisk . Chaque commande individuelle était séparée par un espace ( ). Cependant, chaque commande aurait dû être séparée par un saut de ligne ( \n ). Fondamentalement, un saut de ligne équivaut à la saisie d'un return du clavier. De plus, la chaîne de caractères doit être entourée des caractères suivants $'' au lieu de "" .
  • Les commandes d'entrée à fdisk présentées dans vos questions seraient valables si le système d'exploitation était Arch Linux. Les commandes équivalentes qui seraient correctes sous MacOS sont données ci-dessous.

    erase
    print
    edit 1
    c
    n
    2048
    204800
    edit 2
    83
    n
    
    quit
    y

En corrigeant les erreurs ci-dessus, on obtient la commande ci-dessous. Ici, les commandes d'entrée ont été abrégées.

    echo $'er\np\ne 1\nc\nn\n2048\n204800\ne 2\n83\nn\n\n\nq\ny'|sudo fdisk -e /dev/disk2

Note : Dans la commande ci-dessus disk2 a été utilisé pour identifier la carte SD. Vous devrez peut-être utiliser un autre identifiant.

Voici la sortie qui devrait apparaître lors de l'exécution de la commande ci-dessus pour votre carte SD.

fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> fdisk:*1> Disk: /dev/disk2    geometry: 3891/255/63 [62521344 sectors]
Offset: 0   Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
fdisk:*1>          Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
Partition id ('0' to disable)  [0 - FF]: [0] (? for help) Do you wish to edit in CHS mode? [n] Partition offset [0 - 62521344]: [63] Partition size [1 - 62519296]: [62519296] fdisk:*1>          Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
Partition id ('0' to disable)  [0 - FF]: [0] (? for help) Do you wish to edit in CHS mode? [n] Partition offset [0 - 62521344]: [206848] Partition size [1 - 62314496]: [62314496] fdisk:*1> Writing current MBR to disk.

La première commande d'entrée était erase Par conséquent, le résultat ci-dessus contient principalement des zéros. Pour voir les résultats, vous devez entrer la commande suivante.

fdisk /dev/disk2

Après avoir entré la commande ci-dessus, vous devriez voir la sortie montrée ci-dessous.

Disk: /dev/disk2    geometry: 3891/255/63 [62521344 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C 1023 254  63 - 1023 254  63 [      2048 -     204800] Win95 FAT32L
 2: 83 1023 254  63 - 1023 254  63 [    206848 -   62314496] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

Ce raspberrypi.org site web offre des conseils lorsque certains messages d'erreur apparaissent. J'ai repris certains de ces conseils ci-dessous. Vous devrez remplacer diskN avec l'identifiant correct.

  • Si la commande rapporte Resource busy vous devez d'abord démonter le disque en utilisant la commande ci-dessous.

    sudo diskutil unmountDisk /dev/diskN
  • Si la commande rapporte Operation not permitted vous devez désactiver le SIP avant de continuer.

    Remarque : je recommande vivement de désactiver le protocole SIP en dernier recours.

  • Si la commande rapporte Permission denied la table de partition de la carte SD est protégée contre l'écrasement par MacOS. Effacez la table de partition de la carte SD en utilisant cette commande :

    sudo diskutil partitionDisk /dev/diskN 1 MBR "Free Space" "%noformat%" 100%

    Cette commande va également définir les autorisations sur le périphérique pour permettre l'écriture.

IMO, je crois que vous devriez essayer d'utiliser Arch Linux au lieu de MacOS. J'ai essayé d'installer le dernier Arch Linux dans une machine virtuelle VirtualBox. (VirtualBox est un produit gratuit). Cependant, je n'ai pas réussi à faire fonctionner la machine virtuelle avec le lecteur de carte SD intégré de mon iMac (21,5 pouces, fin 2013). Je n'ai pas eu plus de chance avec un lecteur de carte SD USB externe. Peut-être que je n'avais pas les bons paramètres ou qu'un matériel différent ferait la différence. De plus, je n'ai pas essayé d'utiliser le sudo vboxmanage internalcommands createrawvmdk ... pour exposer la carte SD à la machine virtuelle.

Au lieu d'une machine virtuelle, j'ai choisi d'essayer une version live d'Arch Linux. Ici, Arch Linux était capable d'accéder au lecteur de carte SD externe, mais pas au lecteur interne. Live signifie que vous créez une clé USB bootable d'Arch Linux. Une fois que vous avez démarré depuis le lecteur flash, vous pouvez entrer les commandes pour installer Arch Linux sur la carte SD. Le fichier ISO d'Arch Linux s'appelle archlinux-2020.03.01-x86_64.iso et provient de ce site web mais d'autres miroirs peuvent être trouvés ici .

Les instructions pour utiliser MacOS afin de créer la clé USB amorçable se trouvent à l'adresse suivante ici . Une image tirée de ce site est présentée ci-dessous.

Remarque : Mon iMac est équipé d'un clavier sans fil. Arch Linux n'a pas fonctionné avec ce clavier. J'ai dû recourir à un clavier filaire.

J'ai supposé que votre question venait d'un site web tel que celui-ci . Une image des instructions d'installation est présentée ci-dessous.

En testant, j'ai modifié les instructions ci-dessus pour que le fichier téléchargé soit stocké sur la carte SD. Après l'installation, ce fichier peut être supprimé. Pour stocker le fichier sur la carte SD, remplacez les commandes données à l'étape 5 par les commandes suivantes

cd root
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-4-latest.tar.gz
cd ..
bsdtar -xpf root/ArchLinuxARM-rpi-4-latest.tar.gz -C root
sync

0voto

Jose Chavez Points 645

Sur les versions récentes de MacOS il ne suffit plus d'avoir les privilèges de Root sous la forme par exemple de la commande sudo, vous avez testé selon les commentaires. Par défaut, l'utilisateur est protégé des programmes qui pourraient causer des problèmes avec le disque lui-même.

Afin d'obtenir l'autorisation correcte, vous devez procéder comme suit :

  1. Dans le menu Apple, ouvrez "Préférences système".
  2. Choisissez "Sécurité et confidentialité".
  3. Sélectionnez l'onglet "Confidentialité".
  4. Dans le menu de gauche, sélectionnez "Accès complet au disque".
  5. Cliquez sur l'icône "verrou" dans le coin inférieur gauche et entrez votre mot de passe.
  6. Cliquez sur l'icône "plus" pour ajouter à la liste.
  7. Choisissez d'ajouter /Applications/Utilitaires/Terminal à la liste.

Fermez maintenant votre application Terminal et redémarrez-la. Maintenant, le Terminal a des privilèges pour accéder aux disques complets.

Ensuite vous pouvez relancer votre commande fdisk, n'oubliez pas de la préfixer avec sudo :

sudo fdisk [rest of the command]

NOTE : N'oubliez jamais de vérifier et de revérifier que le disque que vous voulez manipuler est bien /dev/disk2s1 afin de ne pas manipuler le mauvais disque.

EVEN BIGGER NOTE : Il me semble que la commande que vous essayez d'exécuter est vraiment pour Linux. Cette commande ne fonctionnera pas avec fdisk sous MacOS.

La commande fdisk que vous avez fonctionne en automatisant un certain nombre de pressions de touches dans les menus de fdisks : "o p n p 1 +100M t c n p 2 w"

Ce qu'il réalise en réalité est le suivant :

  • Crée une table de partition DOS vide

  • Crée une nouvelle partition primaire numéro 1 de 100 Mo

  • Définit l'identifiant système de la nouvelle partition comme "W95 FAT32 (LBA)".

  • Crée une nouvelle partition primaire numéro 2 avec le reste de l'espace.

Vous pouvez faire de même avec l'outil MacOS fdisk, ou vous pouvez utiliser l'outil graphique DiskUtility pour faire de même. Notez que ce que fdisk appelle "table de partition DOS" est désigné par "MBR" dans Disk Utility.

DANS UNE AUTRE DIRECTION :

DavidAnderson dans les commentaires écrit que vous suivez vraiment ce guide pour installer ArchLinux sur un Raspberry Pi 4. Je ne peux pas savoir si cela est correct ou non - mais je pense qu'il ne peut pas s'agir de ce guide spécifique, car votre commande qui automatise les commandes fdisk n'est pas dans ce guide. Cependant, il semble probable que vous essayez de suivre un guide similaire pour installer ArchLinux sur un Raspberry Pi.

Si c'est le cas, je vous conseille d'utiliser un ordinateur Linux pour suivre les instructions, ou si ce n'est pas possible, alors installez VirtualBox ou similaire (VMware, Parallels, etc.) sur votre Mac et installez ArchLinux ici, afin de pouvoir suivre le guide à nouveau.

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