Je voulais préparer une distribution pour quelques amis.
Comme je n'avais rien d'autre à traîner, j'ai utilisé une carte SD de 16 Go.
J'ai commencé avec l'image Debian Weezy 2 Go par défaut et je n'ai fait aucun redimensionnement.
Maintenant, comme j'ai terminé, je voulais créer une image de ce que j'ai fait, mais j'obtiens un fichier de 16 Go, contenant à la fin 14 Go d'espace non partitionné (non partitionné et libre) .
[J'ai utilisé Windows // Win32DiskImager car je n'ai rien de gratuit à coller dans le rPI en ce moment]
Puis-je simplement tronquer le fichier image juste derrière l'espace partitionné et transférer la partie principale sur une carte plus petite, alors?
dd if=/dev/path/to/SD/card of=~/SpecialImage.img
, puis installez GParted et exécutezgparted ~/SpecialImage.img
. Une fois que GParted ouvre votre.img
fichier, redimensionnez simplement les partitions à votre guise! (Les deux commandes doivent être exécutées en tant que root, ellessudo su
devraient vous fournir ce dont vous avez besoin. Lorsque vous passez$
à un#
, vous êtes Root. Attention, il s'agit de l'équivalent Linux de Dieu.) les outils dont vous aurez besoin. L'utilisation de GParted rend tout plus simple et plus facile à réussir.Réponses:
J'ai finalement trouvé une ressource qui explique ma question.
Court:
Oui, la troncature est possible!
Résumé du processus:
Extraire les informations de partition de l'image en utilisant
fdisk
:Nous voyons que la partition a une taille d'environ 2,8 Go (5872026 * 512), le reste n'est pas partitionné .
Ainsi, tout ce qui se trouve après la fin de la partition peut être supprimé.
Cela se fera avec l'outil
truncate
. N'oubliez pas d'ajouter 1 au nombre de secteurs, car les numéros de bloc commencent à 0.Éditer:
Pour ceux -ci étant trop paresseux pour passer à Linux:
Fonctionne également sous Windows avec Cygwin de
fdisk.exe
ettruncate.exe
!Qu'est-ce que Cygwin?
Je peux citer: "Cygwin: Obtenez ce sentiment Linux - sur Windows" ( https://www.cygwin.com/ ).
Il s'agit d'un ensemble d'exécutables qui peuvent s'exécuter sous Windows, mais fournissent tous les programmes en ligne de commande que vous connaissez habituellement sous Linux. Cygwin peut prendre beaucoup de temps à installer si vous sélectionnez chaque package lors de l'installation, mais pour suivre cet exemple, assurez-vous simplement qu'en plus de la configuration par défaut, les packages
util-linux
(fdisk) etcoreutils
(truncate) sont également sélectionnés.En fonction de votre environnement, vous avez besoin de l' homme à ajouter
/usr/bin
et/usr/sbin
à votre$PATH
.la source
fdisk.exe
ettruncate.exe
?Je sais que c'est une vieille question, mais je voudrais montrer comment faire ce processus sur Mac, car ce n'est pas aussi simple:
fdisk
n'a pas l'-l
option, ettruncate
n'est pas installé par défaut:1. Étape 1: installez tronquer sur Mac OS X:
Vous avez besoin de MacPorts ou Homebrew pour cela. J'utilise MacPorts. Si vous n'en avez pas, allez-y et installez-les d'abord. Lien vers MacPorts
Maintenant, nous pouvons installer tronquer . Ouvrez votre terminal et saisissez:
Pour l'installation de Brew:
Cela devrait le faire.
2. Utilisez Disk Utilities pour monter notre IMG afin qu'il soit visible par la commande diskutil terminal.
Vous verrez dans un instant pourquoi nous avons besoin de cette étape. Ouvrez l'application Utilitaire de disque. Cliquez sur Fichier (dans la barre supérieure) -> Ouvrir l'image disque et sélectionnez votre fichier IMG.
3. Vérifiez la taille de la partition de l'IMG et son emplacement de montage.
Sur un terminal, saisissez:
Et cela devrait montrer quelque chose comme ça, quelque part à la fin:
Donc, nous voyons qu'environ 12 Go ne sont pas partitionnés. Nous devons les tronquer.
La raison pour laquelle nous avons besoin de cette commande est de vérifier où l'image disque est montée. Dans mon cas, c'est sous: / dev / disk3
4. Découvrez la taille réelle de la partition.
3,9 Go et 62,9 Mo sont des valeurs qui ne fonctionneront pas avec tronquer. Nous devons trouver les tailles de partition en octets.
5. Exécutez fdisk .
Dans votre terminal, exécutez cette commande:
Où X est le nombre que vous avez découvert à l'étape précédente. Cela devrait aboutir à quelque chose comme ceci:
6. Il est temps de tronquer !
Sur votre terminal,
cd
dans le répertoire où se trouve votre image. Puis écrire:FILE est bien sûr votre fichier.
SIZE est la taille en octets. Ce que j'ai fait, c'est d'ajouter à la colonne de taille de la
fdisk
commande, la colonne de départ et de multiplier par 512. Donc, dans mon cas, SIZE sera: 512 * (7553024 + 131072) = 3934257152 , ce qui fait environ 3,9 Go.Vous aurez besoin du début et de la taille de la dernière partition indiquée par
fdisk
. (Pas nécessairement le plus grand, mais celui à la fin du fichier IMG)7. (Facultatif) Testez facilement si l'IMG n'est pas corrompu.
Allez à nouveau dans l'Utilitaire de disque et essayez d'ouvrir le nouveau fichier IMG comme précédemment. S'il monte, vous pouvez également voir la nouvelle taille (plus petite) . S'il ne monte pas, quelque chose s'est mal passé. (Essayez peut-être d'augmenter la taille dans la
truncate
commande)J'espère que quelqu'un trouve cela utile!
la source
512*(Size+1)
cela ne fonctionne pas. Comme vous pouvez le voir, j'ai utiliséEnd
et nonSize
, car vous devez conserver les deux partitions s'il y en a plusieurs. Donc, utiliser7553024 + 131072
(+1
) est 100% correct!Win32DiskImager récent a en fait une option pour inclure uniquement les partitions allouées dans l'image disque. Cela fera le découpage en un seul clic.
la source
Juste quelque chose que j'ai récemment remarqué car je fais beaucoup de ces opérations Win32diskimg pour sauvegarder mes images RPI pour le déploiement. J'ai récemment commencé à tester le fstrim de "découpage" SD pour nettoyer les parties de la carte SD non utilisées pour le nivellement d'usure théorique. Je ne suis pas sûr de l'effet que cela aura, mais un effet secondaire a été lorsque j'ai imaginé la partition SD de 16 Go, puis utilisé 7zip pour la compresser. Je suis passé des 16 Go habituels à 9,5 Go pour maintenant un fichier de 2,5 Go. Je teste maintenant pour m'assurer que rien ne va mal, mais il semble que l'utilisation de TRIM pour marquer l'espace inutilisé comme 0 rend la compression d'image beaucoup plus efficace (ce qui est logique). Je voulais juste signaler à ce sujet était super facile à réaliser et sans étapes multiples.
la source