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