Redimensionnement partition en console

Bonjour a tous,

j’ai un petit serveur (un sheevaplug), qui demarre tres bien sur la nand interne. Seul souci, il manque un peu d’espace. J’ai trouvé un petit tutorial pour etendre le démarrage sur une carte SD ici : http://plug.maisondouf.fr/doku.php?id=sheevaplug:parametrage:nand-sd

Mais, me suis planté quand j’ai créé mes partitions, et je m’en suis rendu compte trop tard.

Est-ce qu’il y a un moyen de redimensionner directement, ou annuler la manip? (y’a pas beaucoup de commande, mais je suis assez nouveau sous linux)

Merci beaucoup

Tant que tu n’as pas redémarré, il y a des traces en /proc/partitions.
Tu ne devrais pas avoir besoin de repêcher ce partitionnement si tu t’es tenu aux opérations préconisées par le tuto.

Dis nous ce que tu penses avoir raté dans ces instructions.
Le partitionnement, le redémarrage, l’édition de /etc/fstab ? …

1-
préalablement créé 2 partitions ext2 vides de taille égale.
Il est conseillé de créer deux partitions ext2. Ces partitions peuvent être crées hors de ce système, par exemple sur un PC muni d’un lecteur de cartes SD et d’un OS linux, debian fait l’affaire. Si tu n’as pas réussi à les formater sur un système tiers, ça ne prête à aucune conséquence sur l’OS de support.
Crées ces partitions sur une autre machine que celle qui les recevra.

2-
mv /usr /usr.o
mv /var /var.o

À moins que tu les aies effacées en dépit des recommandations, tu disposes des sauvegardes de /var et /usr,
défaire

mv /usr.o /usr

mv /var.o /var

Je n’ai rien raté de ces instructions, cest au debut, quand j’ai créé la taille des partitions (que j’ai créée auparavant avec fdisk), j’ai oublié un 0 pour la taille de la premiere partition, et je ne m’en suis rendu compte qu’apres avoir tout fait.
La manip a tres bien marché, mais j’ai un /usr de 150Mo, et cest pas terrible.

J’ai redémarré apres, et j’ai effacé les sauvegardes a la fin. Mais vu que la manip a marché, elles sont sur la carte SD. C’est juste que je ne m’y connais pas suffisamment pour faire la manip inverse, et remettre /usr et /var sur la nand interne.

edit : et si je boote sur un liveusb avec gparted sur un ordi portable avec un lecteur de carte SD, ca pourrait marcher?

Oui … MAIS
Oui la sauvegarde pourrait se mener sur une autre machine MAIS le résultat demande corroboration.

Je ne me fierais pas à ton /usr (ou ce qu’il en reste …)
Combien de Mo mobilisait /usr avant ces manoeuvres ?
Tu n’aurais pas conservé un retour ancien de la commande
$ df -hT
( $ df -h , $ df sans options -h, -T)
afin de la comparer avec le retour de
$ df -hT
en l’état présent.
Une debian minimaliste sans aucun gras superflu dépasse 150 Mo dès l’installaion.
Ça m’étonnerait que tu aies casé 400 Mo sans compression dans une partition plate en ext2 de 150 Mo.

