Problème redimensionné racine

Bonjour,

Je souhaiterai un petit coups de main pour redimensionnée une partition Racine en ligne de commande.

Comment dois-je m’y prendre ?

sda      8:0    0   10G  0 disk
├─sda1   8:1    0    8G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]

dev/sda1          7,9G    817M  6,6G  11%

$fdisk -l
Disque /dev/sda : 10 GiB 
Périphérique Amorçage    Début      Fin Secteurs         Taille  Id     Type
/dev/sda1    *            2048      16779263 16777216     8G     83     Linux
/dev/sda2             16781310      20969471  4188162     2G     5      Étendue
/dev/sda5             16781312      20969471  4188160     2G     82     partition d'échange Linux / Solaris

Merci d’avance.

Agrandir ou réduire ?

Bonjour,

Je souhaite dans un premier temps diminuer l’espace de la racine pour créer une partition .

L’idée est la suivant:

  • Diminuer la partition
  • Créer une partition EXT4
  • Monter la partition EXT4 avec comme point de montage /tmp

Quel est le type de système de fichiers dans la partition sda1 ? Si c’est ext4, il n’est pas possible de le réduire lorsqu’il est monté, et comme il s’agit du système de fichiers racine qui ne peut être démonté lorsque le système tourne, il faut démarrer depuis un autre système.

En ligne de commande, il faut d’abord réduire le système de fichiers avec la commande appropriée (resize2fs pour ext4) à une taille inférieure ou égale (mais surtout pas supérieure d’un seul octet) à la future taille de la partition. Ensuite on peut redimensionner la partition avec parted en utilisant sa commande resizepart. Attention aux erreurs d’arrondi ou aux différences de valeur de préfixes multiplicateurs Gio/Go.

Ne surtout pas créer la nouvelle partition avant d’avoir vérifié que sda1 réduite se monte correctement.

Bonjour @PascalHambourg,

Le système de fichier est EXT4, ensuite je passe par Live en mode rescue CD.

Si j’ai bien compris en diminuant l’espace système occupé par celui-ci y’a de l’espace libre dans la partition puis on diminue la partition et on créer ensuite une nouvelle partition .

Est ce bien dans ce sens que vous vouliez dire ?

J’aimerai une taille de 5 Go (Le system prend 3 Go)

resize2fs /dev/sda1

« Diminuer l’espace système », ça ne veut rien dire. Qu’est-ce qui n’est pas clair dans « réduire la taille du système de fichiers » ?

Bonjour @PascalHambourg,

Je suis pas un expert, j’aimerai un petit exemple de commande si tu veux bien car je m’y perds un peu.

Sa fait des heures que je cherche .

Merci d’avance

Pour quelqu’un qui n’est pas sûr de lui, je recommande d’utiliser Gparted plutôt que la ligne de commande. Gparted redimensionne en même temps la partition et son contenu.

En ligne de commande, il y a deux méthodes :

  1. On calcule les nouvelles taille et position de fin au secteur près pour qu’elles correspondent exactement.

  2. On prend une grosse marge en réduisant beaucoup plus le système de fichiers que la partition, et on ré-ajuste ensuite le système de fichiers à la nouvelle taille de la partition. On va plutôt faire ça.

Actions :

fsck -f /dev/sda1 # exigé par resize2fs avant de réduire
resize2fs -p /dev/sda1 4G # réduire le système de fichiers à 4 Gio
parted /dev/sda resizepart 1 5Gi # déplacer la fin de la partition à 5 Gio du début du disque (donc redimensionner à 5 Gio - la position de début de la partition, 1 Mio)
resize2fs /dev/sda1 # ajuster le système de fichiers à la nouvelle taille de la partition

Note : le « G » de resize2fs est le « Gi » de parted (giga binaire 2^30). Le « G » de parted est le giga décimal (10^3, légèrement inférieur). fdisk mélange joyeusement les deux, affichant tantôt « Gi » et tantôt « G » pour le giga binaire.

Bonjour @PascalHambourg,

Pour la commande fsck, tu as peut être tronquer la commande car elle existe pas.

Ensuite je suis ici pour apprendre aussi.

J’ai procéder comme ceci:

e2fsck -f /dev/sda1 # Vérifier la partition 2097152 Blocks.
resize2fs -p /dev/sda1 4G # 1048576 Blocks.
Calcul de l’espace système : 1048576*4/1024/1024 (1,5 G) <= tu me dit si je me trompe sur ce point
parted /dev/sda1 resizepart 1 5Gi #
resize2fs /dev/sda1 #

