Démarrer Clonezilla/Gparted depuis une partition crypté

Demande d'aide : c'est ici.
Répondre
mc2
Messages : 4
Inscription : 04 mai 2021, 18:28
Status : Hors-ligne

J'essaye de démarrer clonezilla/gparted (je parlerai toujours de clonezilla, mais c'est le même problème) avec grub avec la configuration live-hd (donc essentiellement à partir de la partition de démarrage sur /dev/sda3 mais chiffrée avec luks)

Quelques points:
  • Tout mon système est crypté, il y a une partition spécifique pour le dossier /boot, la partition est cryptée avec LUKS 1, pas dans un LVM
  • Je veux que le système Clonezilla soit poussé dans la RAM, pour permettre la modification sur toutes les partitions
J'ai essayé beaucoup de choses fournies par le site Web de Clonezilla sans succès.

Mon meilleur essai a été arrêté par une erreur indiquant live medium could not be found.

Comment puis-je réussir à démarrer Clonezilla et de le mettre en RAM?

Voici quelques informations sur ma configuration:

Code : Tout sélectionner

mc2@MERCURE:~$ sudo blkid
/dev/sda1: TYPE="BitLocker" PARTLABEL="Basic data partition" PARTUUID="17a760ce-5299-42b0-8281-3c0820d20aa6"
/dev/sda2: UUID="e6ad004e-e459-4ae5-bbfd-cd860061518c" TYPE="apfs" PARTLABEL="macOS" PARTUUID="fb078942-ab18-422f-88d6-81da561d23b1"
/dev/sda3: UUID="aa6df7fe-3a05-45f9-87c4-fda78d76bd3f" TYPE="crypto_LUKS" PARTUUID="bbdb077e-f66d-425e-83fc-2d1b33d871a5"
/dev/sda4: UUID="317c209a-dbde-42c1-b357-e5ec0c80d33f" TYPE="crypto_LUKS" PARTUUID="1cb43c35-f760-b44d-be7d-f51fb898fb92"
/dev/sdb1: LABEL="ESP" UUID="3829-4DAD" TYPE="vfat" PARTUUID="8073951c-e777-48ab-8eec-1c054b33a830"
/dev/sdb3: TYPE="BitLocker" PARTLABEL="Basi" PARTUUID="2a8c1a94-28c9-4a3e-bd5b-bb28fb92d981"
/dev/sdb4: LABEL="Recovery" UUID="4ECA2AABCA2A8F71" TYPE="ntfs" PARTLABEL="Basi" PARTUUID="9e709953-6dfa-4578-9445-c54f0cadfe69"
/dev/mapper/LINUX: UUID="AyD1SN-yVTw-T78Q-YjJE-fdYw-HiEE-R64qOL" TYPE="LVM2_member"
/dev/mapper/LINUX-DEBIAN: UUID="6e972e95-7d3e-49b3-9559-7f9560bf2d74" TYPE="ext4"
/dev/mapper/LINUX-SWAP: UUID="192ac298-9303-4d13-ac72-93539273134d" TYPE="swap"
/dev/sdb2: PARTLABEL="Micr" PARTUUID="a2ff8df1-7eec-421c-b634-2f4534e1c971"
/dev/loop0: LABEL="Acer" UUID="646C2A0E6C29DB94" TYPE="ntfs"
/dev/loop1: LABEL="Data" UUID="0022AEDE22AED844" TYPE="ntfs"
/dev/loop2: TYPE="squashfs"
/dev/mapper/boot_crypt: UUID="2d4ab347-09dd-48a5-84ff-c1417411605b" TYPE="ext2"
mc2@MERCURE:~$ sudo cat /etc/grub.d/50_tools 
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Clonezilla" {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod cryptodisk
        insmod luks
        insmod gcry_rijndael
        insmod gcry_rijndael
        insmod gcry_sha256
        insmod ext2
        set isofile='/tools/clonezilla.iso'
        cryptomount -u aa6df7fe3a0545f987c4fda78d76bd3f
        set root='cryptouuid/aa6df7fe3a0545f987c4fda78d76bd3f'
        if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='cryptouuid/aa6df7fe3a0545f987c4fda78d76bd3f'  2d4ab347-09dd-48a5-84ff-c1417411605b
        else
                search --no-floppy --fs-uuid --set=root 2d4ab347-09dd-48a5-84ff-c1417411605b
        fi
        search --set -f $isofile
        loopback loop $isofile
        linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts= ocs_live_batch=\"no\" locales= vga=788 ip=frommedia nosplash toram=live,syslinux,EFI findiso=$isofile
        initrd (loop)/live/initrd.img
}

menuentry "GParted" {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod cryptodisk
        insmod luks
        insmod gcry_rijndael
        insmod gcry_rijndael
        insmod gcry_sha256
        insmod ext2
        set isofile='/tools/gparted.iso'
        cryptomount -u aa6df7fe3a0545f987c4fda78d76bd3f
        set root='cryptouuid/aa6df7fe3a0545f987c4fda78d76bd3f'
        if [ x$feature_platform_search_hint = xy ]; then
                search --no-floppy --fs-uuid --set=root --hint='cryptouuid/aa6df7fe3a0545f987c4fda78d76bd3f'  2d4ab347-09dd-48a5-84ff-c1417411605b
        else
                search --no-floppy --fs-uuid --set=root 2d4ab347-09dd-48a5-84ff-c1417411605b
        fi
        search --set -f $isofile
        loopback loop $isofile
        linux (loop)/live/vmlinuz boot=live config union=overlay username=user components noswap noeject vga=788 ip= net.ifnames=0 toram=filesystem.squashfs findiso=$isofile
        initrd (loop)/live/initrd.img
}
mc2@MERCURE:~$ sudo ls /boot/tools
clonezilla.iso  gparted.iso
mc2@MERCURE:~$
Merci
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Quel est l'intérêt de chiffrer ces systèmes live qui ne contiennent rien de confidentiel ?

