J'ai eu un pi installé et fonctionnant bien pendant un certain temps (RPi - 1). Je voulais créer une image de RPi - 1 pour pouvoir charger une copie exacte sur mon 2e pi (RPi - 2). La carte SD dans RPi - 1 fait 4 Go (seulement environ la moitié est réellement utilisée) et la carte SD dans RPi - 2 fait également 4 Go. J'utilise Win32 Disk Imager pour créer une copie de RPi - 1 avec succès. J'ai ensuite formaté la carte SD pour RPi - 2 avec SD Formatter 4.0 (sous Windows 7). Cependant, lorsque j'utilise Win32 Disk Imager pour écrire l'image RPi - 1 sur la carte SD de RPi - 2, j'obtiens: "Pas assez d'espace sur le disque: Taille 7744512 Disponible: 7626752 secteurs Taille de secteur: 512"
Je sais que ce n'est pas une mauvaise image car je peux formater la carte SD pour RPi-1 et y réécrire l'image sans problème.
Qu'est-ce que j'oublie ici? Les cartes SD de 4 Go ne sont-elles pas toutes de la même taille ou varient-elles légèrement? Y a-t-il quelque chose que vous devez faire sur une toute nouvelle carte SD que j'ai manquée?
(RPi - 1 carte SD = Sandisk 4 Go // RPi - 2 carte SD = Kingston 4 Go)
Réponses:
En effet, toutes les cartes SD n'ont pas la même taille exacte. Vous devez réduire la partition pour l'adapter à la petite SD. J'ai moi-même eu un problème similaire. Ce que j'ai fait était d'avoir une SD séparée avec (dans mon cas) Raspbian. Et j'ai branché ma SD que je voulais redimensionner, en utilisant un lecteur de carte USB.
Avant de pouvoir réduire votre partition en toute sécurité, vous devez vous assurer qu'aucune donnée n'est présente à la fin de la suppression. Vous pouvez le faire avec
resize2fs -M -p /dev/sda2
(vous devez remplacer / dev / sda2 par le chemin correct vers le lecteur de carte USB et la partition linux que vous souhaitez redimensionner). Cela redimensionnera le système de fichiers à la plus petite taille possible. Vous pouvez en fait spécifier la taille exacte que vous voulez, mais cela implique un peu de calcul et de conversion des tailles en tailles de blocs et en secteurs, etc. Plus sûr et plus facile de ne pas le faire.Après cela, vous pouvez réduire la partion. Je pense que je l'ai utilisé
fdisk
pour cela. Obtenez la position de départ exacte de la partition, supprimez-la et recréez-la en utilisant la même position de départ, mais avec une taille plus petite.Enfin, vous devez à nouveau agrandir le système de fichiers pour occuper toute la partition en utilisant
resize2fs -p /dev/sda2
la source
e2fsck -f /dev/mmcblk0p2
(je réduis la deuxième partition de mmcblk0) pour vérifier la cohérence. Ensuite, j'ai été autorisé à courirresize2fs -M -p /dev/mmcblk0p2
comme suggéré.Je sais que c'est un vieil article, cependant, je viens d'avoir le même problème et je l'ai résolu en utilisant la méthode décrite ici http://www.aoakley.com/articles/2015-10-09-resizing-sd-images.php
la source
Vous feriez mieux de créer une archive tar du système de fichiers, car lorsque vous créez une image disque complète, vous copiez également les données supprimées. Lorsque vous supprimez un fichier, l'inode n'est pas lié mais les données réelles sont toujours sur le disque. Une image de disque complète utilisant
dd
copierait ces anciennes données (sauf si vous les écrasez d'abord avec/dev/zero
, ce qui prend un certain temps) mais une sauvegarde utilisanttar
ne copierait que les données actuelles.Ou ... vous pouvez faire comme le font de nombreuses distributions: réduire la taille de votre système de fichiers à quelque chose de sûr comme 1,9 Gio avant de créer votre image, et redimensionner pour remplir le disque après avoir restauré la sauvegarde.
Attention: je ne suis pas familier avec les outils d'imagerie Windows, je suis un utilisateur Linux.
la source
si vous utilisez linux, voici un petit script:
crédit: Sirlagz ( soooo désolé!)
la source
echo "$partinfo" | grep $fileSystemType | awk -F: ' { print substr($2,0,length($2) - 1) } '
" pour se débarrasser de B dans partstart.