La partie « parted /dev/sda1 resizepart 1 5Gi » est pas clair.

Je comprends que ma partition est au début mais l’histoire « déplacer la fin de la partition à 5 Gio du début du disque » ?

Ca veux juste dire que la partition fera 5 Go depuis le début du disque ?


Fdisk m’indique aucun secteur libre disponible.

J’aimerai maintenant créer une partition avec l’espace récupérer . Peux tu m’expliquer.

Si, elle existe. fsck fait partie du paquet util-linux.

Je ne comprends pas ce calcul. Et une fois de plus, « espace système » ne veut rien dire.

Il y avait une erreur dans mon message précédent, je l’ai corrigé.

Non, ça veut dire que la position de la fin de la partition sera à 5 Gio du début du disque (et pas à 5 Gio du début de la partition qui est à 1 Mio du début du disque). On n’indique pas la taille mais la position de fin. On peut trouver ça stupide mais c’est ainsi que la commande resizepart de parted fonctionne.

Bonjour,

Dans ce cas présent, la partition sera du secteur 1 (0 non attribuables) à ( 20971520(510241024*4)
Ensuite l’espace « Libre » devra être attribuer puis formater. Et pour terminer monter sur le point de montage /tmp par exemple .

Est ce que j’ai bien compris ?

Non. Le début de la partition ne change pas et reste au secteur 2048 (1 Mio).

Je ne comprends pas ce calcul.

Bonjour,

Je penses avoir réussi.

Maintenant , je vais voir pour faire en sorte d’avoir les partitions nécessaire pour le CIS Benchmark.

[SOUS DEBIAN] Listes les espaces

df -h

[SOUS LIVE CD (Rescue Mode)]

Contrôle de la partition : e2fsck -f /dev/sda1

Redimensionne le système : resize2fs /dev/sda1 3G

Supprime la partition sda1: fdisk /dev/sda > d > 1 > p > w

D: Delete partition
N° de partition: 1
P: Afficher la liste des partitions
W: Ecrire dans la table des partitions et quitter fdisk

Création de la partition sda1: fdisk /dev/sda

n: add a new partition
Type de partition: Primary ( p ) ou Logical (l)
N° de partition: 1
Secteur de début: 2048
Secteur de Fin: +3G
Est ce que la partition 1 contient une signature EXT4 ? yes
p: Afficher les partitions


Création de la partition sda3 : fdisk /dev/sda

n: add a new partition
Type de partition: Primary ( p ) ou Logical (l)
N° de partition: 3
Secteur de début: Entrer
Secteur de Fin: Entrer (Prendra toute l’espace disponible)
p: Afficher les partitions
W: Write table to disk

Formatage de la partition EXT4: mkfs.ext4 /dev/sda3

Résultat:

Partition sda1: /dev/sda1 : 3 Go
Partition sda3: /dev/sda3

Contrôle de la partition sda1 : e2fsck -f /dev/sda1

Montage de la partition:
umount /tmp
mount /dev/sda3 /mnt
df -h | grep "sda3"

Montage de la partition: /dev/sda3 /tmp tmpfs defaults,noexec,nosuid,nodev 0 0

Le montage de la partition tmp est cf au directive CSI Benchmark Debian 10. (Voir si c’est bien ext4 par contre)

Plusieurs erreurs et maladresses.

L’utilisation de fdisk pour redimensionner une partition en la supprimant et en la recréant est risquée. D’une part il faut la recréer exactement à la même position de début (premier risque d’erreur), et d’autre part quand fdisk détecte la signature de son contenu il propose de la supprimer (second risque d’erreur). Il faut impérativement répondre « non », contrairement à ce que tu indiques !

Il est inutile de quitter et relancer fdisk entre la suppression et la re-création de la partition.

Comme je l’ai déjà écrit, il faut vérifier la partition redimensionnée avant de créer et formater la nouvelle partition. Après, c’est trop tard pour corriger une éventuelle erreur.

L’identification de la partition par son fichier spécial de périphérique /dev/sda3 dans /etc/fstab n’est pas fiable. Le nom du disque est susceptible de changer à chaque démarrage. C’est pourquoi on utilise plutôt des identifiants stables et persistants comme l’UUID ou le LABEL du système de fichiers (à condition que ce dernier soit suffisamment distinctif, et pas un nom commun comme « tmp »)

D’autre part, la ligne que tu indiques ne monte pas la partition /dev/sda3 sur /tmp mais un système de fichiers temporaire en mémoire (tmpfs) dont la taille par défaut est la moitié de la RAM. Note aussi que l’option de montage « noexec » sur /tmp est incompatible avec certains programmes.

Par curiosité, quel est la raison de cette séparation de /tmp ?

Bonjour,

Je suis sur une VM disposant d’un snapshoot avant toute les manipulations. (Hyperviseur Proxmox)

Pour la séparation /tmp, je veux apprendre c’est tout.

Tes commandes avaient pas marcher .

Au lieu de te contenter de dire qu’elles n’ont pas marché, tu aurais pu rapporter les retours de ces commandes afin que je puisse les corriger.

Salut @PascalHambourg,

Ce sont pas des reproches mais sa m’énerve de pas réussir, j’ai lu pas mal d’article et aucun ma permis de résoudre mon problème.

J’aimerai avancer dans mon projet, mais j’y arrive pas sur ce point.

df -h

/dev/sda1 18G 816M 16G 5% /

Fdisk:

/dev/sda1 * 2048 37750783 37748736 18G 83 Linux


Commande 1 e2fsck -f /dev/sda1
Commande 2: resize2fs -p /dev/sda1 4G
Commande 3 parted /dev/sda resizepart 1 5Gi
Commande 4 resize2fs /dev/sda1
Commande 5 e2fsck -f /dev/sda1
Résultat: OK (KO en faisant jusqu’à la commande 4)

Note: Sa à corriger le problème de boot, la VM démarre

df -h

/dev/sda1 4,8G 804M 3,8G 18% /

Fdisk:

/dev/sda1 * 2048 10485760 10483713 5G 83 Linux

Création de la partition sda3 :
fdisk /dev/sda (New partition, Partition 3)
mkfs.ext4 /dev/sda3

Montage de la partition :

umount /tmp;
mount /dev/sda3 /tmp;

df -h / fdisk -l

/dev/sda3 13G 41M 13G 1% /tmp
/dev/sda3 10487808 37752829 27265022 13G 83 Linux

FSTAB

/dev/sda3 /tmp ext4 defaults,noexec,nosuid,nodev 0 2

Reboot du pc

ls -l /tmp/

total 8
drwx------ 3 root root 4096 août 22 22:07 namespace-dev-IFaQ6f
drwx------ 3 root root 4096 août 22 22:07 systemd-private-e71e2ce9f2f34b6c9d44bb0702ccddeb-systemd-timesyncd.service-S2mMrg

Tous semble marcher. Est ce bon as ton avis ?

C’est-à-dire ?

Qu’est-ce qui a corrigé quel problème de boot ?

Ce n’est pas la commande ls exécutée après le reboot qui permet de le voir. Que /tmp soit utilisé comme un répertoire normal ou comme un point de montage ne se voit pas de cette façon.

Salut,

Pour le problème de boot KO, il se présentait d’un écran noir avec le tiret _ qui clignote qui bloquait le démarrage du système. (il Bouclait)

La solution de contournement, il suffit de refaire une vérification de la partition sda1 à la fin puis reboot.

e2fsck -f /dev/ sda1

Résultat du partitionnement

image

Lorsque je vérifie le montage, je vois que c’est bon . (13 Go créer, 13 Go monter et disponible)

image

image


Information sur le montage:

Volume:

/dev/sda3 (J’utilise cet méthode)
**Point de montage: **
/tmp

Options :

  • defaults: Equivalent à rw,suid,dev,exec,auto,nouser,async
  • noexec Refuse l’exécution de binaire sur la partition
  • nosuid : Ignore les bits setuid/setgid (Ne contient pas les fichiers des utilisateurs)
  • nodev Ignore les droits d’exécution
  • Dump = 0 Pas de sauvegarde du système utilisé par DUMP
    PASS= 2 Autres partitions Linux

Observation: Le paramètre defaults peut être remplacer par rw pour une meilleur écriture.

La commande ls me permet de voir si des fichiers sont présents dans la partition, pour vérifier que le système utilise ma partition uniquement.

Seulement le tiret ou avec du texte avant ?
A quel stade du démarrage ? Avant l’affichage de GRUB ou après ?

Non, la commande ls te permet de voir si des fichiers sont présents dans le répertoire /tmp, mais pas s’ils sont sur la partition racine, la nouvelle partition sda3 ou un tmpfs monté sur /tmp. Ce sont les commandes comme mount ou df qui permettent de voir si sda3 est monté sur /tmp.

PS : pas besoin d’utiliser grep ou cat inutilement.

grep /tmp /etc/fstab # pas besoin de cat
df -h /tmp # pas besoin de grep