GRUB ne fait que charger le noyau et l'initramfs puis disparaît (ainsi que ses volumes chiffrés ouverts). Ensuite l'initramfs recherche et monte le fichier squashfs qui contient la racine du système live. Si l'initramfs n'est pas prévu pour prendre en charge les volumes chiffrés, je ne vois pas comment ça pourrait fonctionner.
mc2
Messages : 4
Inscription : 04 mai 2021, 18:28
Status : Hors-ligne

Oui mais comme l'iso a été monté sur (loop), l'initramfs devrait pouvoir trouver le squashfs non ?
J'ai déjà effectué ce type de démarrage, avec la même config, mais je ne parviens plus à réussir de nouveau...
Voici le lien vers mon post sur un autre forum qui explique mon problème dès le début, avec un premier succès, puis après un redimensionnement de partition, un échec : https://sourceforge.net/p/clonezilla/di ... ce34fa271/
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

mc2 a écrit : 10 mai 2021, 10:44 comme l'iso a été monté sur (loop), l'initramfs devrait pouvoir trouver le squashfs non ?
Non, car tout ce qui est visible dans GRUB n'existe plus après que GRUB a passé la main au noyau. L'initramfs doit à son tour ouvrir le volume chiffré LUKS (et inclure ce qu'il faut pour le faire, cryptsetup et modules device-mapper et crypto du noyau) pour monter le squashfs.
mc2
Messages : 4
Inscription : 04 mai 2021, 18:28
Status : Hors-ligne

Ce qui est étonnant c'est que j'ai déjà réussi cette manip...
Sinon, n'y a-t-il pas un moyen de refaire l'iso (l'initramfs surtout) pour prendre en charge luks ?
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

mc2 a écrit : 10 mai 2021, 15:40 n'y a-t-il pas un moyen de refaire l'iso (l'initramfs surtout) pour prendre en charge luks ?
Certainement. Refaire l'initramfs suffit, pas besoin de refaire l'image ISO.
En plus de l'identification et de l'ouverture du volume chiffré, il faudra peut-être aussi modifier la procédure de recherche de l'image ISO au cas où elle ne prendrait en compte que les partitions normales.

Tu n'as pas répondu à ma question : pourquoi vouloir chiffrer ces images ISO ?
mc2
Messages : 4
Inscription : 04 mai 2021, 18:28
Status : Hors-ligne

Merci de ta réponse !
Peux-tu me préciser comment re-créer l'initramfs avec le dévérouillage de la partition en question. Qu'entends-tu par changer la procédure de recherche de l'iso ?
Je ne souhaite pas particulierement chiffrer les ISOs, mais juste les rendre inaccessibles en écriture pour un utilisateur extérieur. Les mettre sur une partition cryptée me semble être la meilleure option...
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

mc2 a écrit : 10 mai 2021, 19:46 Peux-tu me préciser comment re-créer l'initramfs avec le dévérouillage de la partition
J'ai écrit que c'était possible, pas que je savais comment faire. Les seuls initramfs que j'ai modifiés sont celui d'un système Debian normal (en le construisant de façon normale avec update-initramfs) et celui d'un installateur Debian il y a assez longtemps (c'était simplement pour ajouter un module du noyau, pas de modification de scripts) manuellement comme ci-dessous.

En soi, modifier un initramfs n'est pas très compliqué ; c'est une archive cpio compressée avec gzip. On extrait son arborescence, on fait les modifications et on recrée un nouvel initramfs avec l'arborescence. Certains initramfs sont la concaténation de plusieurs archives (généralement avec les microcodes pour le CPU en première partie), dans ce cas c'est un peu plus compliqué.

Je suppose qu'on peut aussi utiliser les outils de création de systèmes live ayant servi pour créer ces images (j'ai cru voir live-build ?).
mc2 a écrit : 10 mai 2021, 19:46 Qu'entends-tu par changer la procédure de recherche de l'iso ?
Je ne sais pas ce qu'il en est de ces images live, mais l'initramfs des images d'installation de Debian ne sait apparemment pas rechercher l'image ISO dans tous les types de "volumes" (disque entier, partition, ensemble RAID, volume chiffré, volume logique LVM...). Si l'initramfs ne cherche que dans les disques et partitions, ouvrir le volume chiffré ne suffira pas.
mc2 a écrit : 10 mai 2021, 19:46 Je ne souhaite pas particulierement chiffrer les ISOs, mais juste les rendre inaccessibles en écriture pour un utilisateur extérieur. Les mettre sur une partition cryptée me semble être la meilleure option
Je m'en doutais. Chiffrer une partition ne la protège pas contre l'écriture, seulement contre les modifications "cohérentes". Et à moins que la machine ait un firmware de type libreboot/coreboot qui supporte le chiffrement LUKS, l'image principale de GRUB (core image) ne peut être chiffrée, donc elle reste vulnérable.

Il y a une autre possibilité : ne pas chiffrer les images ISO mais les faire vérifier par GRUB avant de les amorcer. GRUB a une commande "hashsum" (https://www.gnu.org/software/grub/manua ... ml#hashsum) qui permet de calculer ou vérifier la somme de hachage d'un fichier comme le font les commandes md5sums, sha1sums...
Répondre