Augmenter la taille d'une partition (sans perte de données)

Bonjour à tous.
J’ai un souci avec une carte SD. Elle est formaté comme ceci:

Disk /dev/mmcblk0: 7,36 GiB, 7902068736 bytes, 15433728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5452574f

Device         Boot Start    End Sectors  Size Id Type
/dev/mmcblk0p1 *     2048  43007   40960   20M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      45056 569343  524288  256M 83 Linux

Mais, comme vous pouvez peut être le voir, la partition 2 est largement sous dimensionnée.
Le problème, c’est … Quelle est utilisée (oui oui) pleine (tant qu’à faire) mais pas formatée (ce que me dit gparted)!!!
Me demandez pas comment cela ce fait, j’ai utilisé une image disque, fait un dd, mais j’ai pas été plus loin à l’époque.
A présent, comment pourrais-je augmenter la taille sans tout faire péter?

J’ai pensé à un dd du bloc 45056 au bloc569343 pour faire une image de la partition, puis sur la carte faire une vrai partition, et recopier les données, mais est-ce que la numérotation mmblkp2 va rester? Le boot en a besoin. Pareil, l’UUID ne doit pas changer, mais il me semble qu’on peut le forcer, ça permetra de le remettre d’origine.

A moins qu’il y ai une solution plus optimale?

Merci de vos avis.
Rémi.

Bonjour,

D’abord, il faut agrandir la partition.

sudo fdisk /dev/mmcblk0

Ensuite, tu peux faire option d, tu choisis la 2, puis tu fais option n, primaire, commence au bloc 45056 et finit à la fin.
Ensuite, tu choisi le type avec l’option t et tu définis la partition 2 au type 83.
Après, un petit

sudo resize2fs /dev/mmcblk0p2

et c’est fait.

Que contient cette clé USB bootable ?

Mouais, je me méfie des indications de gparted. Il vaut mieux vérifier directement.

file -sk /dev/mmcblkp2
blkid /dev/mmcblk*

Si la partition contient un système de fichiers qui peut être agrandi, alors il ne devrait pas y avoir de souci.

Et surtout, ne pas accepter la proposition d’effacer les méta-données existantes. C’est une des raisons pour lesquelles je n’aime pas cette méthode pour agrandir une partition. Je préfère utiliser la commande resizepart de parted.

1 J'aime

@PascalHambourg c’est de l’openwrt à la base. Mais je suis en train de migrer vers debian.
J’aimerai comprendre si c’est possible, déjà et comment faire, surtout.
La j’ai une nouvelle avec ma debian pour le routeur qui est quasi prète.
Déjà, y a quand même un truc que je ne comprend pas: comment il peut écrire sur la carte sd sans systeme de fichier défini. Mais je suis pas spécialiste (sinon, je ne poserais pas les questions).

Je teste demain pour ce que tu demande.

Effectivement, je n’aime pas non plus, c’est étrange de supprimer une partition alors qu’on juste redimensionner, mais je n’ai pas trouvé d’action de redimensionnement dans fdisk.
Je ne connais pas parted, mais si on peut redimensionner avec cet outil, c’est mieux que de supprimer et recréer la partition, avec les erreurs que ça peut provoquer.

Ce ne serait pas un système de fichiers en lecture seule du genre squashfs utilisé par les systèmes live ?

Pourquoi veux-tu agrandir la partition ? Je doute qu’on puisse mettre à jour OpenWRT vers Debian sans tout réinstaller.

Non non, je me suis mal exprimé! Je migre vers debian, dans le sens ou le hard reste le même, mais la carte sd change et sera plus grande.
Et je viens de tester, c’est effectivement du squashfs!

file -sk /dev/mmcblk0p2
/dev/mmcblk0p2: Squashfs filesystem, little endian, version 4.0, xz compressed, 2119022 bytes, 1156 inodes, blocksize: 262144 bytes, created: Sat May 16 18:32:20 2020\012-  (Lepton 2.x), scale 45581-61154, spot sensor temperature 0.000000, color scheme 9, maximum point enabled, calibration: offset -4823808512.000000, slope -13837040939189388813068069240832.000000\012- data

Mais, si c’est squashfs, ça ne sert à rien de vouloir l’agrandir puisque le système n’est accessible qu’en lecture.

Pas étonnant que gparted ne reconnaisse pas ce format et ne veuille pas agrandir la partition, il ne le gère pas. Cf. GParted -- Features
squashfs est comme ISO 9660, ce n’est pas un système de fichiers classique qu’on formate et dans lequel on peut écrire. On le crée une fois pour toutes.

De quel type de matériel s’agit-il, quelle architecture de processeur, firmware ?

Plus grande que quoi ?
Si tu changes la carte SD, pourquoi t’embêtes-tu à remettre la même image que sur l’ancienne au lieu de la partitionner et la formater directement pour Debian ?

Dans l’ordre:
1/ Le hard, c’est un Cubieboard2 (j’avais posté pour booter sur un cubieboard, à présent que j’ai réussi pour la version de test, je fais sur la version final)
2/ La carte sd pour le cubieboard2 sera de 32G.
3/ la carte que je tente de rectifier, effectivement, c’était openwrt, mais je voudrais comprendre pourquoi je ne pouvais rien faire, et comment j’aurais pu la modifier. J’aime comprendre.

Et donc, si squashfs c’est comme une sorte d’iso, il faut copier le contenu ailleurs, et le recréer plus grand?

Donc architecture ARM, à laquelle je ne connais rien. Je suppose que la partition n° 1 en FAT sert pour l’amorçage, comme sur Raspberry Pi.

Booter quoi ? OpenWRT ou Debian ?

Gparted ne peut pas redimensionner une partition d’un format qu’il ne gère pas. De toute façon, ça n’aurait aucun intérêt d’agrandir une partition contenant un système de fichiers squashfs puisqu’on ne pourrait rien y ajouter.

Oui. Mais dans quel but si tu veux remplacer OpenWRT par Debian ?
En fait je ne comprends pas pourquoi tu ne repars pas de zéro sur la nouvelle carte SD.

Je ne sais pas comment fait openwrt, mais il fait des mises à jour dans son squashfs, donc il écrit dedans.
C’est ça qui m’étonne.

Cela ne résout pas mon problème, mais j’ai contourné le problème : j’ai terminé l’installation sur ma seconde carte sd : debian stable armhf (ça a été un chemin de croix).

Mais si quelqu’un peut me dire comment faire pour squashfs, pour pas mourir bête…

Un début de piste sur le forum Openwrt :

Merci pour le lien!
Figure toi que je n’ai jamais trouve le forum openwrt…
(Pas assez cherché je pense)

J’imagine que cette organisation tordue est prévue à l’origine pour la mémoire flash des systèmes embarqués dont les partitions sont fixes. Sinon, ceux qui ont imaginé ça sont de grands malades. En revanche ça n’a aucune intérêt sur une carte SD ou une clé USB dans lesquelles on peut créer autant de partitions qu’on veut.

Je pense aussi que c’est un héritage des installation sur des support de type emmc.

Je suis un peu d’accord que c’est tordu, dans le sens où c’est en read only, mais a l’utilisation, on peut (et on doit) faire des mise a jour de paquets , donc ce n’est plus read only!
Après, faut voir l’historique… Il devait y avoir une bonne raison au début.

Non, rien à voir. C’est tordu dans le sens où on juxtapose deux systèmes de fichiers dans la même partition alors que ce n’est pas fait pour ça.