cp -fra /var/* /mnt/p0
cp -fra /usr/* /mnt/p1

Lors de la copie tu n’as pas eu de messages comme quoi la copie avait échoué par manque d’espace disque ?

Tu étais prévenu : il fallait garder l’oeil sur
$ df
avant/après et conserver les sauvegardes tant que l’incertitude planait.

Quand on n’a pas confiance en /usr , on est bon pour une restauration ou réinstallation en sauvegardant au préalable le contenu de /home qui, enfin une note positive, devrait être intact.

C’est pas 150Mo, cest 485Mo, et c’est le var (mais je sais pas du tout d’ou vient ce nombre) (et désole pour l’imprecision, javais inialement pas posté de chez moi)

sinon :

# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/root    ubifs    462M  273M  184M  60% /
tmpfs        tmpfs    251M     0  251M   0% /lib/init/rw
udev         tmpfs     10M  120K  9.9M   2% /dev
tmpfs        tmpfs    251M     0  251M   0% /dev/shm
tmpfs        tmpfs    485M  127M  333M  28% /var/run
tmpfs        tmpfs    485M  127M  333M  28% /var/lock
tmpfs        tmpfs    251M     0  251M   0% /tmp
/dev/mmcblk0p1
              ext2    485M  127M  333M  28% /var
/dev/mmcblk0p2
              ext2     30G  334M   28G   2% /usr

Et non, aucune erreur quand j’ai fait la manip, et tout fonctionne tres bien. Je manque juste de place sur une partition.

J’avais deja fait la manip une autre fois, avec le 15Go/15Go mais j’ai formaté depuis.

Et avant d’avoir fait la manip, mon df -hT etait a peu pres identique (sans les deux dernieres lignes forcément) (javais entre 100 et 200Mo de libre sur /dev/root)

Le retour de $ df -hT engage à plus d’optimisme. Les copies de /var et /usr n’ont pas pu échouer par manque d’espace disque.

La taille de /usr n’est pas de 150 Mo mais de 30Go dont 334 Mo sont occupés
alors que 28 Go sont libres, taux d’occupation 2 %, c’est-à-dire 98% d’espace exploitable.

Comment sauvegarder/restaurer
Tu pourrais rétrécir/élargir les partitions sans extraire les données par gparted, je te propose toutefois de faire une sauvegarde/restauration qui offre l’avantage d’être moins risquée et de stocker des sauvegardes en prévision de catastrophes futures.

Démarre un PC capable de lire les cartes SD sous linux.
La carte devrait prendre une dénomination classique à la /dev/sd[a,b,c,d,e…].
Repère le nom de la carte par sa taille, ses partitions, sa marque … en lançant un outil disque quelconque (fdisk -l, testdisk, (g)parted…)

Crée un point de montage pour le support qui stockera les sauvegardes
Ce support ne sera pas la carte SD qui abrite les /usr et /var, la carte devant être effacée pour retailler les partitions.

(#=droits de root)
Créer le point de montage pour les sauvegardes

mkdir /sauv

Monter le support de stockage

mount /dev/sda5 /sauv

(tu remplaces /dev/sda5 par la véritable dénomination)
S’assurer du montage :
$ df -hT
/sauv apparaît-il ? Sa taille est-elle suffisante ?( à la louche, minimum 400 Mo)

Créer le point de montage pour la carte SD

mkdir /sd-1

Monter la première partition

mount /dev/sde1 /sd-1

(tu remplaces /dev/sde1 par la véritable dénomination)
Se placer sur /sd-1 (opération à répéter pour la restauration)

cd /sd-1

S’assurer d’y être

pwd

Retour : /sd-1
En lister le contenu pour s’assurer qu’il s’agit de usr ou de var

ls

exemple de retour attendu pour /usr
$ ls /usr
/usr/:
bin lib local sbin src usr
doc include lib64 lost+found share

exemple de retour attendu pour /var
/var:
backups lib lock mail run state www
cache local log opt spool tmp

Créer une archive compressée tar+gzip sur /sauv du contenu “usr” sur la carte SD

tar cvzf /sauv/sd-1-usr.tgz ./*

Démonter le périphérique (pour pouvoir l’effacer)

umount /sd-1

Répéter pour /var en changeant le point de montage, la partition …

mkdir /sd-2

mount /dev/sde2 /sd-2

cd /sd-2

tar cvzf /sauv/sd2-1-var.tgz ./*

umount /sd-2

Taille tes partitions sur la carte SD par (g)parted, cfdisk, fdisk
Formate en ext2
Remonte les partitions nouvellement taillées et formatées.

mount /dev/sde1 /sd-1

mount /dev/sde2 /sd-2

Replace les données

cd /sd-1

tar xvzf /sauv/sd-1-usr.tgz

cd /sd-2

tar xvzf /sauv/sd-2-var.tgz

Assure toi de la place occupée
$ df -hT

Les lignes ajoutées à /etc/fstab se présentaient ainsi :
/dev/mmcblk0p0 /var ext2 defaults 0 0
/dev/mmcblk0p1 /usr ext2 defaults 0 0

Même pas besoin de retoucher /etc/fstab si tu reproduis l’agencement /dev/sd?1 et /dev/sd?2
D’après ce que j’entreperçois /dev/mmcblk0p0, blk0=premier disque, p0=première partition.
/dev/mmcblk0p1, blk0=premier disque, p1=seconde partition.

Merci pour les instructions détaillées.

Mais le seul ordi capable les cartes SD que j’ai de dispo et celui de mon travail, sous windows. Possible de faire tout ca depuis un live usb?

Oui, un live-cd le permettrait tout comme un live-usb.

Points à surveiller , encore et toujours les montages, les tailles …
$ mount
et
$ df
Il va falloir monter/démonter les partitions dans l’environnement live en regardant si les partitions sont montées en écriture.
Si les partitions sont en lecture seule, forcer l’écriture, option “rw”, pour stockage.
Les partitions de la carte SD devront aussi être montées en écriture, “rw”, au moment de replacer les données.

Montage, option rw pour écrire, remount pour remonter une partition montée par ailleurs( à la “bind”)

mount -o remount -o rw /dev/sde1 /mnt/point/de/montage

Démonter

umount /dev/sde1

Montage démontages successifs

Montage lecture seule pour récupérer le contenu de la carte SD
Montage en écriture "rw"d’une partition hors carte SD pour stocker les sauvegardes
Démontage des partitions de la carte SD pour tailler et formater les partitions
Montage en écriture “rw” des partitions de la carte SD pour y replacer les données.

Ok, tout s’est bien passé, merci de ton aide