Pages : 1
#1 Le 20/01/2020, à 22:51
- zell25
[RESOLU] Commande growpart
Bonjour à tous,
j'ai un soucis sur lequel je galére depuis 2 jours avec la commande growpart sur un ubuntu 18.04.3 lts.
Lorsque je fait la commande sudo growpart /dev/sda 4, ca me retourne l'erreur suivante:
/usr/bin/growpart: 242: /usr/bin/growpart: Illegal number: 120034123776 octets,
J'ai pourtant bien installé le paquet cloud-guest-utils et cloud-init mais rien n'y fait.
Mon disque est un ssd de 120Gb qui a plusieurs partitons, voici ce que me retourne fdisk:
Disque /dev/sda : 111,8 GiB, 120034123776 octets, 234441648 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 38FBB4CA-599B-4830-98A3-569D4F07445E
Périphérique Début Fin Secteurs Taille Type
/dev/sda1 2048 71679 69632 34M Données de base Microsoft
/dev/sda2 71680 75775 4096 2M Amorçage BIOS
/dev/sda3 75776 155647 79872 39M Système EFI
/dev/sda4 155648 14901247 14745600 7G Système de fichiers Linux
Est-ce que vous avez une idée ? le reste du ssd est aprés la partition sda4.
J'ai tenté une installation toute fraiche avec une seul partition sur la moitier du ssd et idem même problème...
Merci pour votre aide.
Dernière modification par zell25 (Le 21/01/2020, à 17:54)
Hors ligne
#2 Le 21/01/2020, à 01:45
- kamaris
Re : [RESOLU] Commande growpart
C'est un bug : le script /usr/bin/growpart parse la sortie de la commande sfdisk, en s'attendant à un certain format, mais il en trouve un autre (des espaces insécables pas au bon endroit).
J'ai un correctif pour ça, mais vérifions d'abord qu'on a la même version du script, au moins localement à la ligne 242 : donne le retour de
sed -n '239-242p' /usr/bin/growpart
Hors ligne
#3 Le 21/01/2020, à 07:39
- zell25
Re : [RESOLU] Commande growpart
Merci pour ta réponse, voici:
# Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
local _x
read _x _x _x _x disk_size _x sector_num _x < "$tmp"
sector_size=$((disk_size/$sector_num))
Hors ligne
#4 Le 21/01/2020, à 14:10
- kamaris
Re : [RESOLU] Commande growpart
En fait, le problème vient de la francisation de la sortie de sfdisk, qui change son format, en particulier en introduisant des espaces insécables.
Donc il existe une solution à ton problème sans modifier le script : tu fais précéder toutes tes commandes growpart de LC_ALL=C, pour tout passer en anglais ASCII.
Donc par exemple, pour ta commande plus haut, ça donne :
LC_ALL=C sudo growpart /dev/sda 4
Du coup, toutes les sorties de cette commande vont être en anglais, évidemment, mais c'est un moindre mal.
Ça vaut beaucoup mieux en tout cas que de mettre une rustine à un script dans /usr/bin…
---
PS : comme LC_ALL=C et sudo peuvent commuter dans la commande ci-dessus, pour éviter d'avoir à rajouter LC_ALL=C devant chaque commande growpart, tu peux définir un alias dans ton fichier .bashrc (situé dans ton home) :
alias growpart='LC_ALL=C growpart'
Le fichier .bashrc t'appartient et peut être édité dans n'importe quel éditeur de texte sans recourir à sudo, et tu peux mettre cet alias où tu veux (par exemple avec ceux déjà présents).
Note : cette modification ne prendra effet que dans les terminaux (en fait les shells) ouverts après elle.
Dernière modification par kamaris (Le 21/01/2020, à 14:40)
Hors ligne
#5 Le 21/01/2020, à 17:53
- zell25
Re : [RESOLU] Commande growpart
Merci pour tout, je viens de tester et mon script fonctionne nickel
J'ai pas pensé du tout le problème de conversion du à la langue...
Merci à toi en cas.
Hors ligne
#6 Le 21/01/2020, à 20:44
- kamaris
Re : [RESOLU] Commande growpart
On ne devrait pas avoir à y penser, c'est un bug.
J'ai créé un petit rapport de bug au cas où (https://bugs.launchpad.net/cloud-utils/+bug/1860479), mais c'est pas du tout sûr qu'il soit traité, et encore moins sûr que tu aies un correctif dans un avenir proche.
Mais de toutes façons, même si c'était corrigé, ça continuerait de marcher avec LC_ALL=C comme ci-dessus, donc tu peux ne pas t'en soucier.
Hors ligne