Ajout article réduction taille disque VM avec Clonezilla
- Créer article blog détaillé sur réduction taille disque VM - Documenter procédure complète avec Clonezilla - Ajouter captures écran et exemples pratiques - Inclure traduction anglaise
This commit is contained in:
parent
f5b5e7ee74
commit
a0e8072aa9
7 changed files with 640 additions and 0 deletions
298
blog/2025-11-30-reduire-taille-disque-vm-clonezilla.md
Normal file
298
blog/2025-11-30-reduire-taille-disque-vm-clonezilla.md
Normal file
|
|
@ -0,0 +1,298 @@
|
||||||
|
---
|
||||||
|
slug: reduire-taille-disque-vm-clonezilla
|
||||||
|
title: Réduire la taille du disque d'une VM avec Clonezilla
|
||||||
|
authors: [tellserv]
|
||||||
|
tags: [proxmox, clonezilla, vm, stockage, linstor-drbd]
|
||||||
|
image: /img/blog/2025-11-30-reduire-disque-vm/clonezilla-logo.svg
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Comment migrer une VM vers un disque plus petit en préservant toutes les données avec Clonezilla, afin d'optimiser l'utilisation du stockage Linstor DRBD dans un cluster Proxmox.
|
||||||
|
|
||||||
|
<!--truncate-->
|
||||||
|
|
||||||
|
:::danger SAUVEGARDE OBLIGATOIRE
|
||||||
|
**Avant toute manipulation, créez une sauvegarde complète de votre VM** via Proxmox Backup Server ou `vzdump`. Cette opération manipule directement les disques et toute erreur peut entraîner une perte de données.
|
||||||
|
|
||||||
|
📚 Un article détaillé sur Proxmox Backup Server arrive prochainement.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Contexte
|
||||||
|
|
||||||
|
Ma VM Ubuntu de production du [Homelab actuel](/docs/homelab-actuel) dispose d'un disque de **400 Go** sur le stockage Linstor DRBD. Ce disque surdimensionné vient d'une époque où cet OS tournait directement en bare-metal, avant sa virtualisation.
|
||||||
|
|
||||||
|
### Problématique
|
||||||
|
|
||||||
|
Après avoir réduit la partition système à **130 Go** (laissant 270 Go d'espace libre non alloué), je souhaite :
|
||||||
|
1. Créer un nouveau disque de **135 Go** (130 Go de données + 5 Go de marge)
|
||||||
|
2. Migrer l'OS et les données vers ce disque plus petit
|
||||||
|
3. Libérer **265 Go** sur le stockage Linstor DRBD
|
||||||
|
|
||||||
|
### Objectif final
|
||||||
|
|
||||||
|
Réorganiser le stockage des hôtes Proxmox :
|
||||||
|
- **300 Go** : Linstor DRBD (stockage répliqué hautement disponible)
|
||||||
|
- **200 Go** : local-lvm (stockage local non répliqué)
|
||||||
|
|
||||||
|
## Prérequis
|
||||||
|
|
||||||
|
### Outils nécessaires
|
||||||
|
|
||||||
|
- **Proxmox VE** : Hyperviseur de virtualisation
|
||||||
|
- **Clonezilla Live ISO** : Outil de clonage de disques ([télécharger](https://clonezilla.org/downloads.php))
|
||||||
|
- **Linstor DRBD** : Stockage distribué (voir [article sur le stockage distribué Proxmox](/blog/stockage-distribue-proxmox-ha))
|
||||||
|
|
||||||
|
### État initial de la VM
|
||||||
|
|
||||||
|
Avant de commencer, vérifiez l'état actuel :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo fdisk -l /dev/sda
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sortie attendue** :
|
||||||
|
- Disque `/dev/sda` : **400 GiB**
|
||||||
|
- Partition système (`/dev/sda3`) : **~120 GiB** utilisés
|
||||||
|
- Espace libre : **~270 GiB** non alloué
|
||||||
|
|
||||||
|
:::tip Réduire la partition au préalable
|
||||||
|
Si vous n'avez pas encore réduit votre partition, utilisez `gparted` ou `resize2fs` pour réduire le système de fichiers **avant** de commencer cette procédure. Laissez environ 5 Go de marge par rapport à l'espace utilisé.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Étape 1 : Créer le nouveau disque dans Proxmox
|
||||||
|
|
||||||
|
Dans l'interface web Proxmox, accédez à la configuration de votre VM :
|
||||||
|
|
||||||
|
1. Sélectionnez votre VM
|
||||||
|
2. Onglet **Hardware**
|
||||||
|
3. Cliquez sur **Add** → **Hard Disk**
|
||||||
|
|
||||||
|
**Configuration du nouveau disque** :
|
||||||
|
- **Storage** : `linstor_storage` (ou votre pool Linstor DRBD)
|
||||||
|
- **Disk size** : `135 GiB`
|
||||||
|
- **Bus/Device** : `SCSI` (scsi1)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
:::info
|
||||||
|
Le nouveau disque apparaîtra comme `/dev/sdb` dans la VM. Le disque original `/dev/sda` reste en place pour le moment.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Étape 2 : Monter l'ISO Clonezilla
|
||||||
|
|
||||||
|
Toujours dans l'interface Proxmox :
|
||||||
|
|
||||||
|
1. Sélectionnez l'onglet **Hardware**
|
||||||
|
2. Double-cliquez sur **CD/DVD Drive**
|
||||||
|
3. **Storage** : `local` (ou votre stockage d'ISOs)
|
||||||
|
4. **ISO image** : Sélectionnez `clonezilla-live-3.3.0-33-amd64.iso`
|
||||||
|
|
||||||
|
**Configurer l'ordre de boot** :
|
||||||
|
1. Onglet **Options** → **Boot Order**
|
||||||
|
2. Activez **CD-ROM** et placez-le en **première position**
|
||||||
|
3. Cliquez sur **OK**
|
||||||
|
|
||||||
|
Démarrez la VM via **Console** → **Start**.
|
||||||
|
|
||||||
|
## Étape 3 : Démarrer Clonezilla en mode KVM To RAM
|
||||||
|
|
||||||
|
:::warning Problème de neige sans KVM To RAM
|
||||||
|
Si vous ne choisissez **pas** l'option **KVM To RAM**, l'affichage Clonezilla affichera de la neige (artefacts graphiques) rendant l'interface inutilisable.
|
||||||
|
|
||||||
|

|
||||||
|
:::
|
||||||
|
|
||||||
|
### Sélection du mode de démarrage
|
||||||
|
|
||||||
|
Au boot de Clonezilla :
|
||||||
|
|
||||||
|
1. **Première option** : Sélectionnez **Clonezilla live (KVM To RAM, VGA 1024x768)**
|
||||||
|
2. Appuyez sur **Entrée**
|
||||||
|
|
||||||
|
### Configuration initiale de Clonezilla
|
||||||
|
|
||||||
|
Suivez l'assistant de configuration :
|
||||||
|
|
||||||
|
<Tabs>
|
||||||
|
<TabItem value="language" label="Langue">
|
||||||
|
|
||||||
|
```
|
||||||
|
Choose language: [fr_FR.UTF-8] Français
|
||||||
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="keymap" label="Clavier">
|
||||||
|
|
||||||
|
```
|
||||||
|
Configurer le clavier: [Garder]
|
||||||
|
```
|
||||||
|
|
||||||
|
(ou choisissez votre disposition clavier)
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="mode" label="Mode Clonezilla">
|
||||||
|
|
||||||
|
```
|
||||||
|
Démarrer Clonezilla: [device-device]
|
||||||
|
```
|
||||||
|
|
||||||
|
Sélectionnez **device-device** (cloner disque vers disque)
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
## Étape 4 : Cloner le disque avec les options Expert
|
||||||
|
|
||||||
|
### Sélection du mode Expert
|
||||||
|
|
||||||
|
```
|
||||||
|
Mode: [Expert mode]
|
||||||
|
```
|
||||||
|
|
||||||
|
Choisissez **Expert mode** pour accéder aux options avancées nécessaires.
|
||||||
|
|
||||||
|
### Choix du type d'opération
|
||||||
|
|
||||||
|
```
|
||||||
|
Mode Expert: [disk_to_local_disk]
|
||||||
|
```
|
||||||
|
|
||||||
|
Sélectionnez **disk_to_local_disk** (cloner disque local vers disque local).
|
||||||
|
|
||||||
|
### Sélection des disques
|
||||||
|
|
||||||
|
1. **Disque source** : `/dev/sda` (400 GiB - ancien disque)
|
||||||
|
2. **Disque destination** : `/dev/sdb` (135 GiB - nouveau disque)
|
||||||
|
|
||||||
|
:::danger Vérifiez bien les disques
|
||||||
|
**Attention** : Sélectionner le mauvais disque effacera définitivement vos données ! Vérifiez la taille des disques avant de valider.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Options avancées cruciales
|
||||||
|
|
||||||
|
Clonezilla propose plusieurs options avancées. **Sélectionnez impérativement** :
|
||||||
|
|
||||||
|
#### Option 1 : `-k0` (Créer la table de partition proportionnellement)
|
||||||
|
|
||||||
|
```
|
||||||
|
-k, --create-partition-table
|
||||||
|
[×] -k0 Create partition table in target disk proportionally
|
||||||
|
```
|
||||||
|
|
||||||
|
**Explication** : Cette option recrée la table de partition en conservant les **tailles originales** des partitions (et non en les redimensionnant proportionnellement au nouveau disque).
|
||||||
|
|
||||||
|
#### Option 2 : `-icds` (Skip checking destination disk size)
|
||||||
|
|
||||||
|
```
|
||||||
|
-icds, --skip-check-dest-size
|
||||||
|
[×] -icds Skip checking destination disk size before creating partition table
|
||||||
|
```
|
||||||
|
|
||||||
|
**Explication** : Par défaut, Clonezilla refuse de cloner vers un disque **plus petit** que le disque source. Cette option désactive cette vérification.
|
||||||
|
|
||||||
|
:::tip Pourquoi ça fonctionne ?
|
||||||
|
Même si le disque de destination (135 Go) est plus petit que le disque source (400 Go), les **partitions utilisées** ne font que 130 Go. Clonezilla clone uniquement les partitions, pas l'espace vide non alloué.
|
||||||
|
|
||||||
|
L'option `-k0` garantit que les partitions conservent leur taille originale (130 Go) au lieu d'être redimensionnées proportionnellement au nouveau disque.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Lancer le clonage
|
||||||
|
|
||||||
|
1. Validez toutes les options
|
||||||
|
2. Clonezilla affiche un **résumé** des paramètres
|
||||||
|
3. Confirmez avec **`y`** puis **Entrée**
|
||||||
|
4. Confirmez une seconde fois pour démarrer le clonage
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Durée estimée** : Entre 10 et 30 minutes selon la quantité de données et la vitesse du stockage Linstor DRBD.
|
||||||
|
|
||||||
|
## Étape 5 : Configurer le boot sur le nouveau disque
|
||||||
|
|
||||||
|
Une fois le clonage terminé :
|
||||||
|
|
||||||
|
1. **Éteignez la VM** via Proxmox
|
||||||
|
2. Retournez dans **Hardware** → **Options** → **Boot Order**
|
||||||
|
3. **Désactivez** le CD-ROM (ou retirez l'ISO)
|
||||||
|
4. Assurez-vous que **scsi1** (nouveau disque 135 Go) est en **première position**
|
||||||
|
5. **Démarrez la VM**
|
||||||
|
|
||||||
|
### Vérification du boot
|
||||||
|
|
||||||
|
La VM devrait démarrer normalement sur le nouveau disque. Connectez-vous et vérifiez :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo fdisk -l
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Vérifications** :
|
||||||
|
- `/dev/sdb` (nouveau disque) : **135 GiB** ✅
|
||||||
|
- `/dev/sda` (ancien disque) : **400 GiB** (toujours présent)
|
||||||
|
- Partitions identiques sur les deux disques
|
||||||
|
|
||||||
|
### Test de stabilité
|
||||||
|
|
||||||
|
Testez votre VM pendant **24-48 heures** :
|
||||||
|
- Vérifiez que tous les services démarrent correctement
|
||||||
|
- Testez les applications critiques
|
||||||
|
- Surveillez les logs système (`journalctl -xe`)
|
||||||
|
|
||||||
|
## Étape 6 : Supprimer l'ancien disque
|
||||||
|
|
||||||
|
:::warning Attendez avant de supprimer
|
||||||
|
Ne supprimez l'ancien disque qu'après avoir **validé le bon fonctionnement** de la VM pendant au moins 24 heures. En cas de problème, vous pourrez revenir en arrière.
|
||||||
|
:::
|
||||||
|
|
||||||
|
Une fois la VM stabilisée :
|
||||||
|
|
||||||
|
1. **Éteignez la VM**
|
||||||
|
2. Dans Proxmox : **Hardware** → Sélectionnez **Hard Disk (scsi0)** (400 GiB)
|
||||||
|
3. Cliquez sur **Remove**
|
||||||
|
4. Confirmez la suppression
|
||||||
|
|
||||||
|
**Résultat** : 265 Go libérés sur le stockage Linstor DRBD ! 🎉
|
||||||
|
|
||||||
|
## Mon cas d'usage : Réorganisation du stockage Proxmox
|
||||||
|
|
||||||
|
Dans mon cas, cette opération m'a permis de libérer 265 Go sur le stockage Linstor DRBD. Avec cet espace récupéré, je peux maintenant repartitionner mes disques physiques sur les hôtes Proxmox pour optimiser l'utilisation du stockage :
|
||||||
|
|
||||||
|
### Avant
|
||||||
|
|
||||||
|
```
|
||||||
|
/dev/sda : 500 GiB
|
||||||
|
└── linstor_storage : 500 GiB (stockage répliqué)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Après
|
||||||
|
|
||||||
|
```
|
||||||
|
/dev/sda : 500 GiB
|
||||||
|
├── linstor_storage : 300 GiB (stockage répliqué HA)
|
||||||
|
└── local-lvm : 200 GiB (stockage local non répliqué)
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette réorganisation me permet de mieux utiliser les ressources :
|
||||||
|
- **Stockage répliqué** (Linstor DRBD - 300 Go) : Pour les VMs critiques nécessitant la haute disponibilité
|
||||||
|
- **Stockage local** (local-lvm - 200 Go) : Principalement pour mes VMs Kubernetes qui gèrent elles-mêmes le stockage distribué via Longhorn, ainsi que quelques VMs/LXC de test
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Clonezilla permet de migrer efficacement une VM vers un disque plus petit, à condition de :
|
||||||
|
1. **Réduire les partitions au préalable** pour laisser de l'espace libre
|
||||||
|
2. Utiliser le mode **KVM To RAM** pour éviter les problèmes d'affichage
|
||||||
|
3. Activer les options `-k0` et `-icds` en mode Expert
|
||||||
|
|
||||||
|
Cette technique m'a permis de libérer **265 Go** sur mon stockage Linstor DRBD, optimisant ainsi l'utilisation des ressources du cluster Proxmox et permettant une réorganisation plus flexible du stockage.
|
||||||
|
|
||||||
|
## Ressources
|
||||||
|
|
||||||
|
- [Documentation officielle Clonezilla](https://clonezilla.org/clonezilla-live-doc.php)
|
||||||
|
- [Proxmox VE Documentation - Storage](https://pve.proxmox.com/wiki/Storage)
|
||||||
|
- [Article : Stockage distribué avec Linstor DRBD sur Proxmox](/blog/stockage-distribue-proxmox-ha)
|
||||||
|
- [Documentation : Homelab actuel avec Docker Compose](/docs/homelab-actuel)
|
||||||
|
|
@ -0,0 +1,298 @@
|
||||||
|
---
|
||||||
|
slug: reduire-taille-disque-vm-clonezilla
|
||||||
|
title: Reducing VM Disk Size with Clonezilla
|
||||||
|
authors: [tellserv]
|
||||||
|
tags: [proxmox, clonezilla, vm, storage, linstor-drbd]
|
||||||
|
image: /img/blog/2025-11-30-reduire-disque-vm/clonezilla-logo.svg
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
How to migrate a VM to a smaller disk while preserving all data using Clonezilla, to optimize Linstor DRBD storage usage in a Proxmox cluster.
|
||||||
|
|
||||||
|
<!--truncate-->
|
||||||
|
|
||||||
|
:::danger MANDATORY BACKUP
|
||||||
|
**Before any manipulation, create a complete backup of your VM** via Proxmox Backup Server or `vzdump`. This operation directly manipulates disks and any error can result in data loss.
|
||||||
|
|
||||||
|
📚 A detailed article on Proxmox Backup Server is coming soon.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
My production Ubuntu VM from the [Current Homelab](/docs/homelab-actuel) has a **400 GB** disk on Linstor DRBD storage. This oversized disk comes from a time when this OS ran directly on bare-metal before virtualization.
|
||||||
|
|
||||||
|
### Problem
|
||||||
|
|
||||||
|
After reducing the system partition to **130 GB** (leaving 270 GB of unallocated free space), I want to:
|
||||||
|
1. Create a new **135 GB** disk (130 GB of data + 5 GB margin)
|
||||||
|
2. Migrate the OS and data to this smaller disk
|
||||||
|
3. Free up **265 GB** on Linstor DRBD storage
|
||||||
|
|
||||||
|
### Final Goal
|
||||||
|
|
||||||
|
Reorganize Proxmox hosts storage:
|
||||||
|
- **300 GB**: Linstor DRBD (highly available replicated storage)
|
||||||
|
- **200 GB**: local-lvm (non-replicated local storage)
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
### Required Tools
|
||||||
|
|
||||||
|
- **Proxmox VE**: Virtualization hypervisor
|
||||||
|
- **Clonezilla Live ISO**: Disk cloning tool ([download](https://clonezilla.org/downloads.php))
|
||||||
|
- **Linstor DRBD**: Distributed storage (see [article on Proxmox distributed storage](/blog/stockage-distribue-proxmox-ha))
|
||||||
|
|
||||||
|
### Initial VM State
|
||||||
|
|
||||||
|
Before starting, check the current state:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo fdisk -l /dev/sda
|
||||||
|
```
|
||||||
|
|
||||||
|
**Expected output**:
|
||||||
|
- Disk `/dev/sda`: **400 GiB**
|
||||||
|
- System partition (`/dev/sda3`): **~120 GiB** used
|
||||||
|
- Free space: **~270 GiB** unallocated
|
||||||
|
|
||||||
|
:::tip Shrink partition beforehand
|
||||||
|
If you haven't shrunk your partition yet, use `gparted` or `resize2fs` to reduce the filesystem **before** starting this procedure. Leave about 5 GB margin compared to used space.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Step 1: Create the New Disk in Proxmox
|
||||||
|
|
||||||
|
In the Proxmox web interface, access your VM configuration:
|
||||||
|
|
||||||
|
1. Select your VM
|
||||||
|
2. **Hardware** tab
|
||||||
|
3. Click **Add** → **Hard Disk**
|
||||||
|
|
||||||
|
**New disk configuration**:
|
||||||
|
- **Storage**: `linstor_storage` (or your Linstor DRBD pool)
|
||||||
|
- **Disk size**: `135 GiB`
|
||||||
|
- **Bus/Device**: `SCSI` (scsi1)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
:::info
|
||||||
|
The new disk will appear as `/dev/sdb` in the VM. The original disk `/dev/sda` remains in place for now.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Step 2: Mount the Clonezilla ISO
|
||||||
|
|
||||||
|
Still in the Proxmox interface:
|
||||||
|
|
||||||
|
1. Select the **Hardware** tab
|
||||||
|
2. Double-click **CD/DVD Drive**
|
||||||
|
3. **Storage**: `local` (or your ISO storage)
|
||||||
|
4. **ISO image**: Select `clonezilla-live-3.3.0-33-amd64.iso`
|
||||||
|
|
||||||
|
**Configure boot order**:
|
||||||
|
1. **Options** tab → **Boot Order**
|
||||||
|
2. Enable **CD-ROM** and place it in **first position**
|
||||||
|
3. Click **OK**
|
||||||
|
|
||||||
|
Start the VM via **Console** → **Start**.
|
||||||
|
|
||||||
|
## Step 3: Start Clonezilla in KVM To RAM Mode
|
||||||
|
|
||||||
|
:::warning Snow problem without KVM To RAM
|
||||||
|
If you **don't** choose the **KVM To RAM** option, Clonezilla display will show snow (graphical artifacts) making the interface unusable.
|
||||||
|
|
||||||
|

|
||||||
|
:::
|
||||||
|
|
||||||
|
### Boot Mode Selection
|
||||||
|
|
||||||
|
At Clonezilla boot:
|
||||||
|
|
||||||
|
1. **First option**: Select **Clonezilla live (KVM To RAM, VGA 1024x768)**
|
||||||
|
2. Press **Enter**
|
||||||
|
|
||||||
|
### Clonezilla Initial Configuration
|
||||||
|
|
||||||
|
Follow the configuration wizard:
|
||||||
|
|
||||||
|
<Tabs>
|
||||||
|
<TabItem value="language" label="Language">
|
||||||
|
|
||||||
|
```
|
||||||
|
Choose language: [en_US.UTF-8] English
|
||||||
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="keymap" label="Keyboard">
|
||||||
|
|
||||||
|
```
|
||||||
|
Configuring console-data: [Don't touch keymap]
|
||||||
|
```
|
||||||
|
|
||||||
|
(or choose your keyboard layout)
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="mode" label="Clonezilla Mode">
|
||||||
|
|
||||||
|
```
|
||||||
|
Start Clonezilla: [device-device]
|
||||||
|
```
|
||||||
|
|
||||||
|
Select **device-device** (disk to disk clone)
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
## Step 4: Clone Disk with Expert Options
|
||||||
|
|
||||||
|
### Expert Mode Selection
|
||||||
|
|
||||||
|
```
|
||||||
|
Mode: [Expert mode]
|
||||||
|
```
|
||||||
|
|
||||||
|
Choose **Expert mode** to access necessary advanced options.
|
||||||
|
|
||||||
|
### Operation Type Choice
|
||||||
|
|
||||||
|
```
|
||||||
|
Expert Mode: [disk_to_local_disk]
|
||||||
|
```
|
||||||
|
|
||||||
|
Select **disk_to_local_disk** (clone local disk to local disk).
|
||||||
|
|
||||||
|
### Disk Selection
|
||||||
|
|
||||||
|
1. **Source disk**: `/dev/sda` (400 GiB - old disk)
|
||||||
|
2. **Destination disk**: `/dev/sdb` (135 GiB - new disk)
|
||||||
|
|
||||||
|
:::danger Verify disks carefully
|
||||||
|
**Warning**: Selecting the wrong disk will permanently erase your data! Check disk sizes before validating.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Critical Advanced Options
|
||||||
|
|
||||||
|
Clonezilla offers several advanced options. **You MUST select**:
|
||||||
|
|
||||||
|
#### Option 1: `-k0` (Create partition table proportionally)
|
||||||
|
|
||||||
|
```
|
||||||
|
-k, --create-partition-table
|
||||||
|
[×] -k0 Create partition table in target disk proportionally
|
||||||
|
```
|
||||||
|
|
||||||
|
**Explanation**: This option recreates the partition table while keeping **original sizes** of partitions (not resizing them proportionally to the new disk).
|
||||||
|
|
||||||
|
#### Option 2: `-icds` (Skip checking destination disk size)
|
||||||
|
|
||||||
|
```
|
||||||
|
-icds, --skip-check-dest-size
|
||||||
|
[×] -icds Skip checking destination disk size before creating partition table
|
||||||
|
```
|
||||||
|
|
||||||
|
**Explanation**: By default, Clonezilla refuses to clone to a disk **smaller** than the source disk. This option disables this check.
|
||||||
|
|
||||||
|
:::tip Why does it work?
|
||||||
|
Even though the destination disk (135 GB) is smaller than the source disk (400 GB), the **used partitions** are only 130 GB. Clonezilla clones only the partitions, not the unallocated empty space.
|
||||||
|
|
||||||
|
The `-k0` option ensures partitions keep their original size (130 GB) instead of being resized proportionally to the new disk.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Start Cloning
|
||||||
|
|
||||||
|
1. Validate all options
|
||||||
|
2. Clonezilla displays a **summary** of parameters
|
||||||
|
3. Confirm with **`y`** then **Enter**
|
||||||
|
4. Confirm a second time to start cloning
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Estimated duration**: Between 10 and 30 minutes depending on data amount and Linstor DRBD storage speed.
|
||||||
|
|
||||||
|
## Step 5: Configure Boot on New Disk
|
||||||
|
|
||||||
|
Once cloning is complete:
|
||||||
|
|
||||||
|
1. **Shut down the VM** via Proxmox
|
||||||
|
2. Return to **Hardware** → **Options** → **Boot Order**
|
||||||
|
3. **Disable** CD-ROM (or remove ISO)
|
||||||
|
4. Make sure **scsi1** (new 135 GB disk) is in **first position**
|
||||||
|
5. **Start the VM**
|
||||||
|
|
||||||
|
### Boot Verification
|
||||||
|
|
||||||
|
The VM should boot normally on the new disk. Connect and verify:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo fdisk -l
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Checks**:
|
||||||
|
- `/dev/sdb` (new disk): **135 GiB** ✅
|
||||||
|
- `/dev/sda` (old disk): **400 GiB** (still present)
|
||||||
|
- Identical partitions on both disks
|
||||||
|
|
||||||
|
### Stability Test
|
||||||
|
|
||||||
|
Test your VM for **24-48 hours**:
|
||||||
|
- Verify all services start correctly
|
||||||
|
- Test critical applications
|
||||||
|
- Monitor system logs (`journalctl -xe`)
|
||||||
|
|
||||||
|
## Step 6: Delete the Old Disk
|
||||||
|
|
||||||
|
:::warning Wait before deleting
|
||||||
|
Only delete the old disk after **validating proper operation** of the VM for at least 24 hours. In case of problems, you can roll back.
|
||||||
|
:::
|
||||||
|
|
||||||
|
Once the VM is stabilized:
|
||||||
|
|
||||||
|
1. **Shut down the VM**
|
||||||
|
2. In Proxmox: **Hardware** → Select **Hard Disk (scsi0)** (400 GiB)
|
||||||
|
3. Click **Remove**
|
||||||
|
4. Confirm deletion
|
||||||
|
|
||||||
|
**Result**: 265 GB freed on Linstor DRBD storage! 🎉
|
||||||
|
|
||||||
|
## My Use Case: Proxmox Storage Reorganization
|
||||||
|
|
||||||
|
In my case, this operation allowed me to free up 265 GB on Linstor DRBD storage. With this reclaimed space, I can now repartition my physical disks on Proxmox hosts to optimize storage usage:
|
||||||
|
|
||||||
|
### Before
|
||||||
|
|
||||||
|
```
|
||||||
|
/dev/sda: 500 GiB
|
||||||
|
└── linstor_storage: 500 GiB (replicated storage)
|
||||||
|
```
|
||||||
|
|
||||||
|
### After
|
||||||
|
|
||||||
|
```
|
||||||
|
/dev/sda: 500 GiB
|
||||||
|
├── linstor_storage: 300 GiB (HA replicated storage)
|
||||||
|
└── local-lvm: 200 GiB (non-replicated local storage)
|
||||||
|
```
|
||||||
|
|
||||||
|
This reorganization allows me to better utilize resources:
|
||||||
|
- **Replicated storage** (Linstor DRBD - 300 GB): For critical VMs requiring high availability
|
||||||
|
- **Local storage** (local-lvm - 200 GB): Primarily for my Kubernetes VMs that manage distributed storage themselves via Longhorn, as well as some test VMs/LXCs
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Clonezilla allows efficient VM migration to a smaller disk, provided you:
|
||||||
|
1. **Shrink partitions beforehand** to leave free space
|
||||||
|
2. Use **KVM To RAM** mode to avoid display issues
|
||||||
|
3. Enable `-k0` and `-icds` options in Expert mode
|
||||||
|
|
||||||
|
This technique allowed me to free **265 GB** on my Linstor DRBD storage, optimizing Proxmox cluster resource usage and enabling more flexible storage reorganization.
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Official Clonezilla Documentation](https://clonezilla.org/clonezilla-live-doc.php)
|
||||||
|
- [Proxmox VE Documentation - Storage](https://pve.proxmox.com/wiki/Storage)
|
||||||
|
- [Article: Distributed Storage with Linstor DRBD on Proxmox](/blog/stockage-distribue-proxmox-ha)
|
||||||
|
- [Documentation: Current Homelab with Docker Compose](/docs/homelab-actuel)
|
||||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 56 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 132 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
BIN
static/img/blog/2025-11-30-reduire-disque-vm/neige.webp
Normal file
BIN
static/img/blog/2025-11-30-reduire-disque-vm/neige.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 143 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Loading…
Add table
Add a link
Reference in a new issue