logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 30-11-2021 13:17:12

tartare
Membre
Inscription : 18-11-2021

[RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Bonjour,

bon,
si vs avez lu mon precedent post (RESOLU clonage successfull mais curiosite), vs savez que j'ai pu faire un clone de mon DD interne (/dev/sda) vers mon DD externe (/dev/sdb) et ensuite faire les manipulations necessaires pr que ce clone soit fonctionnel.

prkoi je vlais faire ceci?
mon /dev/sda et le systeme sur lequel je realise mes occupations quotidiennes (films, trucs de geek, etc, etc)
mon /dev/sdb est le clone fonctionnel

maintenant, je casse /dev/sda, j'essaye de reparer (en tripatouillant parce que je n'y connais rien) et... je casse encore plus (misere).
/dev/sda est foutu, plus rien demarre, je ne sais pas ce que je fais , etc etc.
j'ai toujours /dev/sdb comme systeme de rechange. Oui mais voilà je n'ai plus qu'un seul systeme fonctionnel et si je casse aussi celui-ci (j'aime bien enfoncer les portes ouvertes), eh bien là, je suis bon pour reinstaller

pr eviter je veux maintenant cloner mon disque dur externe (/dev/sdb) sur mon DD interne (/dev/sda)
ok, pas de probleme, >> clonezilla et le tour est joué.

j'ai maintenant 2 systemes parfaitement identiques (avec les memes UUIDs, PARTUUIDs et PARTLABELs)

dc je vx faire les manips necessaires pour que /dev/sda (et ses partitions) soit operationnel,
dc modifier
les UUIDs, PARTUUIDs et PARTLABEls

pr cela je demarre dc sur mon disque dur externe (/dev/sdb)
MAIS
comme j'ai 2 systemes parfaitement identiques, il se peut que ce soit la racine de /dev/sda qui soit montéé et pas celle de /dev/sdb
et je dois modifier dans /dev/sda

son /etc/fstab
son /boot/grub/grub.cfg
son /etc/default/grub

puis executer un
update-grub depuis /dev/sdb

les questions sont (si / de /dev/sda est montee au lieu de celle de /dev/sdb)
- si je laisse tel quel et que je fais les manips, quelles st les consequences?
- si je ne dois pas laisser tel quel, pr faire les manips, est ce que je dois:
-- chrooter ?
-- demarrer depuis clonezilla USB et passer en console pr executer les differentes manips?
-- trouver une autre façon de faire? (que je ne connais pas)

voilà, je prefere vs demander avant de lancer les recherches ds une mauvaise direction.

En vous remerciant
tartare

Dernière modification par tartare (05-12-2021 15:40:28)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#2 30-11-2021 21:22:56

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

et je dois modifier dans /dev/sda
son /etc/fstab
son /boot/grub/grub.cfg
son /etc/default/grub


Sans oublier les UUID, LABEL, PARTUUID et PARTLABEL des partitions.

tartare a écrit :

les questions sont (si / de /dev/sda est montee au lieu de celle de /dev/sdb)
- si je laisse tel quel et que je fais les manips, quelles st les consequences?


Ça dépend de l'organisation du système, de son état, de ce qu'il fait automatiquement...
Par exemple si tu as une partition /var ou /usr séparée, il peut arriver que la partition racine d'un disque et la partition /var ou /usr de l'autre soient montées. Si les deux systèmes sont dans des états différents (paquets installés, versions...), il peut y avoir des incohérences. Si en  plus il fait une mise à jour, le résultat sera encore plus incohérent.
Si tout le système est dans la partition racine, alors je ne pense pas qu'il y ait grand risque.

Chrooter n'amènera rien. Le mieux serait de modifier les UUID et compagnie immédiatement après avoir cloné le disque et avant de redémarrer.
Mais pourquoi ne débranches-tu pas tout simplement le disque externe une fois la restauration terminée ?

Je vais ajouter mon commentaire personnel.
Apparemment tu souhaites utiliser le clone du disque amovible à la fois comme une sauvegarde du disque interne et comme un système autonome. Ce n'est pas optimal pour les raisons que tu as toi-même évoquées : la restauration est laborieuse puisqu'il faut changer les UUID, le risque de fausse manip est important... A mon avis ce n'est pas tenable, il faut choisir. Il y a d'autres pistes, par exemple :
- une machine virtuelle pour les manips risquées avec des instantanés (snapshots) permettant une restauration simple et rapide de l'état
- des instantanés avec btrfs ou LVM (à prévoir à l'installation donc)
- un clonage des partitions du disque interne sous forme de fichiers sur le disque amovible par clonezilla ou autre système de clonage installé sur le disque amovible


Il vaut mieux montrer que raconter.

Hors ligne

#3 01-12-2021 15:33:26

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

re,

Mais pourquoi ne débranches-tu pas tout simplement le disque externe une fois la restauration terminée ?


ben... je n'y avais pas pensé (... >> je dois assumer ma débilité)

Apparemment tu souhaites utiliser le clone du disque amovible à la fois comme une sauvegarde du disque interne et comme un système autonome


c'est exactement ca

A mon avis ce n'est pas tenable, il faut choisir.


ben j'ai termine le script des manips afin de rendre le clone (/dev/sdb << reference a mon post precedent), autonome et fonctionnel
je n'ai plus qu'a en faire une copie et l'adapter à la situation inverse

oui  j'imagine qu'il y a bcp plus simple ms (... >> je dois assumer ma débilité)
serieusement, l'idée d'avoir une copie parfaitement identique et fonctionnelle me plait.
je vais dc rester sur cette idée pour le moment.

Je m'y atèle qd j'ai le temps et reviendrai vers vous.

NB: l'idée de mettre des utilitaires ds la cle USB clonezilla est plaisante aussi.
d'apres ce que j'ai lu c'est possible, ms bon je verrai, bcp, bcp plus tard (voir jamais sans doute)

En ts les k, grd merci, tu me simplifies la vie, j'etais parti sur l'idée de la cle USB clonezilla modifiée...

a+,
tartare


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#4 01-12-2021 21:07:06

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

oui au fait j'ai une question qui m'a taraudé tt l'apres-midi

Quid du "update-grub" a executer depuis le systeme originel?

- je demarre sur le clone qui est /dev/sda desormais
- je fais mes manips (les fichiers /etc/fstab, /boot/grub/grub.cfg, /etc/default/grub, UUIDs, PARTLABEL, PARTUUIDs)
-- est-ce que je branche mon disque dur externe (/dev/sdb qui est le systeme originel)?
-- est ce que je "update-grub" depuis le systeme originel (dev/sdb) ou depuis le clone (/dev/sda)?

je sens que je vais ressortir du vieux matos pour faire les tests...

bonne soiree
tartare

ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#5 01-12-2021 22:22:10

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

update-grub ne fait que regénérer le fichier grub.cfg du système sur lequel il est exécuté. Si tu veux ajouter des entrées pour l'autre système, pourquoi pas.

Il vaut mieux montrer que raconter.

Hors ligne

#6 05-12-2021 14:08:45

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Bonjour,

j'avance a petit pas, en gros j'y arrive ms clonezilla me fout le bordel
je vous explique et vous pose les questions ensuite
par souci de clarté
/dev/sda= Disque Dur Interne
/dev/sdb= Disque Dur Externe
clonage= operation qui consiste a cloner /dev/sda sur /dev/sdb
restauration= operation qui consiste a cloner /dev/sdb sur /dev/sda

alors voila ce que j'ai fait

- reinstall debian sur DDI
- config de base
-- /dev/sda1= partition vfat/EFI systeme d'amorcage present, pas de label, 5Gigas
-- /dev/sda2= partition swap, pas de label, 5Gigas
-- /dev/sda3= racine + home, pas de label, tout le reste du DDI

je clone DDI sur DDE avec clonezilla,
dans clonezilla
--- je choisis la premiere option (je ne mets pas en VRAM pr recuperer les logs que je vais vous fournir)
--- langue= francais
--- clavier= 105 touches, azerty standard (pas azerty standard AFNOR), par defaut pr les touches speciales
ok pas de probleme, le clone se fait
voici le log de clonezilla.log


Starting /usr/sbin/ocs-sr at 2021-12-05 10:55:50 UTC...
*****************************************************.
Clonezilla image dir: /tmp/ocs_onthefly_src.bApHXr
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
Running: task_restoreparts "d2d-pseudo-tmp-cnvted" "sdc1 sdc3" "ld2d"
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
Creating partition in /dev/sdc...
Trying to clean the MBR and GPT partition table on the destination disk first: /dev/sdc
Informing the OS of partition table changes... done!
Running: dd if=/dev/zero of=/dev/sdc bs=512 count=1
1+0 records in
1+0 records out
512 bytes copied, 0.000636394 s, 805 kB/s
Running: LC_ALL=C grep -Ev '^last-lba:' /tmp/d2d-pseudo-tmp-cnvted/sdc-pt.sf | sfdisk --wipe always --force /dev/sdc 2>&1
Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: EXTERNAL_USB    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: 8B7F2640-4E69-45D5-AEE8-151E0BCE2584).
/dev/sdc1: Created a new partition 1 of type 'EFI System' and of size 4.7 GiB.
/dev/sdc2: Created a new partition 2 of type 'Linux swap' and of size 4.7 GiB.
/dev/sdc3: Created a new partition 3 of type 'Linux filesystem' and of size 922.2 GiB.
/dev/sdc4: Done.

New situation:
Disklabel type: gpt
Disk identifier: 8B7F2640-4E69-45D5-AEE8-151E0BCE2584

Device        Start        End    Sectors   Size Type
/dev/sdc1      2048    9764863    9762816   4.7G EFI System
/dev/sdc2   9764864   19529727    9764864   4.7G Linux swap
/dev/sdc3  19529728 1953523711 1933993984 922.2G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
This was done by: LC_ALL=C grep -Ev '^last-lba:' /tmp/d2d-pseudo-tmp-cnvted/sdc-pt.sf | sfdisk --wipe always --force /dev/sdc 2>&1
Informing the OS of partition table changes.... done!
The disk and partitions in this system now:
*****************************************************.
Model: TOSHIBA EXTERNAL_USB (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  5000MB  4999MB                     boot, esp
 2      5000MB  9999MB  5000MB                     swap
 3      9999MB  1000GB  990GB

*****************************************************.
Restoring partition /dev/sdc1...
*****************************************************.
Source partition file system is vfat...
Cloning the /dev/sda1 to /dev/sdc1...
Using partclone to clone...
Run partclone: partclone.vfat -z 10485760 -N -L /var/log/partclone.log -b -s /dev/sda1 -O /dev/sdc1
Partclone v0.3.17 http://partclone.org
Starting to back up device(/dev/sda1) to device(/dev/sdc1)
memory needed: 22191870 bytes
bitmap 1220350 bytes, blocks 2*10485760 bytes, checksum 0 bytes
Calculating bitmap... Please wait... get device size 4998561792 by ioctl BLKGETSIZE64,
done!
File system:  FAT32
Device size:    5.0 GB = 9762795 Blocks
Space in use:  13.3 MB = 26043 Blocks
Free Space:     5.0 GB = 9736752 Blocks
Block size:   512 Byte
Total block 9762795
Syncing... OK!
Partclone successfully cloned the device (/dev/sda1) to the device (/dev/sdc1)
Informing the OS of partition table changes.... done!
*****************************************************.
Restoring partition /dev/sdc3...
*****************************************************.
Source partition file system is ext4...
Cloning the /dev/sda3 to /dev/sdc3...
Using partclone to clone...
Run partclone: partclone.ext4 -z 10485760 -N -L /var/log/partclone.log -b -s /dev/sda3 -O /dev/sdc3
Partclone v0.3.17 http://partclone.org
Starting to back up device(/dev/sda3) to device(/dev/sdc3)
memory needed: 51190176 bytes
bitmap 30218656 bytes, blocks 2*10485760 bytes, checksum 0 bytes
Calculating bitmap... Please wait... get device size 990204919808 by ioctl BLKGETSIZE64,
done!
File system:  EXTFS
Device size:  990.2 GB = 241749248 Blocks
Space in use:  20.8 GB = 5073628 Blocks
Free Space:   969.4 GB = 236675620 Blocks
Block size:   4096 Byte
Total block 241749248
Syncing... OK!
Partclone successfully cloned the device (/dev/sda3) to the device (/dev/sdc3)
Informing the OS of partition table changes.... done!
*****************************************************.
Finding swap partition(s) in GPT table /tmp/d2d-pseudo-tmp-cnvted/sdc-pt.parted...
Creating swap partition /dev/sdc2...
Found the swap partition /dev/sdc2 info in the image dir, create it by:
mkswap  -U 11294982-18f0-4c73-9259-462b4480a537 /dev/sdc2
Setting up swapspace version 1, size = 4.7 GiB (4999606272 bytes)
no label, UUID=11294982-18f0-4c73-9259-462b4480a537
*****************************************************.
*****************************************************.
*****************************************************.
Running: ocs-restore-mbr --ocsroot /tmp  d2d-pseudo-tmp-cnvted sdc
Setting the TERM as linux
Restoring the first 446 bytes of MBR data (executable code area) for sdc by:
dd if=/tmp/d2d-pseudo-tmp-cnvted/sdc-mbr of=/dev/sdc bs=446 count=1
done.
*****************************************************.
*****************************************************.
Now tuning the file system size on partition /dev/sdc1 to fit the partition size...
Running: ocs-resize-part  --batch /dev/sdc1
fatresize 1.1.0 (20201114)
.*****************************************************.
Now tuning the file system size on partition /dev/sdc3 to fit the partition size...
Running: ocs-resize-part  --batch /dev/sdc3
e2fsck -f -y /dev/sdc3; resize2fs -p -f /dev/sdc3
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdc3: 149590/60440576 files (0.2% non-contiguous), 5073628/241749248 blocks
*****************************************************.
Processing the PV/LV if necessary...
Running: ocs-expand-lvm -b /dev/sdc1
Found the disk(s) and partition(s) list for input device /dev/sdc1:  /dev/sdc1
*****************************************************.
[1;33mNo any VG on  /dev/sdc1 was found.
[0;39mSkip processing  /dev/sdc1.
*****************************************************.
Running: ocs-expand-lvm -b /dev/sdc3
Found the disk(s) and partition(s) list for input device /dev/sdc3:  /dev/sdc3
*****************************************************.
[1;33mNo any VG on  /dev/sdc3 was found.
[0;39mSkip processing  /dev/sdc3.
*****************************************************.
*****************************************************.
Running: ocs-tux-postprocess sdc1 sdc3
Trying to remove udev hardware record in the restored OS...
The specified destination device: sdc1 sdc3
Trying to remove udev persistent files. The devices to be searched: sdc1 sdc3...
Skip /dev/sdc1 (vfat).
Now searching possible device /dev/sdc3...
removed '/tmp/hd_img.2ErfUF/var/lib/dbus/machine-id'
removed '/tmp/hd_img.2ErfUF/etc/machine-id'
Found the file system and mount point to re-generate machine id: /dev/sdc3, /tmp/hd_img.2ErfUF
done!
*****************************************************.
Running: ocs-update-syslinux -b sdc1 sdc3
Device /dev/sdc3 is not a FAT partition.
Skip updating syslinux on that.
*****************************************************.
Running: ocs-install-grub -p "sdc1 sdc3 " auto
Found grub partition: /dev/sdc3
Found grub partition "/dev/sdc3", which is on the restored partitions list (sdc1 sdc3). Will run grub-install later.
[1;33mDisk /dev/sdc is not MBR format or GPT disk with a special 'bios_boot' partition. Skip the reinstallation of grub-pc (MBR) program.
[0;39m*****************************************************.
Running: ocs-update-initrd -p "sdc1 sdc3 " auto
Found boot and grub partition: /dev/sdc3
Found grub partition "/dev/sdc3", which is on the restored partitions list (sdc1 sdc3).
Re-creating initrd on boot dir in partition /dev/sdc3 and root partition /dev/sdc3...
Test if we can chroot the restored OS partition /dev/sdc3...
[1;33mYes, we are able to chroot the restored OS partition /dev/sdc3.
[0;39mRunning the command in the restored GNU/Linux chroot env:
update-initramfs -u -k all
This might take a few minutes...
update-initramfs: Generating /boot/initrd.img-5.10.0-9-amd64
done!
*****************************************************.
Running: run_ntfsreloc_part -p "sdc1 sdc3" auto
The NTFS boot partition was not found or not among the restored partition(s). Skip running partclone.ntfsfixboot.
*****************************************************.
Updating boot entry of EFI NVRAM...
EFI system partition: /dev/sdc1
Trying to clean unused uEFI boot entry if it exists...
Boot file /EFI/debian/shimx64.efi listed in NVRAM, but there is no any partition with PARTUUID "27adf65e-b721-8345-ebac-24adfc716fb8" contains it.
Clean the boot entry 0000 by:
Running: efibootmgr -b 0000 -B
BootCurrent: 0016
Timeout: 0 seconds
BootOrder: 0001,0014,0015,0016,0017,0018,0019,001A
Boot0001* debian
Boot0010  Setup
Boot0011  Boot Menu
Boot0012  Diagnostic Splash
Boot0013  OilDiagApp
Boot0014* NVMe:
Boot0015* ATA HDD: WDC WD10SPZX-24Z10                      
Boot0016* USB HDD: Generic USB Device
Boot0017* PCI LAN:
Boot0018* USB FDD:
Boot0019* USB CD:
Boot001A* USB HDD: TOSHIBA EXTERNAL_USB
*****************************************************.
Found Boot file /EFI/debian/shimx64.efi in partition /dev/sda1.
[1;33mEFI system partition UUID 1804930e-eb26-4628-bc93-094565a4c1c9 in EFI NVRAM matches the one on partition /dev/sdc1.
[0;39mEFI boot file "\EFI\debian\shimx64.efi" in partition /dev/sdc1 was found.
[1;33mNo need to update the boot entry of EFI NVRAM.
[0;39m*****************************************************.
End of restoreparts job for image d2d-pseudo-tmp-cnvted.
End of restoredisk job for image d2d-pseudo-tmp-cnvted.
Checking if udevd rules have to be restored...
This program is not started by Clonezilla server, so skip notifying it the job is done.
This program is not started by Clonezilla server, so skip notifying it the job is done.
Finished!
Finished!
Now syncing - flush filesystem buffers...

Ending /usr/sbin/ocs-sr at 2021-12-05 11:18:06 UTC...
Now syncing - flush filesystem buffers...
Ending /usr/sbin/ocs-onthefly at 2021-12-05 11:18:06 UTC...
 



on voit que le DDE est vu comme /dev/sdc ms c'est normal car j'ai la cle USB clonezilla de branchée
dc deja,
- de memoire, il y a les scripts headers que je n'avais pas sur mes premiers clonages (j'en ai fait beaucoup)
- si vous voyez autre chose, n'hesitez pas
- y'a un sda4 ms si je me souviens bien, pendant l'install de debian, au partitionnement, il me mettait une derniere partition avec un espace ridicule

bien, apres le clonage
j'eteins le PC, debranche le DDE, reboot sur le DDI
ds ma session (graphique gnome), je fais les manips pr avoir mes 2 systemes, identiques mais autonomes, dc
--- sur DDE
----- je modifie les UUIDs des 3 partitions
----- je modifie les PARTUUIDs des 3 partitions
----- je modifie en consequence
----------- /etc/fstab du DDE
----------- /etc/default/grub du DDE
----------- /boot/grub/grub.cfg du DDE
----- je update-grub depuis le DDI

ok le clone est fonctionnel, j'ecris ces lignes depuis celui-ci.

maintenant je veux restaurer, c'est a dire
cloner mon DDE vers mon DDI

je lance clonezilla, toujours la premiere option, choisis les memes options pr la langue et le clavier et lance le process
le clone du DDE vers le DDI se passe bien
voici les logs d'une precedente tentative


Starting /usr/sbin/ocs-sr at 2021-12-04 17:08:39 UTC...
*****************************************************.
Clonezilla image dir: /tmp/ocs_onthefly_src.9ruTXd
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
Running: task_restoreparts "d2d-pseudo-tmp-cnvted" "sda1 sda3" "ld2d"
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
Creating partition in /dev/sda...
Trying to clean the MBR and GPT partition table on the destination disk first: /dev/sda
Informing the OS of partition table changes... done!
Running: dd if=/dev/zero of=/dev/sda bs=512 count=1
1+0 records in
1+0 records out
512 bytes copied, 0.00045348 s, 1.1 MB/s
Running: LC_ALL=C grep -Ev '^last-lba:' /tmp/d2d-pseudo-tmp-cnvted/sda-pt.sf | sfdisk --wipe always --force /dev/sda 2>&1
Checking that no-one is using this disk right now ... OK

Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10SPZX-24Z
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: D6B924BD-5EF4-47AB-B1E2-5DDF279A201E).
/dev/sda1: Created a new partition 1 of type 'EFI System' and of size 4.7 GiB.
/dev/sda2: Created a new partition 2 of type 'Linux swap' and of size 4.7 GiB.
/dev/sda3: Created a new partition 3 of type 'Linux filesystem' and of size 922.2 GiB.
/dev/sda4: Done.

New situation:
Disklabel type: gpt
Disk identifier: D6B924BD-5EF4-47AB-B1E2-5DDF279A201E

Device        Start        End    Sectors   Size Type
/dev/sda1      2048    9764863    9762816   4.7G EFI System
/dev/sda2   9764864   19529727    9764864   4.7G Linux swap
/dev/sda3  19529728 1953523711 1933993984 922.2G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
This was done by: LC_ALL=C grep -Ev '^last-lba:' /tmp/d2d-pseudo-tmp-cnvted/sda-pt.sf | sfdisk --wipe always --force /dev/sda 2>&1
Informing the OS of partition table changes.... done!
The disk and partitions in this system now:
*****************************************************.
Model: ATA WDC WD10SPZX-24Z (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  5000MB  4999MB                     boot, esp
 2      5000MB  9999MB  5000MB                     swap
 3      9999MB  1000GB  990GB

*****************************************************.
Restoring partition /dev/sda1...
*****************************************************.
Source partition file system is vfat...
Cloning the /dev/sdb1 to /dev/sda1...
Using partclone to clone...
Run partclone: partclone.vfat -z 10485760 -N -L /var/log/partclone.log -b -s /dev/sdb1 -O /dev/sda1
Partclone v0.3.17 http://partclone.org
Starting to back up device(/dev/sdb1) to device(/dev/sda1)
memory needed: 22191870 bytes
bitmap 1220350 bytes, blocks 2*10485760 bytes, checksum 0 bytes
Calculating bitmap... Please wait... get device size 4998561792 by ioctl BLKGETSIZE64,
done!
File system:  FAT32
Device size:    5.0 GB = 9762795 Blocks
Space in use:  13.3 MB = 26043 Blocks
Free Space:     5.0 GB = 9736752 Blocks
Block size:   512 Byte
Total block 9762795
Syncing... OK!
Partclone successfully cloned the device (/dev/sdb1) to the device (/dev/sda1)
Informing the OS of partition table changes.... done!
*****************************************************.
Restoring partition /dev/sda3...
*****************************************************.
Source partition file system is ext4...
Cloning the /dev/sdb3 to /dev/sda3...
Using partclone to clone...
Run partclone: partclone.ext4 -z 10485760 -N -L /var/log/partclone.log -b -s /dev/sdb3 -O /dev/sda3
Partclone v0.3.17 http://partclone.org
Starting to back up device(/dev/sdb3) to device(/dev/sda3)
memory needed: 51190176 bytes
bitmap 30218656 bytes, blocks 2*10485760 bytes, checksum 0 bytes
Calculating bitmap... Please wait... get device size 990204919808 by ioctl BLKGETSIZE64,
done!
File system:  EXTFS
Device size:  990.2 GB = 241749248 Blocks
Space in use:  20.8 GB = 5077999 Blocks
Free Space:   969.4 GB = 236671249 Blocks
Block size:   4096 Byte
Total block 241749248
Syncing... OK!
Partclone successfully cloned the device (/dev/sdb3) to the device (/dev/sda3)
Informing the OS of partition table changes.... done!
*****************************************************.
Finding swap partition(s) in GPT table /tmp/d2d-pseudo-tmp-cnvted/sda-pt.parted...
Creating swap partition /dev/sda2...
Found the swap partition /dev/sda2 info in the image dir, create it by:
mkswap  -U dfa27a61-8b1d-2ad7-db94-9157fab1de3a /dev/sda2
Setting up swapspace version 1, size = 4.7 GiB (4999606272 bytes)
no label, UUID=dfa27a61-8b1d-2ad7-db94-9157fab1de3a
*****************************************************.
*****************************************************.
*****************************************************.
Running: ocs-restore-mbr --ocsroot /tmp  d2d-pseudo-tmp-cnvted sda
Setting the TERM as linux
Restoring the first 446 bytes of MBR data (executable code area) for sda by:
dd if=/tmp/d2d-pseudo-tmp-cnvted/sda-mbr of=/dev/sda bs=446 count=1
done.
*****************************************************.
*****************************************************.
Now tuning the file system size on partition /dev/sda1 to fit the partition size...
Running: ocs-resize-part  --batch /dev/sda1
fatresize 1.1.0 (20201114)
.*****************************************************.
Now tuning the file system size on partition /dev/sda3 to fit the partition size...
Running: ocs-resize-part  --batch /dev/sda3
e2fsck -f -y /dev/sda3; resize2fs -p -f /dev/sda3
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda3: 149716/60440576 files (0.2% non-contiguous), 5077999/241749248 blocks
*****************************************************.
Processing the PV/LV if necessary...
Running: ocs-expand-lvm -b /dev/sda1
Found the disk(s) and partition(s) list for input device /dev/sda1:  /dev/sda1
*****************************************************.
[1;33mNo any VG on  /dev/sda1 was found.
[0;39mSkip processing  /dev/sda1.
*****************************************************.
Running: ocs-expand-lvm -b /dev/sda3
Found the disk(s) and partition(s) list for input device /dev/sda3:  /dev/sda3
*****************************************************.
[1;33mNo any VG on  /dev/sda3 was found.
[0;39mSkip processing  /dev/sda3.
*****************************************************.
*****************************************************.
Running: ocs-tux-postprocess sda1 sda3
Trying to remove udev hardware record in the restored OS...
The specified destination device: sda1 sda3
Trying to remove udev persistent files. The devices to be searched: sda1 sda3...
Skip /dev/sda1 (vfat).
Now searching possible device /dev/sda3...
removed '/tmp/hd_img.y9Kebx/var/lib/dbus/machine-id'
removed '/tmp/hd_img.y9Kebx/etc/machine-id'
Found the file system and mount point to re-generate machine id: /dev/sda3, /tmp/hd_img.y9Kebx
done!
*****************************************************.
Running: ocs-update-syslinux -b sda1 sda3
Device /dev/sda3 is not a FAT partition.
Skip updating syslinux on that.
*****************************************************.
Running: ocs-install-grub -p "sda1 sda3 " auto
Found grub partition: /dev/sda3
Found grub partition "/dev/sda3", which is on the restored partitions list (sda1 sda3). Will run grub-install later.
[1;33mDisk /dev/sda is not MBR format or GPT disk with a special 'bios_boot' partition. Skip the reinstallation of grub-pc (MBR) program.
[0;39m*****************************************************.
Running: ocs-update-initrd -p "sda1 sda3 " auto
Found boot and grub partition: /dev/sda3
Found grub partition "/dev/sda3", which is on the restored partitions list (sda1 sda3).
Re-creating initrd on boot dir in partition /dev/sda3 and root partition /dev/sda3...
Test if we can chroot the restored OS partition /dev/sda3...
[1;33mYes, we are able to chroot the restored OS partition /dev/sda3.
[0;39mRunning the command in the restored GNU/Linux chroot env:
update-initramfs -u -k all
This might take a few minutes...
update-initramfs: Generating /boot/initrd.img-5.10.0-9-amd64
done!
*****************************************************.
Running: run_ntfsreloc_part -p "sda1 sda3" auto
The NTFS boot partition was not found or not among the restored partition(s). Skip running partclone.ntfsfixboot.
*****************************************************.
Updating boot entry of EFI NVRAM...
EFI system partition: /dev/sda1
Trying to clean unused uEFI boot entry if it exists...
Boot file /EFI/debian/shimx64.efi listed in NVRAM, but there is no any partition with PARTUUID "30384750-cfc7-4601-8364-9e75e2b48ed4" contains it.
Clean the boot entry 0001 by:
Running: efibootmgr -b 0001 -B
BootCurrent: 0016
Timeout: 0 seconds
BootOrder: 0014,0015,0016,0017,0018,0019,001A
Boot0010  Setup
Boot0011  Boot Menu
Boot0012  Diagnostic Splash
Boot0013  OilDiagApp
Boot0014* NVMe:
Boot0015* ATA HDD: WDC WD10SPZX-24Z10                      
Boot0016* USB HDD: Generic USB Device
Boot0017* PCI LAN:
Boot0018* USB FDD:
Boot0019* USB CD:
Boot001A* USB HDD: TOSHIBA EXTERNAL_USB
*****************************************************.
[1;33mNo partition boot entry from hard drive exists in EFI NVRAM.
[0;39mEFI boot entries on this system:
*****************************************************.
BootCurrent: 0016
Timeout: 0 seconds
BootOrder: 0014,0015,0016,0017,0018,0019,001A
Boot0010  Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0011  Boot Menu FvFile(86488440-41bb-42c7-93ac-450fbf7766bf)
Boot0012  Diagnostic Splash FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
Boot0013  OilDiagApp  FvFile(f8397897-e203-4a62-b977-9e7e5d94d91b)
Boot0014* NVMe: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a4)
Boot0015* ATA HDD: WDC WD10SPZX-24Z10                       PciRoot(0x0)/Pci(0x11,0x0)/Sata(0,0,0)..bYVD.A...O.*..
Boot0016* USB HDD: Generic USB Device PciRoot(0x0)/Pci(0x10,0x0)/USB(5,0)3.!..3.G..A.....
Boot0017* PCI LAN:  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot0018* USB FDD:  VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0019* USB CD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
Boot001A* USB HDD: TOSHIBA EXTERNAL_USB PciRoot(0x0)/Pci(0x10,0x0)/USB(0,0)3.!..3.G..A.....
*****************************************************.
Found EFI boot loader: /tmp/efi_sys_part.3j8Ztv/EFI/debian/shimx64.efi
EFI boot file "\EFI\debian\shimx64.efi" in partition /dev/sda1 was found.
[1;33mUpdating/Adding the boot entry in EFI NVRAM by command:
[0;39mefibootmgr -c -d /dev/sda -p 1 -L "OS on hard drive" -l "\EFI\debian\shimx64.efi"
BootCurrent: 0016
Timeout: 0 seconds
BootOrder: 0000,0014,0015,0016,0017,0018,0019,001A
Boot0010  Setup
Boot0011  Boot Menu
Boot0012  Diagnostic Splash
Boot0013  OilDiagApp
Boot0014* NVMe:
Boot0015* ATA HDD: WDC WD10SPZX-24Z10                      
Boot0016* USB HDD: Generic USB Device
Boot0017* PCI LAN:
Boot0018* USB FDD:
Boot0019* USB CD:
Boot001A* USB HDD: TOSHIBA EXTERNAL_USB
Boot0000* OS on hard drive
*****************************************************.
End of restoreparts job for image d2d-pseudo-tmp-cnvted.
End of restoredisk job for image d2d-pseudo-tmp-cnvted.
Checking if udevd rules have to be restored...
This program is not started by Clonezilla server, so skip notifying it the job is done.
This program is not started by Clonezilla server, so skip notifying it the job is done.
Finished!
Finished!
Now syncing - flush filesystem buffers...

Ending /usr/sbin/ocs-sr at 2021-12-04 17:15:01 UTC...
Now syncing - flush filesystem buffers...
Ending /usr/sbin/ocs-onthefly at 2021-12-04 17:15:01 UTC...
 



bon, là aussi si vs voyez des choses a dire...

la restauration (c'est a dire clonage du DDE sur DDI) se termine a priori bien
j'eteins le PC

c'est maintenant que ca foire
je peux laisser branché le DDE ou le débrancher, c'est la meme histoire

- je boot
- j'arrive sur une console (fond ecran noir, pas le joli bleu debian) avec une invite de commande grub>
- a partir de là il faut que
-- j'identifie une partition racine avec ls (pas de probleme, mes 2 racines sont en ext4)
-- il faut parametrer le root et le prefix
-- il faut envoyer insmod en normal
-- il faut envoyer le normal

a partir de là je retrouve mes menuentry et ca demarrera

DONC
soit
- clonezilla fait qque chose (ou? qd? pourkoi?)
- je ne choisis pas le bon mode de fonctionnement (ms j'ai essayé avec la seconde option (mettre clonezilla en RAM) et c'est la meme chose)
- il y a une ou plusieurs operations que je ne fais pas

LES QUESTIONS
- qu'est ce que je ne fais pas?
- est-ce que je dois essayer un autre mode de fonctionnement de clonezilla?
- puis-je, qd j'ai l'invite grub (dc juste apres la restauration), reparer ce qui ne fonctionne pas afin d'avoir au boot mes menuentry?

je prends toutes les idées, remarques, suggestions.
Merci

tartare

Dernière modification par tartare (05-12-2021 14:10:49)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#7 05-12-2021 15:39:08

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

re,

ok j'ai trouvé une soluce
modifié les entrees ds le bios
avt j'avais
-debian
-nvme
-DDI
-DDE

sur
https://lecrabeinfo.net/reparer-restaur … -plus.html
j'ai interchangé debian et DDI.
faut voir si la manip est a faire a chaque restauration.
sinon je vais voir si boot-repair est disponible sur debian et est accessible depuis cette console grub>

si vous avez une idée de ce que je dois faire pr eviter ttes ces manips
le quand? je sais
- j'ai fait mon clone
- je l'ai rendu fonctionnel
AVT de lancer clonezilla pour la restauration,
voila c'est à ce moment qu'il faut faire qque chose, c'est a dire preparer la restauration

peut-etre rajouter

GRUB_DISABLE_OS_PROBER=true


dans le /etc/default/grub du DDI?
l'enlever du DDE?
modifier le /boot/grub/grub.cfg? oui ms lequel?

bref le probleme est semble t-il resolu.
A tester sur le long terme

je passe en résolu ms svp n'hésitez pas suggerer.

Merci bien en tout cas pr votre (ton) temps

tartare


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#8 05-12-2021 17:30:37

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

partition vfat/EFI systeme d'amorcage present, pas de label, 5Gigas


5 Go pour une partition EFI ? C'est 100 fois trop !

tartare a écrit :

- je boot
- j'arrive sur une console (fond ecran noir, pas le joli bleu debian) avec une invite de commande grub>
- a partir de là il faut que
-- j'identifie une partition racine avec ls (pas de probleme, mes 2 racines sont en ext4)
-- il faut parametrer le root et le prefix
-- il faut envoyer insmod en normal
-- il faut envoyer le normal


GRUB est déjà en mode normal sinon l'invite serait "grub rescue>". C'est seulement le $prefix qui n'est pas bon pour charger grub.cfg et afficher le menu. Après avoir corrigé $prefix tu peux simplement exécuter

configfile $prefix/grub.cfg


pour afficher le menu, ou simplement "normal" mais ça va lancer un sous-programme "normal" imbriqué dans le premier.

En regardant les logs, je n'ai pas l'impression que clonezilla réinstalle GRUB. Or GRUB utilise /boot/efi/efi/debian/grub.cfg pour positionner $prefix. Si l'UUID de la partition racine est modifié et ne correspond pas avec celui dans ce fichier, alors ça fait ce que tu observes.


Il vaut mieux montrer que raconter.

Hors ligne

#9 05-12-2021 18:16:58

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

5 Go pour une partition EFI ? C'est 100 fois trop !



je sais, ms a une de mes 1° install, de memoire, j'avais teste Kemu et je ne sais pas pourkoi, ensuite j'avais une notification me disant que la partition EFI avait 0 octet de libre
j'ai un etat d'esprit plutot... gparted (bourrin << ref a un de nos précédent post)
de tte facon, va y avoir une nvelle fresh install ds pas longtemps, je reduirai (... peut-être)

En regardant les logs, je n'ai pas l'impression que clonezilla réinstalle GRUB


sans trop m'y connaitre, je dirai comme toi ms qd j'ai rédigé mon post, je ne les avais pas encore lu et de tte maniere c'etait une idée comme une autre

GRUB est déjà en mode normal sinon l'invite serait "grub rescue>".


tu l'as dit ds un precedent post que j'ai lu

Si l'UUID de la partition racine est modifié et ne correspond pas avec celui dans ce fichier, alors ça fait ce que tu observes.


dc, il faut que j'inclue la modification de ce fichier ds mon script de restauration.

je m'y attaque... ce soir? pfff me suis assez battu comme ça pour au jourd'hui alors pas sûr, ds la semaine sans doute et puis je reviendrai donner un retour.

Merci bien de me preter ton epaule.
bonne soirée.
tartare


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#10 08-12-2021 20:37:36

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

je donne des nvelles qd meme un peu.

lundi, reinstall debian, reclonage et d'apres ce que je m'en souviens je suis allé voir boot/efi/EFI/debian

sur la source (DDI, /dev/sda,) pas de probleme, par contre sur DDE (/dev/sdb) ben y'a /boot/efi et rien apres.
Naïvement comme c'est un clone j'ai copié collé depuis la source. J'ai essayé (sans trop faire gaffe car j'etais et suis toujours un peu lassé), ms d'apres ce que je me souviens, ca n'a rien arrangé.

j'ai un peu de temps demain, du coup je reste sur mon install ou y'a rien, c'est comme une fresh install, je reclone et te tiens au courant. Si pas d'amelioration, je passerai par la modif du boot au bios.
pas tres elegant comme tu dirais (carrement bourrin comme vas le penser) ms bon... j'aimerai bien passer de mon viel ordi au neuf (dc refaire pour le neuf... pff) et passer a autre chose.

faut encore que je reflechisse au LVM ou pas? et au chiffrage ou pas? (je sais meme pas si le clonage/restauration passera ds ces cas >> PFFF).

bonne soiree.
Tartare

ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#11 09-12-2021 12:42:54

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

re,

bon je viens de cloner.
apres clonage, les manips habituelles
je redemarre
- d'abord DDI (/dev/sda), /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDE /boot/efi rien d'autre
- ensuite DDE (/dev/sdb) /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDI /boot/efi/rien d'autre

bon, alors c'est normal!? c'est le dossier boot, il doit etre réécrit a chaque redemarrage? j'en sais rien, je m'y connais pas trop en anatomie linux

Or GRUB utilise /boot/efi/efi/debian/grub.cfg pour positionner $prefix. Si l'UUID de la partition racine est modifié et ne correspond pas avec celui dans ce fichier, alors ça fait ce que tu observes.


dc si
- je demarre sur DDI >> modifier /boot/efi/EFI/debian et y coller l'UUID de la partition racine du DDE?
- je demarre sur DDE >> modifier /boot/efi/EFI/debian et y coller l'UUID de la partition racine du DDI?
c'est bien ca, car la je suis sur le DDE et ds /boot/efi/EFI/debian/grub.cfg, c'est l'UUID de la partition racine du DDI qui est marquee
ms alors du coup ca ne sert a rien de modifier ces 2 fichiers (les fichiers jumeaux /boot/efi/EFI/debian/grub.cfg), car a chaque redemarrage sur un des disques durs, il va m'effacer les reps/EFI/debian/tslesfichiers de l'autre disque dur

Dc SI...
je fais la restauration (clonage DDE vers DDI)
j'eteins le PC, debranche le DDE
je redemarre sur DDI [EDIT]<<<< pas possible puisque je vais tomber sur l'invite de commande grub[/EDIT]

Au fait je t'ai deja remercié pour ton temps et ton aide? oui? pas grave je le refais.
tartare
PS: je mets + de temps a rediger ce post qu'a faire clonage - tentative de restauration - reinstall >> j'ai hate d'automatiser le bouzin

Dernière modification par tartare (09-12-2021 19:45:11)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#12 09-12-2021 14:00:47

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

je redemarre
- d'abord DDI (/dev/sda), /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDE /boot/efi rien d'autre
- ensuite DDE (/dev/sdb) /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDI /boot/efi/rien d'autre

bon, alors c'est normal!?


Pour pouvoir dire si c'est normal ou pas, il faudrait que je comprenne ce que ces deux lignes veulent dire.

tartare a écrit :

c'est le dossier boot, il doit etre réécrit a chaque redemarrage?


Non. Seulement lors des mises à jour de noyau ou de GRUB. /boot n'a même pas besoin d'être monté pour le fonctionnement normal du système.
Je n'ai pas lu plus loin en attendant de comprendre ce que tu veux dire.


Il vaut mieux montrer que raconter.

Hors ligne

#13 09-12-2021 15:18:36

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

ok, desole si je suis alle vite

je redemarre
- d'abord DDI (/dev/sda), /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDE /boot/efi rien d'autre
- ensuite DDE (/dev/sdb) /boot/efi/EFI/debian/tslesfichiers >> ok, sur DDI /boot/efi/rien d'autre



signifie
je redemarre sur le disque dur interne
il y a bien les dossiers /boot/efi/EFI/debian et les fichiers ds le rep debian mais sur la racine du clone (disque dur externe) il n'y a que /boot/efi et rien de plus

je redemarre sur le disque dur externe
j'y trouve bien /boot/efi/EFI/debian et les fichiers mais sur la racine de la source (disque dur interne) il n'y a que /boot/efi et rien de plus

je demande si le dossier /boot est réécrit a chaque redemarrage parce que je ne comprends pas pourquoi les repertoires EFI/debian "disparaissent" de la racine du disque dur qui n'est pas en fonction
exemple
actuellement je suis sur mon disque dur externe
si je comprends bien je devrai trouver sur la racine du disque dur interne l'arborescence suivante:
/boot/efi/EFI/debian/6fichiers (1 ficher .CSV, 1 fichier .cfg et 4 fichiers .efi)
alors qu'il n'y a que
/boot/efi, rien de plus

voila
a+
tartare


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#14 09-12-2021 15:27:14

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

sur la racine du clone (disque dur externe) il n'y a que /boot/efi et rien de plus


Dans une racine il y a forcément /bin, /dev, /etc, /home... sinon tu ne regarde pas dans la bonne partition. Tu veux dire qu'il n'y a rien dans /boot/efi ?
C'est normal car c'est un point de montage pour la partition EFI, et comme tout point de montage normal il ne contient rien si un système de fichiers n'est pas monté dessus (rien n'empêche de monter un système de fichiers sur un répertoire non vide, mais ce n'est pas l'usage normal).

Dernière modification par raleur (09-12-2021 15:29:23)


Il vaut mieux montrer que raconter.

Hors ligne

#15 09-12-2021 18:31:36

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Tu veux dire qu'il n'y a rien dans /boot/efi ?



oui oui c'est bien ça.
ok egalement pour le point de montage, je comprends.

[EDIT]
je viens d'effacer le reste...

pourquoi ds ce cas, lorsque je monte la partition EFI du disque dur qui n'est pas en fonction, son repertoire /boot/efi reste vide?

Dernière modification par tartare (09-12-2021 19:05:55)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#16 09-12-2021 19:24:35

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

pourquoi ds ce cas, lorsque je monte la partition EFI du disque dur qui n'est pas en fonction, son repertoire /boot/efi reste vide?


Tu la montes comment et où ?
Une partition EFI ne contient pas de répertoire /boot/efi, ce répertoire est sur la partition racine pour servir de point de montage à la partition EFI.

Dernière modification par raleur (09-12-2021 19:25:35)


Il vaut mieux montrer que raconter.

Hors ligne

#17 09-12-2021 19:36:29

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

stop,

tu as raison, je me suis mal exprime.
je monte la partition EFI du disque dur qui n'est pas en fonction et ds la partition racine du meme disque dur le dossier /boot/efi reste vide

ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#18 09-12-2021 19:53:22

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Ça dépend où tu montes la partition EFI. Si tu la montes sur le répertoire /boot/efi de la partition racine du même disque, tu verras son contenu au bon endroit.

Il vaut mieux montrer que raconter.

Hors ligne

#19 09-12-2021 20:11:46

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

ok,

bon, faut que j'ecrive en reflechissant (ou son contraire)

dans le #8
tu dis

Or GRUB utilise /boot/efi/efi/debian/grub.cfg pour positionner $prefix. Si l'UUID de la partition racine est modifié et ne correspond pas avec celui dans ce fichier, alors ça fait ce que tu observes.



Si apres avoir fait ma restauration, je tombe fatalement sur l'invite de commande grub.

je dois donc agir apres le clonage et ses manips
mais
AVANT la restauration,
il faut que je modifie le fichier EFI/debian/grub.cfg du DDE?
que j'y efface l'UUID de la partition racine du DDI pr la remplacer par l'UUID de la partition racine du DDE?
et pour ca,
tjs AVANT la restauration, faut que je demarre au moins 1x sur le DDI, que je monte la partition EFI du DDE, que je modifie ce fichier et SEULEMENT ensuite je peux lancer le processus de restauration?

je suis dans le bon?


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#20 09-12-2021 20:19:59

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Je ne sais pas comment fonctionne ton processus de clonage/restauration et je n'ai pas envie d'y mettre le nez.
Avant, après, débrouille-toi comme tu veux, mais pour que l'amorçage sur chaque disque soit fonctionnel, l'UUID dans le fichier EFI/debian/grub.cfg de chaque partition EFI doit correspondre à l'UUID de la partition racine du même disque dur.

Il vaut mieux montrer que raconter.

Hors ligne

#21 09-12-2021 20:31:58

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

ok ok
bon je vais arreter là,
tenter 1 ou 2 petites choses et puis je verrai bien.
j'ai deja une soluce de "secours" avec la modif ds le bios.

Quoi qu'il en soit, je reviendrai donner des nouvelles
et succes ou pas, je te remercie pour le temps que tu as pris pour m'aider.

Bonne soirée.
tartare

ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#22 21-12-2021 16:47:21

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

bon, ca y est, j'ai reussi

je poste les 2 scripts

le premier est pr le clonage.
script02_apres_clonage
lorsque vs avez termine le clonage, vs ne redemarrez pas, vs entrez ds un shell clonezilla
vs executez le script

le second est pr la restauration
script05_restauration
idem: lorsque vs avez termine la restauration (qui est un clonage en fait), vs ne redemarrez pas, vs entrez ds un shell clonezilla
vs executez le script

c'est pr une configuration precise
a l'installation de debian vs avez cree 3 partitions
- 1 EFI/vfat
- 1 swap
- 1 racine (qui contient aussi le /home)
a l'installation, Debian cree une 4° partition de 700ko (environ) ms elle n'apparait pas ds le systeme lorsqu'il est installé.

les scripts:
au niveau de la conceptualisation: il y a pas mal de choses a revoir
declaration des variables: idem, c'est pas franchement genial, c'est a revoir aussi

il ne faut pas oublier d'enlever l'option de SecureBoot ds le bios (d'apres mes souvenirs cela pose des problemes)
les scripts posent des questions, vs repondez pas oui ou par non.
les scripts st concus de telle maniere a ce que tt le processus soit execute d'une traite. dc si vs arretez en cours, les changements effectues sont faits, cx pas encore effectues seront a faire.
vs pvez neanmoins relancer les scripts plusieurs fois d'affilée, ca ne doit pas poser de probleme.
il faut penser selon le cas de figure a effacer manuellement les points de montage des partitions (notamment si vs ouvrez d'autres consoles pr editer, verifier les modifications apportees a vos fichiers)

mes scripts st executes depuis une cle USB qui se nomme: sauv_donnees.
Je vs conseille de faire de meme ou alors vs editez les scripts

les scripts st commentes (trop?), lisez et impregnez vs en avt de faire quoi que ce soit.
pr executer les scripts: c'est en root, depuis la cle USB

il y a ces memes commentaires et d'autres ds les scripts.

script02_apres_clonage


#!/bin/bash

## script a executer en root depuis le shell de clonezilla
## ce script part du principe que vs avez cloné votre DDI sur votre DDE (operation de clonage)

## version bash: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
## version debian: Debian GNU/Linux 11 (bullseye)
## version noyau: 5.10.0-9-amd64

## AVERTISSEMENT: desactiver le secure boot ds le bios

## se logguer en root depuis le shell clonezilla: sudo -i, pas de mot de passe demandé
## monter votre cle USB contenant les scripts ds /media/nomutilisateur/sauv_donnees
## ou nomutilisateur est le nom de votre compte utilisateur lorsque vs etes sous Debian

## AVERTISSEMENT: vs devez etre sur de savoir quel disque dur est monte sur /dev/sda et quel disque dur est monte sur /dev/sdb
## pr cela on affichera le resultat de la commande fdisk -l
## en fait, tapez la commande fdisk -l maintenant car il se pourrait que la sortie soit + importante que l'ecran.
## Si tel etait le cas, vs pvez tjs envoyer la sortie ds un fichier avec la commande fdisk -l > /media/nomutilisateur/sauv_donnees/nomfichier
## reperez le modele de vos disques durs et differenciez les (ds votre tete ou sur papier)
## IL FAUT QD MEME QUE VOTRE DDI SOIT RECONNU EN TANT QUE /DEV/SDA

## AVERTISSEMENT: savoir utiliser un minimum la ligne de commande
## commande mount
## commande umount
## commande cd
## commande chmod (seulement si vs n'avez pas deja rendu vos scripts executables)
## savoir executer un script (en etant ds son repertoire: commande: ./monscript)
## creer et effacer un repertoire (pr le point de montage de votre clé USB)
## autres ???

## variables que vs allez definir
## variable de votre compte utilisateur (chez moi: herve) (cela vs sera demande + tard)
## variables (au nbre de 2) qui definissent les lettres de vos disques durs (cela vs sera demande + tard)

## variables definies en dur (a modifier si necessaire)
## variable qui porte le nom de votre cle USB ou est stocké ce script (definie en dur, dc a editer si nessaire)
  ## exemple: nom_cle_USB= 'sauv_donnees'
  ## NB: si vs ne le connaissez pas, en root ds le terminal, commande fdisk -l, reperez le modele de votre cle
    ## et ensuite blkid. si votre cle a un label (nom), il sera affiche.
    ## sinon vs devez trouver un moyen pr...
## variable qui definit le nom du (ou des) repertoire(s) de votre cle USB et qui contient ce script (definie en dur, a editer si vs choisissez
  ## un autre nom de repertoire)
  ## exemple: nom_rep_cle_USB='scripts_bash_clonage_restauration'

## script bash pr root pr automatiser les manips apres 1 clonage reussi avec clonezilla
## A l'installation de Debian, le disque dur interne a été composé avec 3 partitions
## ds cet ordre
## - 1 partition EFI (amorcable), de type vfat
## - 1 partition swap, de type swap
## - 1 partition racine (qui contient la racine + le home), de type ext4
## PS: j'avais une 4° partition cree de 700ko. Elle n'apparait pas sur le disque, c'est dc
## specifique à l'installation, ne vs en preoccupez pas
## si vs en avez +, modifiez ce script en consequence

echo
echo "=========== script interactif (avec confirmation) ==========="
echo "=========== dans le but de pouvoir demarrer sur   ==========="
echo "=========== le systeme clone (le DDE)             ==========="
echo "=========== A executer ds le terminal             ==========="
echo "=========== (ou en console)                       ==========="
echo "=========== sous le compte root                   ==========="
echo

######################################################################################################
## fonctions
######################################################################################################

confirm() {
  read -r -p "{$1} [y/n]" response
  case "$response" in [yY][eE][sS]|[yY])
    true;;
  *)
    false;;
esac
}

#####################################################################################################
## script
#####################################################################################################
## COMMENTAIRE
## - DDI= Disque Dur Interne
## - DDE= Disque Dur Externe
## - si je parle de partition EFI ou partition vfat: c'est la meme chose c'est une partition EFI de type vfat (il y en a 1 par disque dur)

#####################################################################################################


echo
echo "====================================================================================="
echo
## etape -08: definition de variables necessaires a l'execution de ce script depuis le shell clonezilla
# nom utilisateur: il est utilisé pr
  # - les chemins de creation et suppression des repertoires et fichiers
  # - creation et suppression des points de montage
  # - modifications des fichiers
    # /etc/fstab
    # /boot/grub/grub.cfg
    # /etc/default/grub
    # /EFI/debian/grub.cfg
  # - le chroot
   
echo
echo "====================================================================================="
echo
## variable qui definit votre compte utilisateur
read -p "entrez votre compte utilisateur:" utilisateur
echo 'votre compte utilisateur est: '$utilisateur
echo
echo "====================================================================================="
echo
## variable qui definit le nom de votre cle USB ou est stocké ce script
nom_cle_USB='sauv_donnees'
echo 'definition de la valeur de la variable nom_cle_USB (le nom de votre cle USB): '$nom_cle_USB
echo
echo "====================================================================================="
echo
## variable qui definit le nom du repertoire de votre cle USB et qui contient ce script
## sert a creer le rep et fichier qui contient les UUIDs du DDI
## et ensuite à les supprimer
nom_rep_cle_USB='scripts_bash_clonage_restauration'
echo 'definition de la valeur de la variable nom_cle_USB: '$nom_rep_cle_USB
echo
echo "====================================================================================="
echo
## etape -07: affichage de la commande fdisk -l pr reconnaitre la designation des DDI et DDE
echo 'retour de la commande fdisk -l pr reconnaitre vos disques durs'
echo
fdisk -l
if confirm "grace a ce retour commande, vs pvez savoir quel lettre designe votre DDI et quelle lettre designe votre DDE, cela va vs etre demande.Etes vs prets?";
then
  echo "etape -07: ok? alors on peut continuer ce script"
else
  echo "etape -07: non?, alors ns arretons ce script. Re executez le lorsque vs serez prets, merci"
  exit 0
fi
echo
echo "====================================================================================="
echo
## variable qui definit la lettre designant votre DDI
read -p "entrez la lettre qui designe votre DDI (tapez une seule lettre, pas besoin de touche retour):" -n 1 designation_DDI
## echo "Votre DDI est désigné sous: /dev/sd"$designation_DDI
echo
designe_DDI='/dev/sd'$designation_DDI
echo 'Votre DDI est désigné en tant que: '$designe_DDI

## variable qui definit la lettre designant votre DDE
read -p "entrez la lettre qui designe votre DDE (tapez une seule lettre, pas besoin de touche retour):" -n 1 designation_DDE
## echo "Votre DDE est désigné sous: /dev/sd"$designation_DDE
echo
designe_DDE='/dev/sd'$designation_DDE
echo 'Votre DDE est désigné en tant que: '$designe_DDE
echo
echo "====================================================================================="
echo
## etape -06: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk
## ameliorations possibles?
echo "etape -06: creation d'un repertoire et d'un fichier temporaires qui va contenir les UUIDs de /dev/sda (votre DDI)"
echo "nom du repertoire: fichiers_script02"
echo "qui doit se trouver sur votre clé USB (et qui a ete efface pdt que vs lisez ces lignes)"
mkdir /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB
lsblk -o UUID $designe_DDI > /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt
echo
echo "====================================================================================="
echo
## etape -05: efface les 2 premieres L du fichier
## ameliorations possibles?
echo "etape -05: fichier lu: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt
echo
echo "====================================================================================="
echo
## etape -04: compte le nbre de L ds le fichier
## SANS afficher le nom du fichier
## ameliorations possibles?
nbre_lignes=$(wc -l < /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt);
echo 'etape -04: nbre de L ds le fichier= nbre de partitions sur /dev/sda'
echo 'il y a '$nbre_lignes' lignes inscrites ds le fichier, vs devez avoir le meme nbre de partitions sur votre /dev/sda (DDI) et sur votre /dev/sdb (DDE), sinon n executez pas ce script'
echo
echo "====================================================================================="
echo
## etape -03: boucle for utilisant un tableau et qui affecte
## à un nom de variable dynamique la valeur correspondante du n° de ligne lue ds le fichier indiqué
## avec utilisation de sed
## ameliorations possibles?
for i in $(seq 1 $nbre_lignes); do
  # echo "nom de la variable qui contient UUID de la partition $i : " UUID_$i
  UUID_partition[$i]=$(sed -n "${i}p" /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt)
  echo "Verification de UUID de la partition numéro $i est : ${UUID_partition[$i]}"    
done

echo "etape -03:"
echo "UUID partition 1: ${UUID_partition[1]}"
echo "UUID partition 2: ${UUID_partition[2]}"
echo "UUID partition 3: ${UUID_partition[3]}"
echo
echo "====================================================================================="
echo
## etape -02: affecte de nveaux noms aux variables issues de seq 1
## pr le script 02 apres_clonage
## ameliorations possibles?
## changer le nom des variables pr definir dynamiquement la lettre du disque au cas ou le DDI serait reconnu comme autre que /dev/sda
UUID_dev_sda1=${UUID_partition[1]}
UUID_dev_sda2=${UUID_partition[2]}
UUID_dev_sda3=${UUID_partition[3]}

echo 'etape -02:'
echo 'UUID de la partition /dev/sda1 (EFI): '$UUID_dev_sda1
echo 'UUID de la partition /dev/sda2 (SWAP): '$UUID_dev_sda2
echo 'UUID de la partition /dev/sda3 (racine): '$UUID_dev_sda3
echo "ouvrez un second terminal et lancez la commande blkid en root"
echo "Les UUIDs ci-dessus sont celles des partitions de /dev/sda (votre DDI)"
echo "pr le moment elles doivent etre identiques aux UUIDs des partitions de /dev/sdb (votre DDE)"
echo "Pr verifier: ouvrez un autre terminal, logguez vs en root et tapez la commande blkid"
echo "ds une prochaine etape, ns allons modifier les UUIDs et PARTUUIDs des partitions de /dev/sdb"
echo
echo "====================================================================================="
echo
## etape -01: efface repertoire et fichier ou st inscrites les UUIDs
## ameliorations possibles?
echo "etape -01: on efface le fichier temporaire qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt
rmdir /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB
echo
echo "====================================================================================="
echo
if confirm "Jusqu a present rien n a ete modifié sur vos disques, vlez-vs continuer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "non?, ok, merci"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 00: reconnaitre comment st montees les partitions (/dev/sdb ou /dev/sdc)
## ameliorations possibles?
if confirm "les partitions du DDE st elles reconnues en tant que /dev/sdb? Vs pvez verifier en regardant le retour de la commande blkid que vs avez précedemment tapé. Si la réponse est non, vs devez modifier les chemins ds ce script et le ré executer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "etape 00: PROBLEME, veuillez debrancher ts les medias amovibles a l'exception du DD externe et re-executez ce script"
  echo "verifiez ensuite que les partitions du DDE soient reconnues en tant que /dev/sdb, merci"
  echo "ou modifiez les chemins ds ce script"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 01: demontage des partitions de /dev/sdb
## ameliorations possibles?
if confirm "etape 01: Démonter les partitions de votre DDE (/dev/sdb) (au cas ou elles seraient montees)?";
then
  echo 'on peut demonter les partitions '$designe_DDE ## /dev/sdb
  umount $designe_DDE'1' ## /dev/sdb1
  umount $designe_DDE'2' ## /dev/sdb2
  umount $designe_DDE'3' ## /dev/sdb3
else
  echo "etape 01: un probleme est survenu au démontage des partitions. Arret du script. Prenez vs la tete et lisez le script"
  echo "pr savoir ce qui ne va pas"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 02: modification des UUIDs des partitions demontees de /dev/sdb
## ameliorations possibles?

## etape 02A
if confirm "etape 02: les partitions st demontees, peut on modifier leur UUID?";
then
  echo 'nveaux UUIDs pour les partitions de '$designe_DDE ## /dev/sdb
 
  echo $designe_DDE'1 (/dev/sdb1) (EFI/vfat)'
  ## dd bs=1 skip=67 count=4 if=/dev/sdb1 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  dd bs=1 skip=67 count=4 if=$designe_DDE'1' 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  UUID="1234-ABCD"
        printf "\x${UUID:7:2}\x${UUID:5:2}\x${UUID:2:2}\x${UUID:0:2}" \ | dd bs=1 seek=67 count=4 conv=notrunc of=$designe_DDE'1' ## /dev/sdb1
 
  echo $designe_DDE'3 (/dev/sdb3) (racine)'
  e2fsck -f $designe_DDE'3' ## /dev/sdb3
  tune2fs -U ea512bc4-7ef5-70f6-eb6a-ac59dae75cfc $designe_DDE'3' ## /dev/sdb3
 
  echo $designe_DDE'2 (/dev/sdb2) (SWAP)'
  mkswap -U dfa27a61-8b1d-2ad7-db94-9157fab1de3a $designe_DDE'2' ## /dev/sdb2
else
  echo "etape 02A: PROBLEME au niveau de l'affectation des UUIDs"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 02B: definition de 3 variables ayant chacune pr valeur
## l'UUID définie de chacune des partitions du DDE
## variables qui vt servir a réécrire le /etc/fstab et boot/grub/grub.cfg du DDE
echo 'etape 02B: definition de 3 variables qui auront pr valeur les nvelles UUIDs des partitions de '$designe_DDE' (/dev/sdb) (votre DDE)'
uuidVFAT_DDE=1234-ABCD
uuidracine_DDE=ea512bc4-7ef5-70f6-eb6a-ac59dae75cfc
uuidswap_DDE=dfa27a61-8b1d-2ad7-db94-9157fab1de3a
echo 'UUID de la partition '$designe_DDE'1 (/dev/sdb1) (EFI): '$uuidVFAT_DDE
echo 'UUID de la partition '$designe_DDE'2 (/dev/sdb2) (SWAP): '$uuidswap_DDE
echo 'UUID de la partition '$designe_DDE'3 (/dev/sdb3) (racine): '$uuidracine_DDE
echo
echo "====================================================================================="
echo
## etape 03: modification des PARTUUIDs des partitions du DDE montees de $designe_DDE (/dev/sdb)
## ameliorations possibles?

## etape 03A
if confirm 'etape 03A: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDE'1 (/dev/sdb1) (EFI/vfat) du DDE?';
then
  echo 'nveau PARTUUID pr '$designe_DDE'1 (/dev/sdb1) (EFI/vfat)'
  sgdisk -u 1:27adf65e-b721-8345-ebac-24adfc716fb8 $designe_DDE ## /dev/sdb
else
  echo 'etape 03A: PROBLEME pr definir le nvo PARTUUID de '$designe_DDE'1 (/dev/sdb1) (EFI/vfat) du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 03B
if confirm 'etape 03B: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDE'3 (/dev/sdb3) (racine) du DDE?';
then
  echo 'nveau PARTUUID pr '$designe_DDE'3 (/dev/sdb3) (racine)'
  sgdisk -u 3:a3fdfd93-3bf4-57fa-7f3a-2f64ac1b81fc $designe_DDE ## /dev/sdb
else
  echo "etape 03B: PROBLEME pr definir le nvo PARTUUID de '$designe_DDE'3 (/dev/sdb3) (racine) du DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 03C
if confirm 'etape 03C: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDE'2 (/dev/sdb2) (SWAP) du DDE?';
then
  echo 'nveau PARTUUID pr '$designe_DDE'2 (/dev/sdb2) (SWAP)'
  sgdisk -u 2:f2a1fc8e-d4c8-5ac8-fd5e-ea6f99bfdac7 $designe_DDE ## /dev/sdb
else
  echo 'etape 03C: PROBLEME pr definir le nvo PARTUUID de '$designe_DDE'2 (/dev/sdb2) (SWAP) du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 04: monter la partition $designe_DDE3 (/dev/sdb3) (DDE) sur /media/$utilisateur/$uuidracine_DDE (depuis votre DDI) pr modifier ensuite les 3 fichiers
## ameliorations possibles?
if confirm 'etape 04: ns avons besoin de monter la partition '$designe_DDE'3 (/dev/sdb3) (racine) de votre DDE pr modifier 3 fichiers, vlez-vs la monter?';
then
  echo "creation du point de montage"
  mkdir /media/$utilisateur/$uuidracine_DDE
  echo 'montage de la partition '$designe_DDE'3 (/dev/sdb3) (racine) (de votre DDE) sur /media/'$utilisateur'/'$uuidracine_DDE' (depuis votre DDI)'
  ## mount /dev/sdb3 /media/$utilisateur/$uuidracine_DDE
  mount $designe_DDE'3' /media/$utilisateur/$uuidracine_DDE
else
  echo 'etape 04: probleme pour monter la partition '$designe_DDE'3 (/dev/sdb3) (racine) de votre DDE'
fi
echo
echo "====================================================================================="
echo
## etape 05: modifier les 3 fichiers cles du DDE que st
## - /etc/fstab
## - /boot/grub/grub.cfg
## - /etc/default/grub
## ameliorations possibles?

## etape 05A
if confirm 'etape 05A: modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab (de votre DDE) en y inscrivant la nvelle UUID de la partition racine du DDE?';
then
  echo 'etape 05A: mofification du fichier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab du DDE'
  echo 'ancienne UUID de la racine: '$UUID_dev_sda3
  echo 'par nvelle UUID de la racine: '$uuidracine_DDE
  sed -i "s/${UUID_dev_sda3}/${uuidracine_DDE}/g" /media/$utilisateur/$uuidracine_DDE/etc/fstab
  echo "Vous pvez verifier en editant le fichier"
else
  echo 'etape 05A: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab et y inscrire la nvelle UUID de la partition racine du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 05B
if confirm 'etape 05B: modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab (de votre DDE) en y inscrivant la nvelle UUID de la partition vfat du DDE?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab du DDE'
  echo "ancienne UUID de la vfat: ${UUID_dev_sda1}"
  echo "par nvelle UUID de la vfat: ${uuidVFAT_DDE}"
  sed -i "s/${UUID_dev_sda1}/${uuidVFAT_DDE}/g" /media/$utilisateur/$uuidracine_DDE/etc/fstab
  echo "Vous pvez verifier en editant le fichier"
 
else
  echo 'etape 05B: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab et y inscrire la nvelle UUID de la partition vfat du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 05C
if confirm 'etape 05C: modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab (de votre DDE) en y inscrivant la nvelle UUID de la partition swap du DDE?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab du DDE'
  echo "ancienne UUID de la swap: ${UUID_dev_sda2}"
  echo "par nvelle UUID de la swap: ${uuidswap_DDE}"
  sed -i "s/${UUID_dev_sda2}/${uuidswap_DDE}/g" /media/$utilisateur/$uuidracine_DDE/etc/fstab
  echo "Vous pvez verifier en editant le fichier"
else
  echo 'etape 05C: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDE'/etc/fstab et y inscrire la nvelle UUID de la partition swap du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 05D
if confirm 'etape 05D: modifier /media/'$utilisateur'/'$uuidracine_DDE'/boot/grub/grub.cfg du DDE et remplacer les occurences de l ancienne UUID de la partition racine par des occurences de la nvelle UUID?';
then
  echo 'modification du fichier /media/'$utilisateur'/'$uuidracine_DDE'/boot/grub/grub.cfg du DDE'
  echo "ttes les occurences de l'ancienne UUID de la partition racine: ${UUID_dev_sda3}"
  echo "par des ocurrences de la nvelle UUID de la partition racine: ${uuidracine_DDE}"
  sed -i "s/${UUID_dev_sda3}/${uuidracine_DDE}/g" /media/$utilisateur/$uuidracine_DDE/boot/grub/grub.cfg
  echo "Vous pvez verifier en editant le fichier"
else
  echo 'etape 05D: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDE'/boot/grub/grub.cfg et remplacer les occurences de l ancienne UUID de la partition racine par des occurences de la nvelle UUID de la partition racine'
  exit 0
fi
echo
echo "====================================================================================="
echo "====================================================================================="
echo
## etape 05E
echo 'etape 05E: ns devons monter la partition '$UUID_dev_sda3' (/dev/sda3 du DDI)'
echo 'creation du point de montage et montage de la partition racine du DDI: '$designe_DDI'3'
mkdir /media/$utilisateur/$UUID_dev_sda3
mount $designe_DDI'3' /media/$utilisateur/$UUID_dev_sda3

echo 'ns sommes ds le script script02_apres_clonage, le disque source est toujours DDI, le disque cible est tjs DDE, c est une operation de clonage'
echo 'ns devons dc effacer la L: GRUB_DISABLE_OS_PROBER=true du fichier DDI/etc/default/grub du disque source, SI ELLE EXISTE'

## condition grep qui recherche au - 1 occurence du pattern ds le fichier /etc/default/grub du disque source, votre DDI ($designe_DDI) (/dev/sda)
## on modifie ou pas selon nos souhaits
if grep -q 'GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$UUID_dev_sda3/etc/default/grub
then
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque source DDI/etc/default/grub, vlez vs l effacer?';
  then
    echo 'on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDI/etc/default/grub'
    sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$UUID_dev_sda3/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque source DDI/etc/default/grub'
  fi
else
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque source DDI/etc/default/grub, vlez vs l ajouter?';
  then
    echo 'oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDI/etc/default/grub'
    sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$UUID_dev_sda3/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque source DDI/etc/default/grub'
  fi
fi

echo 'on demonte la partition '$UUID_dev_sda3' ( /dev/sda3 du DDI) et on efface son point de montage'
umount /media/$utilisateur/$UUID_dev_sda3
rmdir /media/$utilisateur/$UUID_dev_sda3

echo
echo "====================================================================================="
echo "====================================================================================="
echo
echo 'ns sommes ds le script script02_apres_clonage, le disque source est toujours DDI, le disque cible est tjs DDE, c est une operation de clonage'
echo 'ns devons dc ajouter la L: GRUB_DISABLE_OS_PROBER=true au fichier DDE/etc/default/grub du disque cible, SI ELLE N EXISTE PAS'

## condition grep qui recherche au - 1 occurence du pattern ds le fichier DDE/etc/default/grub du disque cible, votre DDE (/dev/sdb normalement)
## on modifie ou pas selon nos souhaits
if grep -q 'GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuidracine_DDE/etc/default/grub
then
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque cible DDE/etc/default/grub, vlez vs l effacer?';
  then
    echo 'on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDE/etc/default/grub'
    sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$uuidracine_DDE/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub'
  fi
else
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque cible DDE/etc/default/grub, vlez vs l ajouter?';
  then
    echo 'oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDE/etc/default/grub'
    sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuidracine_DDE/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub'
  fi
fi
echo
echo "====================================================================================="
echo "====================================================================================="
echo
## etape 05F: demonter la partition racine de DDE ($designe_DDE) (/dev/sdb) et supprimer le repertoire
if confirm 'etape 05F: demonter la partition racine '$designe_DDE'3 (/dev/sdb3) du DDE et supprimer le repertoire de montage?';
then
  umount $designe_DDE'3' ## /dev/sdb3
  rmdir /media/$utilisateur/$uuidracine_DDE
else
  echo 'etape 05F: pble pr demonter la partition racine '$designe_DDE'3 (/dev/sdb3) du DDE et/ou supprimer le repertoire de montage'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 06: creer le rep pr monter la partition EFI du DDE
## monter la partition EFI du DDE
## ajouter la modification du fichier DDE/EFI/debian/grub.cfg et y remplacer l'ancienne UUID de
## la racine du DDI par la nvelle UUID de la racine du DDE
## ameliorations possibles?

echo 'Ns devons maintenant modifier le fichier /media/'$utilisateur'/'$uuidVFAT_DDE'/EFI/debian/grub.cfg de votre DDE'
echo 'située sur la partition '$designe_DDE'1 (/dev/sdb1) de votre DDE'
echo
echo "====================================================================================="
echo
## etape 06A
if confirm 'etape 06A: creer un point de montage et monter la partition EFI '$designe_DDE'1 (/dev/sdb1) du DDE?';
then
  echo "creation du point de montage"
  mkdir /media/$utilisateur/$uuidVFAT_DDE
  echo "on monte la partition"
  ## mount /dev/sdb1 /media/$utilisateur/$uuidVFAT_DDE
  mount $designe_DDE'1' /media/$utilisateur/$uuidVFAT_DDE
else
  echo 'etape 06A: probleme pr creer le point (repertoire) de montage et/ou monter la partition EFI '$designe_DDE'1 (/dev/sdb1) du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 06B
if confirm 'etape 06B: modifier /media/'$utilisateur'/'$uuidVFAT_DDE'/EFI/debian/grub.cfg (de votre DDE) en y inscrivant la nvelle UUID de la partition racine du DDE?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidVFAT_DDE'/EFI/debian/grub.cfg du DDE'
  echo "UUID inscrite: celle de la partition racine du DDI: ${UUID_dev_sda3}"
  echo "par nvelle UUID de la partition racine du DDE: ${uuidracine_DDE}"
  sed -i "s/${UUID_dev_sda3}/${uuidracine_DDE}/g" /media/$utilisateur/$uuidVFAT_DDE/EFI/debian/grub.cfg
else
  echo 'etape 06B: probleme pr modifier /media/'$utilisateur'/'$uuidVFAT_DDE'/EFI/debian/grub.cfg (de votre DDE) et y inscrire la nvelle UUID de la partition racine du DDE'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 06C: on demonte la vfat du DDE et on supprime le repertoire de montage
if confirm "etape 06C: demonter la vfat du DDE et supprimer son point (repertoire) de montage?";
then
  umount $designe_DDE'1' ## /dev/sdb1
  rmdir /media/$utilisateur/$uuidVFAT_DDE
else
  echo 'etape 06C: pble pr demonter la partition EFI '$designe_DDE'1 (/dev/sdb1) du DDE et/ou supprimer le repertoire de montage'
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 07: on definit un nveau disk GUID pr DDE (/dev/sdb)
if confirm 'etape 07: Vlez-vs definir un nvo disk GUID pr votre DDE '$designe_DDE' (/dev/sdb)?';
then
  echo "definition d'un nvo disk GUID pr votre DDE '$designe_DDE' (/dev/sdb)"
  sgdisk -U 61DC8AE7-F531-482A-DAC5-D527ACD734FA $designe_DDE ## /dev/sdb
else
  echo "etape 07: pble pr definir un nvo disk GUID pr votre DDE '$designe_DDE' (/dev/sdb)"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 08: update-grub depuis le systeme source (DDI)
## ameliorations possibles?
if confirm "etape 08: les 4 fichiers cles du DDE ont ete modifiés, vlez vs updater grub depuis le systeme source (DDI)?";
then
  ## echo 'il faut chrooter le DDI et updater DDI'
  ## mkdir /mnt/sda3
  ## mount /dev/sda3 /mnt/sda3
  ## mount -o bind /dev /mnt/sda3/dev
  ## mount -o bind /sys /mnt/sda3/sys
  ## mount -o bind /proc /mnt/sda3/proc
  ## chroot /mnt/sda3
  ## update-grub /dev/sda3
 
  echo 'creation du point de montage et montage de la partition racine '$designe_DDI'3 (/dev/sda3) du DDI'
  mkdir /media/$utilisateur/$UUID_dev_sda3
  mount $designe_DDI'3' /media/$utilisateur/$UUID_dev_sda3
 
  echo  'on monte /dev sur DDI/dev'
  mount -o bind /dev /media/$utilisateur/$UUID_dev_sda3/dev
  echo 'on monte /sys sur DDI/sys'
  mount -o bind /sys /media/$utilisateur/$UUID_dev_sda3/sys
  echo 'on monte /proc sur DDI/proc'
  mount -o bind /proc /media/$utilisateur/$UUID_dev_sda3/proc
 
  echo 'AVERTISSEMENT: A LIRE '
  echo 'vs etes pret: ce script vient de chrooter le systeme, votre invite de commande a ete modifiee'
  echo 'puisque vs avez lance ce script depuis votre cle USB, le chemin indique ds votre invite de commande etait /media/VotreNomUtilisateur/sauv_donnees'
  echo 'maintenant votre invite de commande doit vs indiquer que vs etes tjs root mais vs etes devez etre situé a la racine de votre systeme chroote'
  echo 'tapez la commande suivante pr updater le grub du DDI: update-grub /dev/sda3'
  echo 'puis sortez du systeme chroote en tapant la commande: exit'
  echo 'le script reprendra son execution'
  chroot /media/$utilisateur/$UUID_dev_sda3
 
  echo 'on demonte proc, sys et dev du DDI'
  umount /media/$utilisateur/$UUID_dev_sda3/proc
  umount /media/$utilisateur/$UUID_dev_sda3/sys
  umount /media/$utilisateur/$UUID_dev_sda3/dev
 
  echo 'on demonte la racine du DDI et on efface son rep, point de montage'
  umount /media/$utilisateur/$UUID_dev_sda3
  rmdir /media/$utilisateur/$UUID_dev_sda3

  echo "normalement vs etes ok"
  echo "fermez ttes les consoles et comptes que vs avez pu ouvrir"
  echo "pr etre sur que les modifs aient ete prises en compte"
  echo "une x redemarre, Verifiez que tout SEMBLE normal."
  echo "En vous remerciant"
else
  echo "etape 08: probleme pendant l'operation d'updatage de grub du DDI"
  exit 0
fi
echo
echo "====================================================================================="
 



script05_restauration


#!/bin/bash

## script a executer en root depuis le shell de clonezilla
## ce script part du principe que vs avez restauré votre DDE sur votre DDI (operation de restauration)

## version bash: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
## version debian: Debian GNU/Linux 11 (bullseye)
## version noyau: 5.10.0-9-amd64

## AVERTISSEMENT: desactiver le secure boot ds le bios (vs avez du le faire pr l'operation de clonage)

## se logguer en root depuis le shell clonezilla: sudo -i, pas de mot de passe demandé
## monter votre cle USB contenant les scripts ds /media/nomutilisateur/sauv_donnees
## ou nomutilisateur est le nom de votre compte utilisateur lorsque vs etes sous Debian

## AVERTISSEMENT: vs devez etre sur de savoir quel disque dur est monte sur /dev/sda et quel disque dur est monte sur /dev/sdb
## pr cela on affichera le resultat de la commande fdisk -l
## en fait, tapez la commande fdisk -l maintenant car il se pourrait que la sortie soit + importante que l'ecran.
## Si tel etait le cas, vs pvez tjs envoyer la sortie ds un fichier avec la commande fdisk -l > /media/nomutilisateur/sauv_donnees/nomfichier
## reperez le modele de vos disques durs et differenciez les (ds votre tete ou sur papier)
## IL FAUT QD MEME QUE VOTRE DDI SOIT RECONNU EN TANT QUE /DEV/SDA

## AVERTISSEMENT: savoir utiliser un minimum la ligne de commande
## commande mount
## commande umount
## commande cd
## commande chmod (seulement si vs n'avez pas deja rendu vos scripts executables)
## savoir executer un script (en etant ds son repertoire: commande: ./monscript)
## creer et effacer un repertoire (pr le point de montage de votre clé USB)
## passer d'une console a une autre
## autres ???

## variables que vs allez definir
## variable de votre compte utilisateur (chez moi: herve) (cela vs sera demande + tard)
## variables (au nbre de 2) qui definissent les lettres de vos disques durs (cela vs sera demande + tard)

## variables definies en dur (a modifier si necessaire)
## variable qui porte le nom de votre cle USB ou est stocké ce script (definie en dur, dc a editer si nessaire)
  ## exemple: nom_cle_USB= 'sauv_donnees'
  ## NB: si vs ne le connaissez pas, en root ds le terminal, commande fdisk -l, reperez le modele de votre cle
    ## et ensuite blkid. si votre cle a un label (nom), il sera affiche.
    ## sinon vs devez trouver un moyen pr...
## variable qui definit le nom du (ou des) repertoire(s) de votre cle USB et qui contient ce script (definie en dur, a editer si vs choisissez
  ## un autre nom de repertoire)
  ## exemple: nom_rep_cle_USB='scripts_bash_clonage_restauration'

## script bash pr root pr automatiser les manips apres 1 restauration reussie avec clonezilla
## A l'installation de Debian, le disque dur interne a été composé avec 3 partitions
## ds cet ordre
## - 1 partition EFI (amorcable), de type vfat
## - 1 partition swap, de type swap
## - 1 partition racine (qui contient la racine + le home), de type ext4
## PS: j'avais une 4° partition cree de 700ko. Elle n'apparait pas sur le disque, c'est dc
## specifique à l'installation, ne vs en preoccupez pas
## si vs en avez +, modifiez ce script en consequence

echo
echo "=========== script interactif (avec confirmation) ==========="
echo "=========== dans le but de pouvoir demarrer sur   ==========="
echo "=========== le systeme restauré (le DDI)          ==========="
echo "=========== A executer ds le terminal             ==========="
echo "=========== (ou peut-etre en console)             ==========="
echo "=========== sous le compte root                   ==========="
echo

######################################################################################################
## fonctions
######################################################################################################

confirm() {
  read -r -p "{$1} [y/n]" response
  case "$response" in [yY][eE][sS]|[yY])
    true;;
  *)
    false;;
esac
}

#####################################################################################################
## script
#####################################################################################################
## COMMENTAIRE
## - DDI= Disque Dur Interne
## - DDE= Disque Dur Externe
## - si je parle de partition EFI ou partition vfat: c'est la meme chose c'est une partition EFI de type vfat (il y en a 1 par disque dur)

echo
echo "====================================================================================="
echo
## etape -09: definition de variables necessaires a l'execution de ce script depuis le shell clonezilla
# nom utilisateur: il est utilisé pr
  # - les chemins de creation et suppression des repertoires et fichiers
  # - creation et suppression des points de montage
  # - modifications des fichiers
    # /etc/fstab
    # /boot/grub/grub.cfg
    # /etc/default/grub
    # /EFI/debian/grub.cfg
  # - le chroot
   
## variable qui definit votre compte utilisateur
read -p "etape -09: entrez votre compte utilisateur:" utilisateur
echo 'votre compte utilisateur est: '$utilisateur
echo
echo "====================================================================================="
echo
## variable qui definit le nom de votre cle USB ou est stocké ce script
nom_cle_USB='sauv_donnees'
echo 'definition de la valeur de la variable nom_cle_USB (le nom de votre cle USB): '$nom_cle_USB
echo
echo "====================================================================================="
echo
## variable qui definit le nom du repertoire de votre cle USB et qui contient ce script
## sert a creer le rep et fichier qui contient les UUIDs du DDI
## et ensuite à les supprimer
nom_rep_cle_USB='scripts_bash_clonage_restauration'
echo 'definition de la valeur de la variable nom_cle_USB: '$nom_rep_cle_USB
echo
echo "====================================================================================="
echo
## etape -08: affichage de la commande fdisk -l pr reconnaitre la designation des DDI et DDE
echo 'etape -08: retour de la commande fdisk -l pr reconnaitre vos disques durs'
echo
fdisk -l
if confirm "grace a ce retour commande, vs pvez savoir quelle lettre designe votre DDI et quelle lettre designe votre DDE, cela va vs etre demande.Etes vs prets?";
then
  echo "ok? alors on peut continuer ce script"
else
  echo "non?, alors ns arretons ce script. Re executez le lorsque vs serez prets, merci"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape -07: variable qui definit la lettre designant votre DDI
read -p "etape -07: entrez la lettre qui designe votre DDI (tapez une seule lettre, pas besoin de touche retour):" -n 1 designation_DDI
## echo "Votre DDI est désigné sous: /dev/sd"$designation_DDI
echo
designe_DDI='/dev/sd'$designation_DDI
echo 'Votre DDI est désigné en tant que: '$designe_DDI
## variable qui definit la lettre designant votre DDE
read -p "entrez la lettre qui designe votre DDE (tapez une seule lettre, pas besoin de touche retour):" -n 1 designation_DDE
## echo "Votre DDE est désigné sous: /dev/sd"$designation_DDE
echo
designe_DDE='/dev/sd'$designation_DDE
echo 'Votre DDE est désigné en tant que: '$designe_DDE
echo "====================================================================================="
echo
## etape -06: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk
## ameliorations possibles?
echo "etape -06: creation d'un repertoire et d'un fichier temporaires qui va contenir les UUIDs de /dev/sdb (votre DDE)"
echo "nom du repertoire: fichiers_script05"
echo "qui doit se trouver sur une clé USB"
mkdir /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB
lsblk -o UUID $designe_DDE > /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt

echo "====================================================================================="

## etape -05: efface les 2 premieres L du fichier
## ameliorations possibles?
echo "etape -05: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt

echo "====================================================================================="

## etape -04: compte le nbre de L ds le fichier
## SANS afficher le nom du fichier
## ameliorations possibles?
nbre_lignes=$(wc -l < /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt);
echo 'etape -04: nbre de L ds le fichier= nbre de partitions sur /dev/sdb'
echo 'il y a '$nbre_lignes' lignes inscrites ds le fichier, vs devez avoir le meme nbre de partitions sur votre /dev/sdb (DDE) et sur votre /dev/sda (DDI), sinon n executez pas ce script'

echo "====================================================================================="

## etape -03: boucle for utilisant un tableau et qui affecte
## à un nom de variable dynamique la valeur correspondante du n° de ligne lue ds le fichier indiqué
## avec utilisation de sed
## ameliorations possibles?
for i in $(seq 1 $nbre_lignes); do
  # echo "nom de la variable qui contient UUID de la partition $i : " UUID_$i
  UUID_partition[$i]=$(sed -n "${i}p" /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt)
  echo "Verification de UUID de la partition numéro $i est : ${UUID_partition[$i]}"    
done

# echo "UUID partition 1: ${UUID_partition[1]}"
# echo "UUID partition 2: ${UUID_partition[2]}"
# echo "UUID partition 3: ${UUID_partition[3]}"

echo "====================================================================================="

## etape -02: affecte de nveaux noms aux variables issues de seq 1
## pr le script 05 apres_clonage
## ameliorations possibles?
UUID_dev_sdb1=${UUID_partition[1]}
UUID_dev_sdb2=${UUID_partition[2]}
UUID_dev_sdb3=${UUID_partition[3]}

echo 'etape -02:'
echo 'UUID de la partition /dev/sdb1 (EFI): '$UUID_dev_sdb1
echo 'UUID de la partition /dev/sdb2 (SWAP): '$UUID_dev_sdb2
echo 'UUID de la partition /dev/sdb3 (racine): '$UUID_dev_sdb3
echo "ouvrez un second terminal et lancez la commande blkid en root"
echo "Les UUIDs ci-dessus sont celles des partitions de /dev/sdb (votre DDE)"
echo "ds une prochaine etape, ns allons modifier les UUIDs et PARTUUIDs des partitions de /dev/sda"

echo "====================================================================================="

## etape -01: efface repertoire et fichier ou st inscrites les UUIDs
## ameliorations possibles?
echo "etape -01: on efface le fichier temporaire qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB/contientUUIDs.txt
rmdir /media/$utilisateur/$nom_cle_USB/$nom_rep_cle_USB

echo "====================================================================================="
if confirm "Jusqu a present rien n a ete modifié sur vos disques, vlez-vs continuer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "non?, ok, merci"
  exit 0
fi
echo "====================================================================================="

## etape 00: reconnaitre comment st montees les partitions de votre DDI (qui doit etre reconnues en tant que /dev/sda)
## ameliorations possibles?
if confirm "etape 00: les partitions du DDI st elles reconnues en tant que /dev/sda? Vs pvez verifier en regardant le retour de la commande blkid que vs avez précedemment tapé. Si la réponse est non, vs devez modifier les chemins ds ce script et le ré executer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "etape 00: PROBLEME, veuillez debrancher ts les medias amovibles a l'exception du DD externe et re-executez ce script"
  echo "verifiez ensuite que les partitions du DDI soient reconnues en tant que /dev/sda, merci"
  echo "ou modifiez les chemins ds ce script"
  exit 0
fi

echo "====================================================================================="

## etape 01: demontage des partitions de /dev/sda
## ameliorations possibles?
if confirm "etape 01: Démonter les partitions de votre DDI (/dev/sda) (au cas ou elles seraient montees)?";
then
  echo 'on peut demonter les partitions '$designe_DDI ## (/dev/sda)
  umount $designe_DDI'1' ## /dev/sda1
  umount $designe_DDI'2' ## /dev/sda2
  umount $designe_DDI'3' ## /dev/sda3
else
  echo "etape 01: un probleme est survenu au démontage des partitions. Arret du script. Prenez vs la tete et lisez le script"
  echo "pr savoir ce qui ne va pas"
  exit 0
fi

echo "====================================================================================="

## etape 02: modification des UUIDs des partitions demontees de /dev/sda
## ameliorations possibles?

## etape 02A
if confirm "etape 02A: les partitions st demontees, peut on modifier leur UUID?";
then
  echo 'nveaux UUIDs pour les partitions de '$designe_DDI' (/dev/sda)'
 
  echo $designe_DDI'1 (/dev/sda1) (EFI/vfat)'
  ## dd bs=1 skip=67 count=4 if=/dev/sda1 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  dd bs=1 skip=67 count=4 if=$designe_DDI'1' 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  UUID="5249-BEAC"
        printf "\x${UUID:7:2}\x${UUID:5:2}\x${UUID:2:2}\x${UUID:0:2}" \ | dd bs=1 seek=67 count=4 conv=notrunc of=$designe_DDI'1'
 
  echo $designe_DDI'3 (/dev/sda3) (racine)'
  e2fsck -f $designe_DDI'3' ## /dev/sda3
  tune2fs -U fa512dc8-2fc7-f6a1-7fec-cd137eaf5ffe $designe_DDI'3' ## /dev/sda3
 
  echo $designe_DDI'2 (/dev/sda2) (SWAP)'
  mkswap -U dce16f43-e491-abd7-2ef7-3ea542f82eac $designe_DDI'2' ## /dev/sda2
else
  echo "etape 02A: PROBLEME au niveau de l'affectation des UUIDs"
  exit 0
fi

echo "====================================================================================="

## etape 02B: definition de 3 variables ayant chacune pr valeur
## l'UUID définie de chacune des partitions du DDI
## variables qui vt servir a réécrire le /etc/fstab et boot/grub/grub.cfg du DDI
echo 'etape 02B:: definition de 3 variables qui auront pr valeur les nvelles UUIDs des partitions de '$designe_DDI' (/dev/sda) (votre DDI)'
uuidVFAT_DDI=5249-BEAC
uuidracine_DDI=fa512dc8-2fc7-f6a1-7fec-cd137eaf5ffe
uuidswap_DDI=dce16f43-e491-abd7-2ef7-3ea542f82eac
echo 'UUID de la partition '$designe_DDI'1 (/dev/sda1) (EFI): '$uuidVFAT_DDI
echo 'UUID de la partition '$designe_DDI'2 (/dev/sda2) (SWAP): '$uuidswap_DDI
echo 'UUID de la partition '$designe_DDI'3 (/dev/sda3) (racine): '$uuidracine_DDI

echo "====================================================================================="

## etape 03: modification des PARTUUIDs des partitions du DDI montees de $designe_DDI (/dev/sda)
## ameliorations possibles?

## etape 03A
if confirm 'etape 03A: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDI'1 (/dev/sda1) (EFI/vfat) du DDI?';
then
  echo 'nveau PARTUUID pr '$designe_DDI'1 (/dev/sda1) (EFI/vfat)'
  sgdisk -u 1:81fa7d6c-d437-ace5-f4a6-fe841ac7f54e $designe_DDI ## /dev/sda
else
  echo 'etape 03A: PROBLEME pr definir le nvo PARTUUID de '$designe_DDI'1 (/dev/sdb1) (EFI/vfat) du DDE'
  exit 0
fi

echo "====================================================================================="

## etape 03B
if confirm 'etape 03B: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDI'3 (/dev/sda3) (racine) du DDI?';
then
  echo 'nveau PARTUUID pr '$designe_DDI'3 (/dev/sda3) (racine)'
  sgdisk -u 3:f4acb961-d6ac-842d-eac7-f1adf527d416 $designe_DDI ## /dev/sda
else
  echo 'etape 03B: PROBLEME pr definir le nvo PARTUUID de '$designe_DDI'3 (/dev/sda3) (racine) du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 03C
if confirm 'etape 03C: les partitions st demontees, peut on modifier le PARTUUID de '$designe_DDI'2 (/dev/sda2) (SWAP) du DDI?';
then
  echo 'nveau PARTUUID pr '$designe_DDI'2 (/dev/sda2) (SWAP)'
  sgdisk -u 2:2ead645f-c4ad-f283-ea41-f951adb47fe8 $designe_DDI
else
  echo 'etape 03C: PROBLEME pr definir le nvo PARTUUID de '$designe_DDI'2 (/dev/sda2) (SWAP) du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 04: monter la partition /dev/sda3 (DDI) sur /media/$utilisateur/$uuidracine_DDI (depuis votre DDE) pr modifier ensuite les 3 fichiers
## ameliorations possibles?
if confirm 'etape 04: ns avons besoin de monter la partition '$designe_DDI'3 (/dev/sda3) de votre DDI pr modifier 3 fichiers, vlez-vs la monter?';
then
  echo 'creation du point de montage'
  mkdir /media/$utilisateur/$uuidracine_DDI
  echo 'montage de la partition '$designe_DDI'3 (/dev/sda3) (racine) (de votre DDI) sur /media/'$utilisateur'/'$uuidracine_DDI '(depuis votre DDE)'
  mount /dev/sda3 /media/$utilisateur/$uuidracine_DDI
else
  echo 'etape 04: probleme pour monter la partition '$designe_DDI'3 (/dev/sda3) (racine) de votre DDI'
fi

echo "====================================================================================="

## etape 05: modifier les 3 fichiers cles du DDI que st
## - /etc/fstab
## - /boot/grub/grub.cfg
## - /etc/default/grub
## ameliorations possibles?

## etape 05A
if confirm 'etape 05A: modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab (de votre DDI) en y inscrivant la nvelle UUID de la partition racine du DDI?';
then
  echo 'etape 05A: mofification du fichier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab du DDI'
  echo 'ancienne UUID de la racine: '$UUID_dev_sdb3
  echo 'par nvelle UUID de la racine: '$uuidracine_DDI
  sed -i "s/${UUID_dev_sdb3}/${uuidracine_DDI}/g" /media/$utilisateur/$uuidracine_DDI/etc/fstab
  echo 'Vous pvez verifier en editant le fichier'
else
  echo 'etape 05A: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab et y inscrire la nvelle UUID de la partition racine du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 05B
if confirm 'etape 05B: modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab (de votre DDI) en y inscrivant la nvelle UUID de la partition vfat du DDI?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab du DDI'
  echo 'ancienne UUID de la vfat: '$UUID_dev_sdb1
  echo 'par nvelle UUID de la vfat: '$uuidVFAT_DDI
  sed -i "s/${UUID_dev_sdb1}/${uuidVFAT_DDI}/g" /media/$utilisateur/$uuidracine_DDI/etc/fstab
  echo 'Vous pvez verifier en editant le fichier'
 
else
  echo 'etape 05B: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab et y inscrire la nvelle UUID de la partition vfat du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 05C
if confirm 'etape 05C: modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab (de votre DDI) en y inscrivant la nvelle UUID de la partition swap du DDI?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab du DDI'
  echo 'ancienne UUID de la swap: '$UUID_dev_sdb2
  echo 'par nvelle UUID de la swap: '$uuidswap_DDI
  sed -i "s/${UUID_dev_sdb2}/${uuidswap_DDI}/g" /media/$utilisateur/$uuidracine_DDI/etc/fstab
  echo "Vous pvez verifier en editant le fichier"
else
  echo 'etape 05C: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDI'/etc/fstab et y inscrire la nvelle UUID de la partition swap du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 05D
if confirm 'etape 05D: modifier /media/'$utilisateur'/'$uuidracine_DDI'/boot/grub/grub.cfg du DDI et remplacer les occurences de l ancienne UUID de la partition racine par des occurences de la nvelle UUID?';
then
  echo 'modification du fichier /media/'$utilisateur'/'$uuidracine_DDI'/boot/grub/grub.cfg du DDI'
  echo 'ttes les occurences de l ancienne UUID de la partition racine: '$UUID_dev_sdb3
  echo 'par des ocurrences de la nvelle UUID de la partition racine: '$uuidracine_DDI
  sed -i "s/${UUID_dev_sdb3}/${uuidracine_DDI}/g" /media/$utilisateur/$uuidracine_DDI/boot/grub/grub.cfg
  echo 'Vous pvez verifier en editant le fichier'
else
  echo 'etape 05D: probleme pr modifier /media/'$utilisateur'/'$uuidracine_DDI'/boot/grub/grub.cfg et remplacer les occurences de l ancienne UUID de la partition racine par des occurences de la nvelle UUID de la partition racine'
  exit 0
fi
echo
echo "====================================================================================="
echo "====================================================================================="
echo
## etape 05E
echo 'etape 05E: ns devons monter la partition '$UUID_dev_sdb3' (/dev/sdb3 du DDE)'
echo 'creation du point de montage et montage de la partition racine du DDE: '$designe_DDE'3'
mkdir /media/$utilisateur/$UUID_dev_sdb3
mount $designe_DDE'3' /media/$utilisateur/$UUID_dev_sdb3

echo 'ns sommes ds le script script05_restauration, le disque source est toujours DDE, le disque cible est tjs DDI, c est une operation de restauration'
echo 'ns devons dc effacer la L: GRUB_DISABLE_OS_PROBER=true du fichier DDE/etc/default/grub du disque source, SI ELLE EXISTE'

## condition grep qui recherche au - 1 occurence du pattern ds le fichier DDE/etc/default/grub du disque source, votre DDE (/dev/sdb)
## on modifie ou pas selon nos souhaits
if grep -q 'GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$UUID_dev_sdb3/etc/default/grub
then
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque source DDE/etc/default/grub, vlez vs l effacer?';
  then
    echo 'on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDE/etc/default/grub'
    sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$UUID_dev_sdb3/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque source DDE/etc/default/grub'
  fi
else
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque source DDE/etc/default/grub, vlez vs l ajouter?';
  then
    echo 'oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDE/etc/default/grub'
    sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$UUID_dev_sdb3/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque source DDE/etc/default/grub'
  fi
fi
echo 'on demonte la partition '$UUID_dev_sdb3' ( /dev/sdb3 du DDE) et on efface son point de montage'
umount $designe_DDE'3'
rmdir /media/$utilisateur/$UUID_dev_sdb3
echo
echo "====================================================================================="
echo "====================================================================================="
echo
echo 'ns sommes ds le script script05_restauration, le disque source est toujours DDE, le disque cible est tjs DDI, c est une operation de restauration'
echo 'ns devons dc ajouter la L: GRUB_DISABLE_OS_PROBER=true au fichier DDI/etc/default/grub du disque cible, SI ELLE N EXISTE PAS'

## condition grep qui recherche au - 1 occurence du pattern ds le fichier DDI/etc/default/grub du disque cible, votre DDI (/dev/sda normalement)
## on modifie ou pas selon nos souhaits
if grep -q 'GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuidracine_DDI/etc/default/grub
then
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque cible DDI/etc/default/grub, vlez vs l effacer?';
  then
    echo 'on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDI/etc/default/grub'
    sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$uuidracine_DDI/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque cible DDI/etc/default/grub'
  fi
else
  if confirm 'occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque cible DDI/etc/default/grub, vlez vs l ajouter?';
  then
    echo 'oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDI/etc/default/grub'
    sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuidracine_DDI/etc/default/grub
  else
    echo 'on ne modifie pas le fichier situé sur le disque cible DDI/etc/default/grub'
  fi
fi
echo
echo "====================================================================================="
echo "====================================================================================="
echo
## etape 05F: demonter la partition racine de DDI et supprimer le repertoire
if confirm 'etape 05F: demonter la partition racine '$designe_DDI'3 (/dev/sda3) du DDI et supprimer le repertoire de montage?';
then
  umount $designe_DDI'3' ## /dev/sda3
  rmdir /media/$utilisateur/$uuidracine_DDI
else
  echo 'etape 05F: pble pr demonter la partition racine '$designe_DDI'3 (/dev/sda3) du DDI et/ou supprimer le repertoire de montage'
  exit 0
fi

echo "====================================================================================="

## etape 06: creer le rep pr monter la partition EFI du DDI
## monter la partition EFI du DDE
## ajouter la modification du fichier DDE/EFI/debian/grub.cfg et y remplacer l'ancienne UUID de
## la racine du DDE par la nvelle UUID de la racine du DDI
## ameliorations possibles?

echo 'Ns devons maintenant modifier le fichier /media/'$utilisateur'/'$uuidVFAT_DDI'/EFI/debian/grub.cfg de votre DDI'
echo 'située sur la partition '$designe_DDI'1 (/dev/sda1) de votre DDI'

echo "====================================================================================="

## etape 06A
if confirm "etape 06A: monter la partition EFI (/dev/sda1) du DDI?";
then
  echo "creation du point de montage"
  mkdir /media/$utilisateur/$uuidVFAT_DDI
  echo "on monte la partition"
  ## mount /dev/sda1 /media/$utilisateur/$uuidVFAT_DDI
  mount $designe_DDI'1' /media/$utilisateur/$uuidVFAT_DDI
else
  echo "etape 06A: probleme pr creer le point (repertoire) de montage et/ou monter la partition EFI '$designe_DDI'1 (/dev/sda1)du DDI"
  exit 0
fi

echo "====================================================================================="

## etape 06B
if confirm 'etape 06B: modifier /media/'$utilisateur'/'$uuidVFAT_DDI'/EFI/debian/grub.cfg (de votre DDI) en y inscrivant la nvelle UUID de la partition racine du DDI?';
then
  echo 'mofification du fichier /media/'$utilisateur'/'$uuidVFAT_DDI'/EFI/debian/grub.cfg du DDI'
  echo 'UUID inscrite: celle de la partition racine du DDE: '$UUID_dev_sdb3
  echo 'par nvelle UUID de la partition racine du DDE: '$uuidracine_DDI
  sed -i "s/${UUID_dev_sdb3}/${uuidracine_DDI}/g" /media/$utilisateur/$uuidVFAT_DDI/EFI/debian/grub.cfg
else
  echo 'etape 06B: probleme pr modifier /media/'$utilisateur'/'$uuidVFAT_DDI'/EFI/debian/grub.cfg (de votre DDI) et y inscrire la nvelle UUID de la partition racine du DDI'
  exit 0
fi

echo "====================================================================================="

## etape 06C: on demonte la vfat du DDI et on supprime le repertoire de montage
if confirm "etape 06C: demonter la vfat du DDI et supprimer son point (repertoire) de montage?";
then
  umount $designe_DDI'1' ## /dev/sda1
  rmdir /media/$utilisateur/$uuidVFAT_DDI
else
  echo 'etape 06C: pble pr demonter la partition EFI '$designe_DDI'1 (/dev/sda1) du DDI et/ou supprimer le repertoire de montage'
  exit 0
fi

echo "====================================================================================="

## etape 07: on definit un nveau disk GUID pr DDI (/dev/sda)
if confirm 'etape 07: Vlez-vs definir un nvo disk GUID pr votre DDI '$designe_DDI' (/dev/sda)?';
then
  echo 'definition d un nvo disk GUID pr votre DDI '$designe_DDI' (/dev/sda)'
  sgdisk -U D435FEA7-C4B2-C753-159D-716AC82F6DDB $designe_DDI ## /dev/sda
else
  echo 'etape 07: pble pr definir un nvo disk GUID pr votre DDI '$designe_DDI' (/dev/sda)'
  exit 0
fi

echo "====================================================================================="

## etape 08: update-grub depuis le systeme source (DDE)
## ameliorations possibles?
if confirm "etape 08: les 4 fichiers cles du DDI ont ete modifiés, vlez vs updater grub depuis le systeme source (DDE)?";
then
  ## echo 'il faut chrooter le DDE et updater DDE'
  ## mkdir /mnt/sdb3
  ## mount /dev/sdb3 /mnt/sdb3
  ## mount -o bind /dev /mnt/sdb3/dev
  ## mount -o bind /sys /mnt/sdb3/sys
  ## mount -o bind /proc /mnt/sdb3/proc
  ## chroot /mnt/sdb3
  ## update-grub /dev/sdb3
 
  echo 'creation du point de montage et montage de la partition racine (/dev/sdb3) du DDE'
  mkdir /media/$utilisateur/$UUID_dev_sdb3
  mount $designe_DDE'3' /media/$utilisateur/$UUID_dev_sdb3
 
  echo  'on monte /dev sur DDE/dev'
  mount -o bind /dev /media/$utilisateur/$UUID_dev_sdb3/dev
  echo 'on monte /sys sur DDE/sys'
  mount -o bind /sys /media/$utilisateur/$UUID_dev_sdb3/sys
  echo 'on monte /proc sur DDE/proc'
  mount -o bind /proc /media/$utilisateur/$UUID_dev_sdb3/proc
 
  echo 'AVERTISSEMENT: A LIRE '
  echo 'vs etes pret: ce script vient de chrooter le systeme, votre invite de commande a ete modifiee'
  echo 'puisque vs avez lance ce script depuis votre cle USB, le chemin indique ds votre invite de commande etait /media/VotreNomUtilisateur/sauv_donnees'
  echo 'maintenant votre invite de commande doit vs indiquer que vs etes tjs root mais vs etes devez etre situé a la racine de votre systeme chroote'
  echo 'tapez la commande suivante pr updater le grub du DDE: update-grub /dev/sdb3'
  echo 'puis sortez du systeme chroote en tapant la commande: exit'
  echo 'le script reprendra son execution'
  chroot /media/$utilisateur/$UUID_dev_sdb3
 
  echo 'on demonte proc, sys et dev du DDE'
  umount /media/$utilisateur/$UUID_dev_sdb3/dev
  umount /media/$utilisateur/$UUID_dev_sdb3/sys
  umount /media/$utilisateur/$UUID_dev_sdb3/proc
 
  umount /media/$utilisateur/$UUID_dev_sdb3
  rmdir /media/$utilisateur/$UUID_dev_sdb3
 
  echo "normalement vs etes ok"
  echo "fermez ts les comptes et consoles que vs avez pu ouvrir"
  echo "pr etre sur que les modifs aient ete prises en compte"
  echo "une x redemarre, Verifiez que tout SEMBLE normal."
  echo "En vous remerciant"
else
  echo "etape 08: probleme pendant l'operation d'updatage de grub du DDE"
  exit 0
fi
echo
echo "====================================================================================="
 



voili, voilou,

prenez, prenez pas, faites en ce que vs vlez.
il n'est pas prevu de service technique.

a+ tartare

[EDIT]
apres une restauration, je redemarre et j'ai un message:
"gave up waiting for suspend/resume device"
ca rajoute une bonne dizaine de secondes au demarrage.
le msg n'apparait pas ds le dmesg
je ne pense pas que ce soit bien grave (jusqu'au jour ou je m'apercevrai que ca m'aura mis une belle pagaille)

tres orgeuilleux, je viens de le publier sur le forum clonezilla
[/EDIT]

Dernière modification par tartare (21-12-2021 17:04:47)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#23 21-12-2021 18:24:25

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

tartare a écrit :

"gave up waiting for suspend/resume device"
ca rajoute une bonne dizaine de secondes au demarrage.


Surtout, ça empêche la restauration après hibernation.
Ce message signifie que l'UUID du swap défini dans l'initramfs pour la sortie d'hibernation ne correspond pas à l'UUID du swap sur le disque.
Cet UUID doit être défini dans /etc/initramfs-tools/conf.d/resume et appliqué à l'initramfs avec "update-initramfs -u [-k <version>]".


Il vaut mieux montrer que raconter.

Hors ligne

#24 25-12-2021 23:12:30

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

re,

ben j'ai rajoute un chroot + haut ds le script... alors que j'en avais un en bas. j'ai meme pas pense à le reutiliser.... pfff, j'te jure des fois

je vais voir si j'y arrive pour un autre type de partitionnage mais en tous les cas, merci pour l'aide.

tartare

ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

#25 27-12-2021 19:08:08

tartare
Membre
Inscription : 18-11-2021

Re : [RESOLU] restauration clone (suite du post [RESOLU] clonage successf..

Bonsoir,

A nouveau la-dessus je lache pas l'affaire.

je viens de terminer 2 nveaux scripts mais cette fois-ci pour une configuration avec 5 partitions
- efi
- racine
- home
- home/divers
- swap

Ils sont un peu + propres que le precedent (celui pr 3 partitions)
par contre je me suis pris la tete sur les points de montage (au lieu de leur donner des noms simples, j'ai pris les UUIDs des partitions...)

recommandations d'usage
a lire, a lire et a relire
desactiver secure boot ds bios
rendre le script executable

ds le shell clonezilla
perso je monte la cle USB du script ds /media/NomUtilisateurDebian/NomCleUSB
NomUtilisateurDebian doit correspondre au nom que vs entrerez a la 1° question du script
NomCleUSB est le nom du point de montage de la cle, a faire correspondre avec le nom que vs lui attribuerez ds le script (2° question)
executer le script en root depuis votre cle


y'a 2, 3 remarques qui suivent:

le script de clonage


#!/bin/bash


## code couleur, colorise la sortie echo
RED='\033[0;31m'
NC='\033[0m' # No Color
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
PURPLE='\033[0;35m'
BLUE='\033[0;34m'

## souligne la sortie echo
bold=$(tput bold)
normal=$(tput sgr0)

## [7;XXm : fond
## [9;XXm : barré

## valeurs possibles a la place du 5
## 0 (normal), 1 (gras), 2 (Dim?), 3 (italique), 4 (ssligné), 5 (clignote), 7 (reverse), 8 (invisible)
## echo -e '\033[5mYOUR_STRING\033[0m'

######################################################################################################
## fonctions
######################################################################################################

confirm() {
  read -r -p "{$1} [y/n]" response
  case "$response" in [yY][eE][sS]|[yY])
    true;;
  *)
    false;;
esac
}

#####################################################################################################

function pause(){
  echo "pr vs permettre de lire les retours console, pause de 3600 secs que vs pvez desactiver"
  echo "Appuyez sur une touche ou attendez 1 petite heure, le script reprendra son execution"
  read -n1 -t3600 any_key
}

#####################################################################################################
## script
#####################################################################################################
echo
echo "====================================================================================="
echo "====================================================================================="
echo "PR LE MOMENT RIEN N'EST ECRIT SUR VOTRE DISQUE DUR"
echo
echo -e "${RED}${bold}WARNING${normal}${NC}"
echo "ce script fonctionne comme un processus a executer dans son ensemble, cependant, rien n'est modifié"
echo "sur vos disques durs jusqu'a l'etape 27"
echo "si jamais 1 quelconque etape ne passait pas, vs pourriez editer ce script, corriger l'erreur"
echo "et l'executer a nouveau dans son entierete"
echo "1] soyez surs que votre DDI est reconnu en tant que /dev/sda (vs pourrez verifier + tard)"
echo "2] etape 13: variables definies en dur. Le nbre de variable est = au nbre de partitions du DDI"
echo "3] etape 24: variables definies en dur. Le nbre de variable est = au nbre de partitions du DDE"
echo "on affiche 2] et 3] ds le recapitulatif"
echo
echo "PR LE MOMENT RIEN N'EST ECRIT SUR VOTRE DISQUE DUR"
echo "====================================================================================="
echo "====================================================================================="
echo "====================================================================================="
echo
echo "${bold} --- variables communes, utilisées pour les 2 disques --- ${normal}"
echo
echo "====================================================================================="
echo
## ETAPE 01: designation du prefixe des disques
echo -e "ETAPE 01: ${bold}INFORMATION:${normal}"
echo 'declaration de la variable qui contient le prefixe des disques (/dev/sd)'
dev="/dev/sd"
echo
echo "====================================================================================="
echo
## ETAPE 02: variable qui definit votre compte utilisateur
echo "ETAPE 02: ENTREE:"
read -p 'entrez votre compte utilisateur: ' utilisateur
echo 'votre compte utilisateur est: '$utilisateur
echo
echo "====================================================================================="
echo
## ETAPE 03: variable qui definit le nom de votre cle USB ou est stocké ce script
echo "ETAPE 03: ENTREE:"
read -p 'entrez le nom de votre cle USB qui contient ce script: ' nom_cle_USB
echo 'le nom de la cle USB qui contient ce script est: '$nom_cle_USB
echo
echo "====================================================================================="
echo
echo "${bold} --- variables et fichiers qui ne servent que pr le DDI --- ${normal}"
echo
echo "====================================================================================="
echo
## ETAPE 04: creation du fichier retour_commande_fdisk.txt qui enregistre le retour de la commande
echo "ETAPE 04: VERIFICATION:"
echo 'verifez que votre DDI est bien reconnu en tant que '$dev'a grace a fdisk -l'
echo 'creation du fichier retour_commande_fdisk.txt a cote de ce script'
echo 'veuillez consulter le fichier retour_commande_fdisk.txt pr savoir si votre DDI est bien reconnu en tant que '$dev'a'
echo 'reconnaissez egalement sous quelle lettre est reconnu votre DDE'
fdisk -l > retour_commande_fdisk.txt
echo
echo "====================================================================================="
echo
## ETAPE 05: variable qui definit la lettre designant votre DDI
echo "ETAPE 05: ENTREE:"
read -p 'entrez la lettre qui designe votre DDI (tapez une seule lettre, pas besoin de touche retour):' -n 1 lettre_disque_DDI
echo
echo 'Votre DDI est désigné avec la lettre: '$lettre_disque_DDI
echo
echo "====================================================================================="
echo
## ETAPE 06: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk -o UUID
echo "ETAPE 06: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientUUIDs.txt qui va contenir les UUIDs de '$dev$lettre_disque_DDI' (votre DDI)'
lsblk -o UUID $dev$lettre_disque_DDI > contientUUIDs.txt
echo
echo "====================================================================================="
echo
## ETAPE 07: efface les 2 premieres L du fichier contientUUIDs.txt
echo "ETAPE 07: ${bold}INFORMATION:${normal}"
echo "fichier lu contientUUIDs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 08: compte le nbre de L ds le fichier contientUUIDs.txt, SANS afficher le nom du fichier
nbre_lignes_contientUUIDs_DDI=$(wc -l < contientUUIDs.txt);
echo "ETAPE 08: VERIFICATION:"
echo 'nbre de L ds le fichier contientUUIDs.txt = nbre de partitions sur '$dev$lettre_disque_DDI
echo 'il y a '$nbre_lignes_contientUUIDs_DDI' lignes inscrites ds le fichier contientUUIDs.txt, vs devez avoir le meme nbre de partitions sur votre' $dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
## ETAPE 09: creer le fichier contientPARTLABELs.txt pr y enregistrer la sortie de la commande lsblk -o PARTLABEL
echo "ETAPE 09: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientPARTLABELs.txt qui va contenir les PARTLABELs de '$dev$lettre_disque_DDI' (votre DDI)'
lsblk -o PARTLABEL '/dev/sd'$lettre_disque_DDI > contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 10: efface les 2 premieres L du fichier contientPARTLABELs.txt
echo "ETAPE 10: ${bold}INFORMATION:${normal}"
echo "fichier lu contientPARTLABELs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 11: compte le nbre de L ds le fichier contientPARTLABELs.txt, SANS afficher le nom du fichier
nbre_lignes_contientPARTLABELs_DDI=$(wc -l < contientPARTLABELs.txt);
echo "ETAPE 11: VERIFICATION:"
echo 'nbre de L ds le fichier contientPARTLABELs.txt = nbre de partitions sur '$dev$lettre_disque_DDI
echo 'il y a '$nbre_lignes_contientPARTLABELs_DDI' lignes inscrites ds le fichier contientPARTLABELs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
echo "TODO"
echo "ecrire condition qui verifie qu'il y a le meme nbre de L entre les 2 fichiers precedents"
echo "contientUUIDs.txt et contientPARTLABELs.txt"
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 12: afficher les variables assignées dynamiquement concernant le DDI
echo "ETAPE 12: ${bold}INFORMATION:${normal}"
echo "on affiche les partitions de ${dev}${lettre_disque_DDI} avec leur UUID et leur PARTLABEL"
for i in $(seq 1 $nbre_lignes_contientUUIDs_DDI); do
  UUID_partition_DDI[$i]=$(sed -n "${i}p" contientUUIDs.txt)
  PARTLABEL_partition_DDI[$i]=$(sed -n "${i}p" contientPARTLABELs.txt)
  echo "${dev}${lettre_disque_DDI}$i --- ${UUID_partition_DDI[$i]} --- ${PARTLABEL_partition_DDI[$i]}"
done
echo
echo "====================================================================================="
echo
## ETAPE 13: definit° de variables pr le DDI qui porteront le nom: uuid_PARTLABEL_disque+lettre+n° de la partition
echo "ETAPE 13: ${bold}INFORMATION:${normal}"
echo 'on definit de nvelles variables avec des noms plus explicites ayant les valeurs de la liste au-dessus'
echo 'on les affiche ds le recapitulatif'
uuid_efi_sda1=${UUID_partition_DDI[1]}
uuid_racine_sda2=${UUID_partition_DDI[2]}
uuid_home_sda3=${UUID_partition_DDI[3]}
uuid_divers_sda4=${UUID_partition_DDI[4]}
uuid_swap_sda5=${UUID_partition_DDI[5]}
echo
echo "====================================================================================="
echo
## ETAPE 14: efface le fichier contientUUIDs.txt ou st inscrites les UUIDs
echo "ETAPE 14: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientUUIDs.txt qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 15: efface le fichier contientPARTLABELs.txt ou st inscrites les PARTLABELs
echo "ETAPE 15: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientPARTLABELs.txt qui contenait les PARTLABELs"
echo "vs pvez vérifier manuellement"
rm contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
echo "${bold} --- variables et fichiers qui ne servent que pr le DDE --- ${normal}"
echo
echo "====================================================================================="
echo
## ETAPE 16: variable qui definit la lettre designant votre DDE
echo "ETAPE 16: ENTREE:"
read -p 'entrez la lettre qui designe votre DDE (tapez une seule lettre, pas besoin de touche retour):' -n 1 lettre_disque_DDE
echo
echo 'Votre DDE est désigné avec la lettre: '$lettre_disque_DDE
echo
echo "====================================================================================="
echo
## ETAPE 17: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk -o UUID
echo "ETAPE 17: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientUUIDs.txt qui va contenir les UUIDs de '$dev$lettre_disque_DDE' (votre DDE)'
lsblk -o UUID $dev$lettre_disque_DDE > contientUUIDs.txt
echo
echo "====================================================================================="
echo
## ETAPE 18: efface les 2 premieres L du fichier contientUUIDs.txt
echo "ETAPE 18: ${bold}INFORMATION:${normal}"
echo "fichier lu contientUUIDs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 19: compte le nbre de L ds le fichier contientUUIDs.txt, SANS afficher le nom du fichier
nbre_lignes_contientUUIDs_DDE=$(wc -l < contientUUIDs.txt);
echo "ETAPE 19: VERIFICATION:"
echo 'nbre de L ds le fichier contientUUIDs.txt = nbre de partitions sur '$dev$lettre_disque_DDE
echo 'il y a '$nbre_lignes_contientUUIDs_DDE' lignes inscrites ds le fichier contientUUIDs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
## ETAPE 20: creer le fichier contientPARTLABELs.txt pr y enregistrer la sortie de la commande lsblk -o PARTLABEL
echo "ETAPE 20: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientPARTLABELs.txt qui va contenir les PARTLABELs de '$dev$lettre_disque_DDE' (votre DDE)'
lsblk -o PARTLABEL $dev$lettre_disque_DDE > contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 21: efface les 2 premieres L du fichier contientPARTLABELs.txt
echo "ETAPE 21: ${bold}INFORMATION:${normal}"
echo "fichier lu contientPARTLABELs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
echo 'PAUSE'
pause
echo
echo "====================================================================================="
echo
## ETAPE 22: compte le nbre de L ds le fichier contientPARTLABELs.txt, SANS afficher le nom du fichier
nbre_lignes_contientPARTLABELs_DDE=$(wc -l < contientPARTLABELs.txt);
echo "ETAPE 22: VERIFICATION:"
echo 'nbre de L ds le fichier contientPARTLABELs.txt = nbre de partitions sur '$dev$lettre_disque_DDE
echo 'il y a '$nbre_lignes_contientPARTLABELs_DDE' lignes inscrites ds le fichier contientPARTLABELs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
echo "TODO"
echo "ecrire condition qui verifie qu'il y a le meme nbre de L entre les 2 fichiers precedents"
echo "contientUUIDs.txt et contientPARTLABELs.txt"
echo
echo "====================================================================================="
echo
## ETAPE 23: afficher les variables assignées dynamiquement concernant le DDE
echo "ETAPE 23: ${bold}INFORMATION:${normal}"
echo "on affiche les partitions de ${dev}${lettre_disque_DDE} avec leur UUID et leur PARTLABEL"
for i in $(seq 1 $nbre_lignes_contientUUIDs_DDE); do
  UUID_partition_DDE[$i]=$(sed -n "${i}p" contientUUIDs.txt)
  PARTLABEL_partition_DDE[$i]=$(sed -n "${i}p" contientPARTLABELs.txt)
  echo "${dev}${lettre_disque_DDE}$i --- ${UUID_partition_DDE[$i]} --- ${PARTLABEL_partition_DDE[$i]}"
done
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 24: definit° de variables pr le DDI qui porteront le nom: uuid_PARTLABEL_disque+lettre+n° de la partition
echo "ETAPE 24: ${bold}INFORMATION:${normal}"
echo 'on definit de nvelles variables avec des noms plus explicites ayant les valeurs UUID de la liste au-dessus'
echo 'on les affiche ds le recapitulatif'
declare uuid_efi_sd$lettre_disque_DDE1=${UUID_partition_DDE[1]}
declare uuid_racine_sd$lettre_disque_DDE2=${UUID_partition_DDE[2]}
declare uuid_home_sd$lettre_disque_DDE3=${UUID_partition_DDE[3]}
declare uuid_divers_sd$lettre_disque_DDE4=${UUID_partition_DDE[4]}
declare uuid_swap_sd$lettre_disque_DDE5=${UUID_partition_DDE[5]}
echo
echo "====================================================================================="
echo
## ETAPE 25: efface le fichier contientUUIDs.txt ou st inscrites les UUIDs
echo "ETAPE 25: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientUUIDs.txt qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 26: efface le fichier contientPARTLABELs.txt ou st inscrites les PARTLABELs
echo "ETAPE 26: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientPARTLABELs.txt qui contenait les PARTLABELs"
echo "vs pvez vérifier manuellement"
rm contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 27: efface le fichier retour_commande_fdisk.txt
echo "ETAPE 27: ${bold}INFORMATION:${normal}"
echo 'on efface le fichier retour_commande_fdisk.txt'
rm retour_commande_fdisk.txt
echo
echo "====================================================================================="
echo "====================================================================================="
echo
echo -e "${GREEN}${bold}RECAPITULATIF:${normal}${NC}"
echo "votre compte utilisateur: ${utilisateur}"
echo "le nom de votre cle USB: ${nom_cle_USB}"
echo "la lettre qui designe votre DDI: ${lettre_disque_DDI}"
echo "dc votre DDI est designe sous la forme: ${dev}${lettre_disque_DDI}"
echo "la lettre qui designe votre DDE: ${lettre_disque_DDE}"
echo "dc votre DDE est designe sous la forme: ${dev}${lettre_disque_DDE}"
echo "====================================================================================="
echo -e "${bold}partitions de votre DDI avec leur UUID                     --- partitions de votre DDE avec leur UUID${NC}"
echo -e "${bold}nom de variable, valeur                                    --- nom de variable, valeur${NC}"
echo 'uuid_efi_sda1, '$uuid_efi_sda1 '                                  --- uuid_efi_sd$lettre_disque_DDE1, '$uuid_efi_sd$lettre_disque_DDE1
echo 'uuid_racine_sda2, '$uuid_racine_sda2 '    --- uuid_racine_sd$lettre_disque_DDE2, '$uuid_racine_sd$lettre_disque_DDE2
echo 'uuid_home_sda3, '$uuid_home_sda3 '      --- uuid_home_sd$lettre_disque_DDE3, '$uuid_home_sd$lettre_disque_DDE3
echo 'uuid_divers_sda4, '$uuid_divers_sda4 '    --- uuid_divers_sd$lettre_disque_DDE4, '$uuid_divers_sd$lettre_disque_DDE4
echo 'uuid_swap_sda5, '$uuid_swap_sda5 '     --- uuid_swap_sd$lettre_disque_DDE5, '$uuid_swap_sd$lettre_disque_DDE5
echo
echo "avec ce recapitulatif, vs pvez voir que les partitions st identiques sur les 2 disques"
echo
echo "====================================================================================="
echo "====================================================================================="
echo
if confirm "Jusqu a present rien n'a ete modifié sur vos disques, vlez-vs continuer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "non?, ok, merci"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 28: demontage des partitions du DDE
## ameliorations possibles?
if confirm "etape 28: Démonter les partitions de votre DDE (au cas ou elles seraient montees)?";
then
  echo 'on peut demonter les partitions de votre DDE designe en tant que:'${dev}${lettre_disque_DDE}
  echo 'on demonte '${dev}${lettre_disque_DDE}1' label: '${PARTLABEL_partition_DDE[1]}
  umount ${dev}${lettre_disque_DDE}1
  echo 'on demonte '${dev}${lettre_disque_DDE}2' label: '${PARTLABEL_partition_DDE[2]}
  umount ${dev}${lettre_disque_DDE}2
  echo 'on demonte '${dev}${lettre_disque_DDE}3' label: '${PARTLABEL_partition_DDE[3]}
  umount ${dev}${lettre_disque_DDE}3
  echo 'on demonte '${dev}${lettre_disque_DDE}4' label: '${PARTLABEL_partition_DDE[4]}
  umount ${dev}${lettre_disque_DDE}4
  echo 'on demonte '${dev}${lettre_disque_DDE}5' label: '${PARTLABEL_partition_DDE[5]}
  umount ${dev}${lettre_disque_DDE}5
else
  echo "etape 28: vs sortez du script sans démontage des partitions"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 29: modification des UUIDs des partitions du DDE
## definition de nvelles variables qui contiennent les nvelles UUIDs de chaque partition du DDE
## afin de modifier les fichiers
## - /etc/fstab
## - /boot/grub/grub.cfg
## - /etc/default/grub
## - /etc/initramfs-tools/conf.d/resume (ds lequel on modifie l'UUID de la swap)
## ameliorations possibles?
if confirm "etape 29: les partitions st demontees, peut on modifier leur UUID?";
then
  echo "nveaux UUIDs pour les partitions de "${dev}${lettre_disque_DDE}
  echo "definit° de nvelles variables qui contiennent les nvelles UUIDs de chaque partition du DDE"
 
  ## partition efi du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}1" ,label: "${PARTLABEL_partition_DDE[1]}$NC
  echo "ancienne UUID: "$uuid_efi_sd$lettre_disque_DDE1
  echo "definition de la variable nvelle_UUID_efi_DDE"
  dd bs=1 skip=67 count=4 if=$uuid_efi_sd$lettre_disque_DDE1 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  nvelle_UUID_efi_DDE="F7B5-8A3B"
        printf "\x${nvelle_UUID_efi_DDE:7:2}\x${nvelle_UUID_efi_DDE:5:2}\x${nvelle_UUID_efi_DDE:2:2}\x${nvelle_UUID_efi_DDE:0:2}" \ | dd bs=1 seek=67 count=4 conv=notrunc of=$dev$lettre_disque_DDE'1'
        echo "nvelle UUID de la partition "${dev}${lettre_disque_DDE1}" ,label: "${PARTLABEL_partition_DDE[1]}", UUID: "${nvelle_UUID_efi_DDE}
        echo
 
  ## partition racine du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}2" ,label: "${PARTLABEL_partition_DDE[2]}${NC}
  echo "ancienne UUID: "$uuid_racine_sd$lettre_disque_DDE2
  echo "definition de la variable nvelle_UUID_racine_DDE"
  e2fsck -f $dev$lettre_disque_DDE'2' ## /dev/sdb3
  tune2fs -U c6a1d8ed-9e1d-a51f-ef42-a48c637fe8bc $dev$lettre_disque_DDE'2'
  nvelle_UUID_racine_DDE=c6a1d8ed-9e1d-a51f-ef42-a48c637fe8bc
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDE}2" ,label: "${PARTLABEL_partition_DDE[2]}", UUID: "${nvelle_UUID_racine_DDE}
  echo
 
  ## partition /home du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}3" ,label: "${PARTLABEL_partition_DDE[3]}${NC}
  echo "ancienne UUID: "$uuid_home_sd$lettre_disque_DDE3
  echo "definition de la variable nvelle_UUID_home_DDE"
  e2fsck -f $dev$lettre_disque_DDE'3' ## /dev/sdb8
  tune2fs -U f64ac570-18fb-9f17-fad5-6fe80f5bad48 $dev$lettre_disque_DDE'3'
  nvelle_UUID_home_DDE=f64ac570-18fb-9f17-fad5-6fe80f5bad48
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDE}3" ,label: "${PARTLABEL_partition_DDE[3]}", UUID: "${nvelle_UUID_home_DDE}
  echo
 
  ## partition /divers du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}4" ,label: "${PARTLABEL_partition_DDE[4]}${NC}
  echo "ancienne UUID: "$uuid_divers_sd$lettre_disque_DDE4
  echo "definition de la variable nvelle_UUID_divers_DDE"
  e2fsck -f $dev$lettre_disque_DDE'4' ## /dev/sdb9
  tune2fs -U ec57b6ad-f74e-627a-dc4e-e40acfb649db $dev$lettre_disque_DDE'4'
  nvelle_UUID_divers_DDE=ec57b6ad-f74e-627a-dc4e-e40acfb649db
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDE}4" ,label: "${PARTLABEL_partition_DDE[4]}", UUID: "${nvelle_UUID_divers_DDE}
  echo
 
  ## partition swap du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}5" ,label: "${PARTLABEL_partition_DDE[5]}${NC}
  echo "ancienne UUID: "$uuid_swap_sd$lettre_disque_DDE5
  echo "definition de la variable nvelle_UUID_swap_DDE"
  mkswap -U dfa27a61-8b1d-2ad7-db94-9157fab1de3a $dev$lettre_disque_DDE'5'
  nvelle_UUID_swap_DDE=dfa27a61-8b1d-2ad7-db94-9157fab1de3a
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDE}5" ,label: "${PARTLABEL_partition_DDE[5]}", UUID: "${nvelle_UUID_swap_DDE}
  echo
else
  echo "etape 29: vs sortez du script sans definir au moins 1 des nveaux UUIDs"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 30: modification des PARTUUIDs des partitions du DDE
## PENSER, si necessaire A CHANGER LE PARAMETRE DE sgdisk QUI DEFINIT LA PARTITION QUI VA CHANGER DE PARTUUID
## ameliorations possibles?
if confirm 'etape 30: les partitions st demontees, peut on modifier leur PARTUUID?';
then
  echo "nveaux PARTUUIDs pour les partitions de "${dev}${lettre_disque_DDE}
 
  ## partition efi du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}1" ,label: "${PARTLABEL_partition_DDE[1]}${NC}
  sgdisk -u 1:27adf65e-b721-8345-ebac-24adfc716fb8 $dev$lettre_disque_DDE
  echo
 
  ## partition racine du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}2" ,label: "${PARTLABEL_partition_DDE[2]}${NC}
  sgdisk -u 2:93dea51d-e8c4-6dad-fec7-fb72da81cbec $dev$lettre_disque_DDE
  echo
 
  ## partition home du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}3" ,label: "${PARTLABEL_partition_DDE[3]}${NC}
  sgdisk -u 3:6f7b10ac-f42e-a6d4-f270-e7dfc51a042b $dev$lettre_disque_DDE
  echo
 
  ## partition divers du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}4" ,label: "${PARTLABEL_partition_DDE[4]}${NC}
  sgdisk -u 4:b67e4dac-0b4e-dea1-37f2-d8e6ade71b89 $dev$lettre_disque_DDE
  echo
 
  ## partition swap du DDE
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDE}5" ,label: "${PARTLABEL_partition_DDE[5]}${NC}
  sgdisk -u 5:f42ebccd-5d70-06ac-f51f-2ecb4acd90b4 $dev$lettre_disque_DDE
  echo
else
  echo "etape 30: vs sortez du script sans definir au moins 1 des nvo PARTUUID de "${dev}${lettre_disque_DDE}
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 31: monter la partition racine du DDE pr modifier le fichier suivant:
## - /boot/grub/grub.cfg
## racine sera montee sur /media/laurent/SonUUID
## ameliorations possibles?
if confirm "etape 31: ns avons besoin de monter la partition "${dev}${lettre_disque_DDE}2" (racine) de votre DDE pr modifier le fichier /boot/grub.grub.cfg, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/${nvelle_UUID_racine_DDE}
  echo "on monte la partition "${dev}${lettre_disque_DDE}2" (racine) (de votre DDE) sur /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}
  mount ${dev}${lettre_disque_DDE}2 /media/${utilisateur}/${nvelle_UUID_racine_DDE}
else
  echo "etape 31: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDE}2" (racine) de votre DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 32: modifier le fichier suivant:
## - /boot/grub/grub.cfg
if confirm "etape 32: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/boot/grub/grub.cfg du DDE et remplacer les occurences de l'ancienne UUID de la partition racine par des occurences de la nvelle UUID?";
then
  echo "modification du fichier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/boot/grub/grub.cfg du DDE"
  echo "ttes les occurences de l'ancienne UUID de la partition racine: "$uuid_racine_sda2
  echo "par des ocurrences de la nvelle UUID de la partition racine: "${nvelle_UUID_racine_DDE}
  sed -i "s/${uuid_racine_sda2}/${nvelle_UUID_racine_DDE}/g" /media/$utilisateur/$nvelle_UUID_racine_DDE/boot/grub/grub.cfg
  echo "Vous pvez verifier en editant le fichier"
else
  echo "etape 32: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/grub/grub.cfg et remplacer les occurences de l'ancienne UUID de la partition racine par des occurences de la nvelle UUID"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 37: modifier le fichier /etc/fstab du DDE
if confirm "etape 37: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/fstab (de votre DDE) en y inscrivant les nvelles UUIDs des partitions du DDE?";
then
  echo "etape 37: mofification du fichier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/fstab du DDE"
 
  echo "etape 37-1:ancienne UUID de la racine: "${uuid_racine_sda2}
  echo "par nvelle UUID de la racine: "${nvelle_UUID_racine_DDE}
  sed -i "s/${uuid_racine_sda2}/${nvelle_UUID_racine_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/fstab
 
  echo "etape 37-3: ancienne UUID de efi: "${uuid_efi_sda1}
  echo "par nvelle UUID de efi: "${nvelle_UUID_efi_DDE}
  sed -i "s/${uuid_efi_sda1}/${nvelle_UUID_efi_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/fstab
 
  echo "etape 37-4: ancienne UUID de home: "${uuid_home_sda3}
  echo "par nvelle UUID de home: "${nvelle_UUID_home_DDE}
  sed -i "s/${uuid_home_sda3}/${nvelle_UUID_home_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/fstab
 
  echo "etape 37-5: ancienne UUID de divers: "${uuid_divers_sda4}
  echo "par nvelle UUID de divers: "${nvelle_UUID_divers_DDE}
  sed -i "s/${uuid_divers_sda4}/${nvelle_UUID_divers_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/fstab
 
  echo "etape 37-10: ancienne UUID de swap: "${uuid_swap_sda5}
  echo "par nvelle UUID de swap: "${nvelle_UUID_swap_DDE}
  sed -i "s/${uuid_swap_sda5}/${nvelle_UUID_swap_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/fstab
 
  echo "Vous pvez verifier en editant le fichier"
else
  echo "etape 37: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/fstab et y inscrire 1 (ou +) nvelle(s) UUID(s) de partition du DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 38: modifier (eventuellement) le fichier /etc/default/grub du disque cible (DDE)
## condition grep qui recherche au - 1 occurence du pattern ds le fichier /etc/default/grub du disque cible, votre DDE
## on modifie ou pas selon nos souhaits
if confirm "etape 38: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/default/grub (de votre DDE) en y ajoutant (ou supprimant) eventuellement 1 L?";
then
  echo -e "${RED}${bold}ns sommes ds le script de clonage, le disque source est toujours DDI, le disque cible est tjs DDE, c'est une operation de clonage${normal}${NC}"
  echo -e "${RED}${bold}ns devons dc ajouter la L: GRUB_DISABLE_OS_PROBER=true au fichier DDE/etc/default/grub du disque cible, SI ELLE N EXISTE PAS${normal}${NC}"
  if grep -q "GRUB_DISABLE_OS_PROBER=true" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/default/grub
  then
    if confirm "occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque cible DDE/etc/default/grub, vlez vs l'effacer?";
    then
      echo "on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDE/etc/default/grub"
      sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$nvelle_UUID_racine_DDE/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub"
    fi
  else
    if confirm "occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque cible DDE/etc/default/grub, vlez vs l'ajouter?";
    then
      echo "oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDE/etc/default/grub"
      sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$nvelle_UUID_racine_DDE/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub"
    fi
  fi
else
  echo "etape 38: on sort du script"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 39: modifier le fichier /etc/initramfs-tools/conf.d/resume du DDE
if confirm "etape 39: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/initramfs-tools/conf.d/resume du DDE et remplacer l'UUID de la partition swap "${uuid_swap_sda5}" du DDI par celle de la partition swap "${nvelle_UUID_swap_DDE}" du DDE?"
then
  echo "modification de /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/initramfs-tools/conf.d/resume du DDE"
  echo "UUID inscrite: partition swap "${uuid_swap_sda5}" du DDI remplacee par:"
  echo "UUID de la partition swap "${nvelle_UUID_swap_DDE}" du DDE"
  sed -i "s/[[:alnum:]]\{8\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{12\}/${nvelle_UUID_swap_DDE}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDE}/etc/initramfs-tools/conf.d/resume
  echo "+ tard, ns executerons la commande suivante: update-initramfs -c -k all, lorsque ns serons ds le chroot"
else
  echo "etape 39: vs sortez du script sans reecrire UUID de swap de /media/"${utilisateur}"/"${nvelle_UUID_racine_DDE}"/etc/initramfs-tools/conf.d/resume du DDE ($designe_DDE)"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 40: demonter la partition racine du DDE et supprimer le repertoire
if confirm "etape 40: demonter la partition racine du DDE et supprimer le repertoire de montage?";
then
  umount ${dev}${lettre_disque_DDE}2
  rmdir /media/${utilisateur}/${nvelle_UUID_racine_DDE}
else
  echo "etape 40: vs sortez du script sans demonter la partition racine du DDE et/ou supprimer le repertoire de montage"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 41: monter la partition racine du DDI pr y modifier eventuellement le fichier /etc/default/grub
if confirm "etape 41: ns avons besoin de monter la partition "${dev}${lettre_disque_DDI}2" (racine) de votre DDI pr eventuellement modifier le fichier /etc/default/grub, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/${uuid_racine_sda2}
  echo "on monte la partition "${dev}${lettre_disque_DDI}2" (/dev/sda2) (racine) (de votre DDI) sur /media/"${utilisateur}"/"${uuid_racine_sda3}
  mount ${dev}${lettre_disque_DDI}2 /media/${utilisateur}/${uuid_racine_sda2}
else
  echo "etape 41: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDI}2" (/dev/sda2) (racine) de votre DDI"
fi
echo
echo "====================================================================================="
echo
## etape 42: modifier (eventuellement) le fichier /etc/default/grub du disque source (DDI)
## condition grep qui recherche au - 1 occurence du pattern ds le fichier /etc/default/grub du disque source, votre DDI (/dev/sda)
## on modifie ou pas selon nos souhaits
if confirm "etape 42: modifier /media/"${utilisateur}"/"${uuid_racine_sda2}"/etc/default/grub (de votre DDI) en y supprimant (ou ajoutant) eventuellement 1 L?";
then
  echo -e "${RED}${bold}ns sommes ds le script de clonage, le disque source est toujours DDI, le disque cible est tjs DDE, c'est une operation de clonage${normal}${NC}"
  echo -e "${RED}${bold}ns devons dc effacer la L: GRUB_DISABLE_OS_PROBER=true du fichier DDI/etc/default/grub du disque source, SI ELLE EXISTE${normal}${NC}"
  if grep -q "GRUB_DISABLE_OS_PROBER=true" /media/$utilisateur/$uuid_racine_sda2/etc/default/grub
  then
    if confirm "etape 42: occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque source DDI/etc/default/grub, vlez vs l'effacer?";
    then
      echo "on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDI/etc/default/grub"
      sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$uuid_racine_sda2/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque source DDI/etc/default/grub"
    fi
  else
    if confirm "etape 42: occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque source DDI/etc/default/grub, vlez vs l'ajouter?";
    then
      echo "oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDI/etc/default/grub"
      sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuid_racine_sda2/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque source DDI/etc/default/grub"
    fi
  fi
else
  echo "etape 42: vs sortez du script"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 44: monter la partition efi du DDE pr modifier le fichier suivant:
## /media/laurent/racineDDE/efi/EFI/debian/grub.cfg
if confirm "etape 44: ns avons besoin de monter la partition "${dev}${lettre_disque_DDE}1" (efi) de votre DDE pr modifier le fichier /boot/EFI/debian/grub.cfg, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/${nvelle_UUID_efi_DDE}
  echo "on monte la partition "${dev}${lettre_disque_DDE}1" (efi) (de votre DDE) sur /media/"${utilisateur}"/"${nvelle_UUID_efi_DDE}
  mount ${dev}${lettre_disque_DDE}1 /media/${utilisateur}/${nvelle_UUID_efi_DDE}
else
  echo "etape 44: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDE}1" (efi) de votre DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 45 modifier le fichier /boot/efi/EFI/debian/grub.cfg du DDE
if confirm "etape 45: modifier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDE}"/EFI/debian/grub.cfg (de votre DDE) en y inscrivant la nvelle UUID de la partition racine du DDE?";
then
  echo "mofification du fichier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDE}"/EFI/debian/grub.cfg du DDE"
  echo "UUID inscrite: celle de la partition racine du DDI: ${uuid_racine_sda2}"
  echo "par nvelle UUID de la partition racine du DDE: ${nvelle_UUID_racine_DDE}"
  sed -i "s/${uuid_racine_sda2}/${nvelle_UUID_racine_DDE}/g" /media/${utilisateur}/${nvelle_UUID_efi_DDE}/EFI/debian/grub.cfg
else
  echo "etape 45: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDE}"/EFI/debian/grub.cfg (de votre DDE) et y inscrire la nvelle UUID de la partition racine du DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 46: on demonte la partition efi du DDE et on supprime le repertoire de montage
if confirm "etape 46: demonter la partition efi du DDE et supprimer son point (repertoire) de montage?";
then
  umount ${dev}${lettre_disque_DDE}1
  rmdir /media/${utilisateur}/${nvelle_UUID_efi_DDE}
else
  echo "etape 46: vs sortez du script sans demonter la partition EFI "${dev}${lettre_disque_DDE}1" (/dev/sdb1) du DDE et/ou supprimer le repertoire de montage"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 47: on definit un nveau disk GUID pr DDE
if confirm "etape 47: Vlez-vs definir un nvo disk GUID pr votre DDE ${dev}${lettre_disque_DDE} ?";
then
  echo "definition d'un nvo disk GUID pr votre DDE ${dev}${lettre_disque_DDE}"
  sgdisk -U 61DC8AE7-F531-482A-DAC5-D527ACD734FA $dev$lettre_disque_DDE
else
  echo "etape 47: vs sortez du script sans definir un nvo disk GUID pr votre DDE ${dev}${lettre_disque_DDE}"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 48: lancer les commandes
## update-grub et
## update-initramfs -c -k all -b boot
## depuis le systeme source (DDI)
## ameliorations possibles?
if confirm "etape 48: les 4 fichiers cles du DDE ont ete modifiés, vlez vs updater grub depuis le systeme source (DDI)?";
then
  echo 'preparation du chroot'
 
  echo  'on monte /dev sur DDI/dev'
  mount -o bind /dev /media/${utilisateur}/${uuid_racine_sda2}/dev

  echo 'on monte /sys sur DDI/sys'
  mount -o bind /sys /media/${utilisateur}/${uuid_racine_sda2}/sys

  echo 'on monte /proc sur DDI/proc'
  mount -o bind /proc /media/${utilisateur}/${uuid_racine_sda2}/proc

 
  echo -e "${RED}${bold}AVERTISSEMENT: A LIRE${normal}${NC}"
  echo 'vs etes pret: ce script vient de chrooter le systeme, votre invite de commande a ete modifiee'
  echo 'puisque vs avez lance ce script depuis votre cle USB, le chemin qui etait indique ds votre invite de commande etait /media/VotreNomUtilisateur/LeNomDeVotreCle'
  echo 'maintenant votre invite de commande doit vs indiquer que vs etes tjs root mais vs etes devez etre situé a la racine de votre systeme chroote'
  echo "tapez la commande suivante pr updater l'initramfs: update-initramfs -c -k all"
  echo 'tapez la commande suivante pr updater le grub du DDI: update-grub /dev/sda'
  echo 'puis sortez du systeme chroote en tapant la commande: exit'
  echo 'le script reprendra son execution'
  chroot /media/${utilisateur}/${uuid_racine_sda2}
 
  echo 'on demonte proc, sys et dev du DDI'
  umount /media/${utilisateur}/${uuid_racine_sda2}/proc
  umount /media/${utilisateur}/${uuid_racine_sda2}/sys
  umount /media/${utilisateur}/${uuid_racine_sda2}/dev
 
  echo 'on demonte la racine du DDI et on efface son rep, point de montage'
  umount /media/${utilisateur}/${uuid_racine_sda2}
  rmdir /media/${utilisateur}/${uuid_racine_sda2}

  echo "normalement vs etes ok"
  echo "fermez ttes les consoles et comptes que vs avez pu ouvrir"
  echo "pr etre sur que les modifs aient ete prises en compte"
  echo "une x redemarre, Verifiez que tout SEMBLE normal."
  echo "En vous remerciant"
else
  echo "etape 48: vs sortez du script pendant la preparation du chroot ou de l'operation d'updatage de grub ou de celle de l'initramfs depuis DDI"
  exit 0
fi
echo
echo "====================================================================================="
 



ici par exemple
a l'etape 24: la definition des variables est franchement degueu.
Y a t-il un autre moyen de faire ce genre de chose (declarer une variable dt le nom est compose d'au moins une autre variable?)

a l'etape 41:
la commande mount: ${dev}${lettre_disque_DDI}2, je trouve ca bizarre egalement. vs le faites couramment?


----------------------------------------------------------------
le script de restauration


#!/bin/bash

## script a executer en root depuis le shell de clonezilla
## ce script part du principe que vs avez restauré votre DDE sur votre DDI (operation de restauration)

## version bash: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
## version debian: Debian GNU/Linux 11 (bullseye)
## version noyau: 5.10.0-9-amd64

## AVERTISSEMENT: desactiver le secure boot ds le bios (vs avez du le faire pr l'operation de clonage)

## se logguer en root depuis le shell clonezilla: sudo -i, pas de mot de passe demandé
## monter votre cle USB contenant les scripts ds /media/nomutilisateur/sauv_donnees
## ou nomutilisateur est le nom de votre compte utilisateur lorsque vs etes sous Debian

## AVERTISSEMENT: vs devez etre sur de savoir quel disque dur est monte sur /dev/sda et quel disque dur est monte sur /dev/sdb
## pr cela on affichera le resultat de la commande fdisk -l
## en fait, tapez la commande fdisk -l maintenant car il se pourrait que la sortie soit + importante que l'ecran.
## Si tel etait le cas, vs pvez tjs envoyer la sortie ds un fichier avec la commande fdisk -l > /media/nomutilisateur/sauv_donnees/nomfichier
## reperez le modele de vos disques durs et differenciez les (ds votre tete ou sur papier)
## IL FAUT QD MEME QUE VOTRE DDI SOIT RECONNU EN TANT QUE /DEV/SDA

## AVERTISSEMENT: savoir utiliser un minimum la ligne de commande
## commande mount
## commande umount
## commande cd
## commande chmod (seulement si vs n'avez pas deja rendu vos scripts executables)
## savoir executer un script (en etant ds son repertoire: commande: ./monscript)
## creer et effacer un repertoire (pr le point de montage de votre clé USB)
## passer d'une console a une autre
## autres ???

## variables que vs allez definir
## variable de votre compte utilisateur (chez moi: herve) (cela vs sera demande + tard)
## variables (au nbre de 2) qui definissent les lettres de vos disques durs (cela vs sera demande + tard)

## variables definies en dur (a modifier si necessaire)
## variable qui porte le nom de votre cle USB ou est stocké ce script (definie en dur, dc a editer si nessaire)
  ## exemple: nom_cle_USB= 'sauv_donnees'
  ## NB: si vs ne le connaissez pas, en root ds le terminal, commande fdisk -l, reperez le modele de votre cle
    ## et ensuite blkid. si votre cle a un label (nom), il sera affiche.
    ## sinon vs devez trouver un moyen pr...
## variable qui definit le nom du (ou des) repertoire(s) de votre cle USB et qui contient ce script (definie en dur, a editer si vs choisissez
  ## un autre nom de repertoire)
  ## exemple: nom_rep_cle_USB='scripts_bash_clonage_restauration'

## script bash pr root pr automatiser les manips apres 1 restauration reussie avec clonezilla
## A l'installation de Debian, le disque dur interne a été composé avec 3 partitions
## ds cet ordre
## - 1 partition EFI (amorcable), de type vfat
## - 1 partition swap, de type swap
## - 1 partition racine (qui contient la racine + le home), de type ext4
## PS: j'avais une 4° partition cree de 700ko. Elle n'apparait pas sur le disque, c'est dc
## specifique à l'installation, ne vs en preoccupez pas
## si vs en avez +, modifiez ce script en consequence

## code couleur, colorise la sortie echo
RED='\033[0;31m'
NC='\033[0m' # No Color
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
PURPLE='\033[0;35m'
BLUE='\033[0;34m'

## souligne la sortie echo
bold=$(tput bold)
normal=$(tput sgr0)

## [7;XXm : fond
## [9;XXm : barré

## valeurs possibles a la place du 5
## 0 (normal), 1 (gras), 2 (Dim?), 3 (italique), 4 (ssligné), 5 (clignote), 7 (reverse), 8 (invisible)
## echo -e '\033[5mYOUR_STRING\033[0m'


echo
echo "=========== script interactif (avec confirmation) ==========="
echo "=========== dans le but de pouvoir demarrer sur   ==========="
echo "=========== le systeme restauré (le DDI)          ==========="
echo "=========== A executer ds le terminal             ==========="
echo "=========== (ou peut-etre en console)             ==========="
echo "=========== sous le compte root                   ==========="
echo

######################################################################################################
## fonctions
######################################################################################################

confirm() {
  read -r -p "{$1} [y/n]" response
  case "$response" in [yY][eE][sS]|[yY])
    true;;
  *)
    false;;
esac
}

function pause(){
  echo "pr vs permettre de lire les retours console, pause de 3600 secs que vs pvez desactiver"
  echo "Appuyez sur une touche ou attendez 1 petite heure, le script reprendra son execution"
  read -n1 -t3600 any_key
}

#####################################################################################################
## script
#####################################################################################################
echo
echo "====================================================================================="
echo "====================================================================================="
echo "PR LE MOMENT RIEN N'EST ECRIT SUR VOTRE DISQUE DUR"
echo
echo -e "${RED}${bold}WARNING${normal}${NC}"
echo "ce script fonctionne comme un processus a executer dans son ensemble, cependant, rien n'est modifié"
echo "sur vos disques durs jusqu'a l'etape 27"
echo "si jamais 1 quelconque etape ne passait pas, vs pourriez editer ce script, corriger l'erreur"
echo "et l'executer a nouveau dans son entierete"
echo "1] soyez surs que votre DDI est reconnu en tant que /dev/sda (vs pourrez verifier + tard)"
echo "2] etape 13: variables definies en dur. Le nbre de variable est = au nbre de partitions du DDE"
echo "3] etape 24: variables definies en dur. Le nbre de variable est = au nbre de partitions du DDI"
echo "on affiche 2] et 3] ds le recapitulatif"
echo
echo "PR LE MOMENT RIEN N'EST ECRIT SUR VOTRE DISQUE DUR"
echo "====================================================================================="
echo "====================================================================================="
echo "====================================================================================="
echo
echo "${bold} --- variables communes, utilisées pour les 2 disques --- ${normal}"
echo
echo "====================================================================================="
echo
echo
echo "====================================================================================="
echo
## etape -09: definition de variables necessaires a l'execution de ce script depuis le shell clonezilla
# nom utilisateur: il est utilisé pr
  # - les chemins de creation et suppression des repertoires et fichiers
  # - creation et suppression des points de montage
  # - modifications des fichiers
    # /etc/fstab
    # /boot/grub/grub.cfg
    # /etc/default/grub
    # /EFI/debian/grub.cfg
  # - le chroot
   
## ETAPE 01: designation du prefixe des disques
echo -e "ETAPE 01: ${bold}INFORMATION:${normal}"
echo 'declaration de la variable qui contient le prefixe des disques (/dev/sd)'
dev="/dev/sd"
echo
echo "====================================================================================="
echo
## ETAPE 02: variable qui definit votre compte utilisateur
echo "ETAPE 02: ENTREE:"
read -p 'entrez votre compte utilisateur: ' utilisateur
echo 'votre compte utilisateur est: '$utilisateur
echo
echo "====================================================================================="
echo
## ETAPE 03: variable qui definit le nom de votre cle USB ou est stocké ce script
echo "ETAPE 03: ENTREE:"
read -p 'entrez le nom de votre cle USB qui contient ce script: ' nom_cle_USB
echo 'le nom de la cle USB qui contient ce script est: '$nom_cle_USB
echo
echo "====================================================================================="
echo
echo "${bold} --- variables et fichiers qui ne servent que pr le DDE --- ${normal}"
echo
echo "====================================================================================="
echo
## ETAPE 04: creation du fichier retour_commande_fdisk.txt qui enregistre le retour de la commande
echo "ETAPE 04: VERIFICATION:"
echo 'verifez que votre DDI est bien reconnu en tant que '$dev'a grace a fdisk -l'
echo 'creation du fichier retour_commande_fdisk.txt a cote de ce script'
echo 'veuillez consulter le fichier retour_commande_fdisk.txt pr savoir si votre DDI est bien reconnu en tant que '$dev'a'
echo 'reconnaissez egalement sous quelle lettre est reconnu votre DDE'
fdisk -l > retour_commande_fdisk.txt
echo
echo "====================================================================================="
echo
## ETAPE 05: variable qui definit la lettre designant votre DDE
echo "ETAPE 05: ENTREE:"
read -p 'entrez la lettre qui designe votre DDE (tapez une seule lettre, pas besoin de touche retour):' -n 1 lettre_disque_DDE
echo
echo 'Votre DDE est désigné avec la lettre: '$lettre_disque_DDE
echo "====================================================================================="
echo
## ETAPE 06: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk -o UUID
echo "ETAPE 06: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientUUIDs.txt qui va contenir les UUIDs de '$dev$lettre_disque_DDE' (votre DDE)'
lsblk -o UUID $dev$lettre_disque_DDE > contientUUIDs.txt
echo
echo "====================================================================================="
echo
## ETAPE 07: efface les 2 premieres L du fichier contientUUIDs.txt
echo "ETAPE 07: ${bold}INFORMATION:${normal}"
echo "fichier lu contientUUIDs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 08: compte le nbre de L ds le fichier contientUUIDs.txt, SANS afficher le nom du fichier
nbre_lignes_contientUUIDs_DDE=$(wc -l < contientUUIDs.txt);
echo "ETAPE 08: VERIFICATION:"
echo 'nbre de L ds le fichier contientUUIDs.txt = nbre de partitions sur '$dev$lettre_disque_DDE
echo 'il y a '$nbre_lignes_contientUUIDs_DDE' lignes inscrites ds le fichier contientUUIDs.txt, vs devez avoir le meme nbre de partitions sur votre' $dev$lettre_disque_DDE' (DDE) et sur votre '$dev$lettre_disque_DDI' (DDI), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
## ETAPE 09: creer le fichier contientPARTLABELs.txt pr y enregistrer la sortie de la commande lsblk -o PARTLABEL
echo "ETAPE 09: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientPARTLABELs.txt qui va contenir les PARTLABELs de '$dev$lettre_disque_DDE' (votre DDE)'
lsblk -o PARTLABEL '/dev/sd'$lettre_disque_DDE > contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 10: efface les 2 premieres L du fichier contientPARTLABELs.txt
echo "ETAPE 10: ${bold}INFORMATION:${normal}"
echo "fichier lu contientPARTLABELs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 11: compte le nbre de L ds le fichier contientPARTLABELs.txt, SANS afficher le nom du fichier
nbre_lignes_contientPARTLABELs_DDE=$(wc -l < contientPARTLABELs.txt);
echo "ETAPE 11: VERIFICATION:"
echo 'nbre de L ds le fichier contientPARTLABELs.txt = nbre de partitions sur '$dev$lettre_disque_DDE
echo 'il y a '$nbre_lignes_contientPARTLABELs_DDE' lignes inscrites ds le fichier contientPARTLABELs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDE' (DDE) et sur votre '$dev$lettre_disque_DDI' (DDI), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo "TODO"
echo "ecrire condition qui verifie qu'il y a le meme nbre de L entre les 2 fichiers precedents"
echo "contientUUIDs.txt et contientPARTLABELs.txt"
echo "====================================================================================="
echo
## ETAPE 12: afficher les variables assignées dynamiquement concernant le DDE
echo "ETAPE 12: ${bold}INFORMATION:${normal}"
echo "on affiche les partitions de ${dev}${lettre_disque_DDE} avec leur UUID et leur PARTLABEL"
for i in $(seq 1 $nbre_lignes_contientUUIDs_DDE); do
  UUID_partition_DDE[$i]=$(sed -n "${i}p" contientUUIDs.txt)
  PARTLABEL_partition_DDE[$i]=$(sed -n "${i}p" contientPARTLABELs.txt)
  echo "${dev}${lettre_disque_DDE}$i --- ${UUID_partition_DDE[$i]} --- ${PARTLABEL_partition_DDE[$i]}"
done
echo
echo "====================================================================================="
echo
## ETAPE 13: definit° de variables pr le DDE qui porteront le nom: uuid_PARTLABEL_disque+lettre+n° de la partition
echo "ETAPE 13: ${bold}INFORMATION:${normal}"
echo 'on definit de nvelles variables avec des noms plus explicites ayant les valeurs de la liste au-dessus'
echo 'on les affiche ds le recapitulatif'
declare uuid_efi_sd$lettre_disque_DDE1=${UUID_partition_DDE[1]}
declare uuid_racine_sd$lettre_disque_DDE2=${UUID_partition_DDE[2]}
declare uuid_home_sd$lettre_disque_DDE3=${UUID_partition_DDE[3]}
declare uuid_divers_sd$lettre_disque_DDE4=${UUID_partition_DDE[4]}
declare uuid_swap_sd$lettre_disque_DDE5=${UUID_partition_DDE[5]}
echo
echo "====================================================================================="
echo
## ETAPE 14: efface le fichier contientUUIDs.txt ou st inscrites les UUIDs
echo "ETAPE 14: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientUUIDs.txt qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 15: efface le fichier contientPARTLABELs.txt ou st inscrites les PARTLABELs
echo "ETAPE 15: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientPARTLABELs.txt qui contenait les PARTLABELs"
echo "vs pvez vérifier manuellement"
rm contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
echo "${bold} --- variables et fichiers qui ne servent que pr le DDI --- ${normal}"
echo
echo "====================================================================================="
echo
## ETAPE 16: variable qui definit la lettre designant votre DDI
echo "ETAPE 16: ENTREE:"
read -p 'entrez la lettre qui designe votre DDI (tapez une seule lettre, pas besoin de touche retour):' -n 1 lettre_disque_DDI
echo
echo 'Votre DDI est désigné avec la lettre: '$lettre_disque_DDI
echo
echo "====================================================================================="
echo
## ETAPE 17: creer le fichier contientUUIDs.txt pr y enregistrer la sortie de la commande lsblk -o UUID
echo "ETAPE 17: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientUUIDs.txt qui va contenir les UUIDs de '$dev$lettre_disque_DDI' (votre DDI)'
lsblk -o UUID $dev$lettre_disque_DDI > contientUUIDs.txt
echo
echo "====================================================================================="
echo
## ETAPE 18: efface les 2 premieres L du fichier contientUUIDs.txt
echo "ETAPE 18: ${bold}INFORMATION:${normal}"
echo "fichier lu contientUUIDs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 19: compte le nbre de L ds le fichier contientUUIDs.txt, SANS afficher le nom du fichier
nbre_lignes_contientUUIDs_DDI=$(wc -l < contientUUIDs.txt);
echo "ETAPE 19: VERIFICATION:"
echo 'nbre de L ds le fichier contientUUIDs.txt = nbre de partitions sur '$dev$lettre_disque_DDI
echo 'il y a '$nbre_lignes_contientUUIDs_DDI' lignes inscrites ds le fichier contientUUIDs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
## ETAPE 20: creer le fichier contientPARTLABELs.txt pr y enregistrer la sortie de la commande lsblk -o PARTLABEL
echo "ETAPE 20: ${bold}INFORMATION:${normal}"
echo 'creation du fichier temporaire contientPARTLABELs.txt qui va contenir les PARTLABELs de '$dev$lettre_disque_DDI' (votre DDI)'
lsblk -o PARTLABEL $dev$lettre_disque_DDI > contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 21: efface les 2 premieres L du fichier contientPARTLABELs.txt
echo "ETAPE 21: ${bold}INFORMATION:${normal}"
echo "fichier lu contientPARTLABELs.txt: on efface les 2 premieres L de ce fichier qui ne contiennent rien d'utile"
sed -i '1,2d' contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
echo 'PAUSE'
pause
echo
echo "====================================================================================="
echo
## ETAPE 22: compte le nbre de L ds le fichier contientPARTLABELs.txt, SANS afficher le nom du fichier
nbre_lignes_contientPARTLABELs_DDI=$(wc -l < contientPARTLABELs.txt);
echo "ETAPE 22: VERIFICATION:"
echo 'nbre de L ds le fichier contientPARTLABELs.txt = nbre de partitions sur '$dev$lettre_disque_DDI
echo 'il y a '$nbre_lignes_contientPARTLABELs_DDI' lignes inscrites ds le fichier contientPARTLABELs.txt, vs devez avoir le meme nbre de partitions sur votre '$dev$lettre_disque_DDI' (DDI) et sur votre '$dev$lettre_disque_DDE' (DDE), sinon veuillez ne pas executer ce script'
echo
echo "====================================================================================="
echo
echo "TODO"
echo "ecrire condition qui verifie qu'il y a le meme nbre de L entre les 2 fichiers precedents"
echo "contientUUIDs.txt et contientPARTLABELs.txt"
echo
echo "====================================================================================="
echo
## ETAPE 23: afficher les variables assignées dynamiquement concernant le DDI
echo "ETAPE 23: ${bold}INFORMATION:${normal}"
echo "on affiche les partitions de ${dev}${lettre_disque_DDI} avec leur UUID et leur PARTLABEL"
for i in $(seq 1 $nbre_lignes_contientUUIDs_DDI); do
  UUID_partition_DDI[$i]=$(sed -n "${i}p" contientUUIDs.txt)
  PARTLABEL_partition_DDI[$i]=$(sed -n "${i}p" contientPARTLABELs.txt)
  echo "${dev}${lettre_disque_DDI}$i --- ${UUID_partition_DDI[$i]} --- ${PARTLABEL_partition_DDI[$i]}"
done
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 24: definit° de variables pr le DDI qui porteront le nom: uuid_PARTLABEL_disque+lettre+n° de la partition
echo "ETAPE 24: ${bold}INFORMATION:${normal}"
echo 'on definit de nvelles variables avec des noms plus explicites ayant les valeurs UUID de la liste au-dessus'
echo 'on les affiche ds le recapitulatif'
uuid_efi_sda1=${UUID_partition_DDI[1]}
uuid_racine_sda2=${UUID_partition_DDI[2]}
uuid_home_sda3=${UUID_partition_DDI[3]}
uuid_divers_sda4=${UUID_partition_DDI[4]}
uuid_swap_sda5=${UUID_partition_DDI[5]}
echo
echo "====================================================================================="
echo
## ETAPE 25: efface le fichier contientUUIDs.txt ou st inscrites les UUIDs
echo "ETAPE 25: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientUUIDs.txt qui contenait les UUIDs"
echo "vs pvez vérifier manuellement"
rm contientUUIDs.txt
echo
echo "====================================================================================="
echo
echo "PAUSE"
pause
echo
echo "====================================================================================="
echo
## ETAPE 26: efface le fichier contientPARTLABELs.txt ou st inscrites les PARTLABELs
echo "ETAPE 26: ${bold}INFORMATION:${normal}"
echo "on efface le fichier temporaire contientPARTLABELs.txt qui contenait les PARTLABELs"
echo "vs pvez vérifier manuellement"
rm contientPARTLABELs.txt
echo
echo "====================================================================================="
echo
## ETAPE 27: efface le fichier retour_commande_fdisk.txt
echo "ETAPE 27: ${bold}INFORMATION:${normal}"
echo 'on efface le fichier retour_commande_fdisk.txt'
rm retour_commande_fdisk.txt
echo
echo "====================================================================================="
echo "====================================================================================="
echo
echo -e "${GREEN}${bold}RECAPITULATIF:${normal}${NC}"
echo "votre compte utilisateur: ${utilisateur}"
echo "le nom de votre cle USB: ${nom_cle_USB}"
echo "la lettre qui designe votre DDI: ${lettre_disque_DDI}"
echo "dc votre DDI est designe sous la forme: ${dev}${lettre_disque_DDI}"
echo "la lettre qui designe votre DDE: ${lettre_disque_DDE}"
echo "dc votre DDE est designe sous la forme: ${dev}${lettre_disque_DDE}"
echo "====================================================================================="
echo -e "${bold}partitions de votre DDE avec leur UUID                                  --- partitions de votre DDI avec leur UUID${NC}"
echo -e "${bold}nom de variable, valeur                                                 --- nom de variable, valeur${NC}"
echo 'uuid_efi_sd$lettre_disque_DDE1, '$uuid_efi_sd$lettre_disque_DDE1'                               --- uuid_efi_sda1, '$uuid_efi_sda1
echo 'uuid_racine_sd$lettre_disque_DDE2, '$uuid_racine_sd$lettre_disque_DDE2' --- uuid_racine_sda2, '$uuid_racine_sda2
echo 'uuid_home_sd$lettre_disque_DDE3, '$uuid_home_sd$lettre_disque_DDE3'   --- uuid_home_sda3, '$uuid_home_sda3
echo 'uuid_divers_sd$lettre_disque_DDE4, '$uuid_divers_sd$lettre_disque_DDE4' --- uuid_divers_sda4, '$uuid_divers_sda4
echo 'uuid_swap_sd$lettre_disque_DDE5, '$uuid_swap_sd$lettre_disque_DDE5'   --- uuid_swap_sda5, '$uuid_swap_sda5
echo
echo "avec ce recapitulatif, vs pvez voir que les partitions st identiques sur les 2 disques"
echo
echo "====================================================================================="
echo "====================================================================================="
echo
if confirm "Jusqu a present rien n'a ete modifié sur vos disques, vlez-vs continuer";
then
  echo "oui? alors on peut continuer ce script"
else
  echo "non?, ok, merci"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 28: demontage des partitions du DDE
## ameliorations possibles?
if confirm "etape 28: Démonter les partitions de votre DDI (au cas ou elles seraient montees)?";
then
  echo 'on peut demonter les partitions de votre DDI designe en tant que:'${dev}${lettre_disque_DDI}
  echo 'on demonte '${dev}${lettre_disque_DDI}1' label: '${PARTLABEL_partition_DDI[1]}
  umount ${dev}${lettre_disque_DDI}1
  echo 'on demonte '${dev}${lettre_disque_DDI}2' label: '${PARTLABEL_partition_DDI[2]}
  umount ${dev}${lettre_disque_DDI}2
  echo 'on demonte '${dev}${lettre_disque_DDI}3' label: '${PARTLABEL_partition_DDI[3]}
  umount ${dev}${lettre_disque_DDI}3
  echo 'on demonte '${dev}${lettre_disque_DDI}4' label: '${PARTLABEL_partition_DDI[4]}
  umount ${dev}${lettre_disque_DDI}4
  echo 'on demonte '${dev}${lettre_disque_DDI}5' label: '${PARTLABEL_partition_DDI[5]}
  umount ${dev}${lettre_disque_DDI}5
else
  echo "etape 28: vs sortez du script sans démontage des partitions"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 29: modification des UUIDs des partitions du DDI
## definition de nvelles variables qui contiennent les nvelles UUIDs de chaque partition du DDI
## afin de modifier les fichiers
## - /etc/fstab
## - /boot/grub/grub.cfg
## - /etc/default/grub
## - /etc/initramfs-tools/conf.d/resume (ds lequel on modifie l'UUID de la swap)
## ameliorations possibles?
if confirm "etape 29: les partitions st demontees, peut on modifier leur UUID?";
then
  echo "nveaux UUIDs pour les partitions de "${dev}${lettre_disque_DDI}
  echo "definit° de nvelles variables qui contiennent les nvelles UUIDs de chaque partition du DDI"
 
  ## partition efi du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}1" ,label: "${PARTLABEL_partition_DDI[1]}$NC
  echo "ancienne UUID: "$uuid_efi_sda1
  echo "definition de la variable nvelle_UUID_efi_DDI"
  dd bs=1 skip=67 count=4 if=$uuid_efi_sda1 2>/dev/null | xxd -plain -u | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
  nvelle_UUID_efi_DDI="5249-BEAC"
        printf "\x${nvelle_UUID_efi_DDI:7:2}\x${nvelle_UUID_efi_DDI:5:2}\x${nvelle_UUID_efi_DDI:2:2}\x${nvelle_UUID_efi_DDI:0:2}" \ | dd bs=1 seek=67 count=4 conv=notrunc of=$dev$lettre_disque_DDI'1'
        echo "nvelle UUID de la partition "${dev}${lettre_disque_DDI}1" ,label: "${PARTLABEL_partition_DDI[1]}", UUID: "${nvelle_UUID_efi_DDI}
        echo
 
  ## partition racine du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}2" ,label: "${PARTLABEL_partition_DDI[2]}${NC}
  echo "ancienne UUID: "$uuid_racine_sda2
  echo "definition de la variable nvelle_UUID_racine_DDI"
  e2fsck -f $dev$lettre_disque_DDI'2' ## /dev/sdb3
  tune2fs -U 9d55602a-1374-4c57-9c09-ddafe8869977 $dev$lettre_disque_DDI'2'
  nvelle_UUID_racine_DDI=9d55602a-1374-4c57-9c09-ddafe8869977
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDI}2" ,label: "${PARTLABEL_partition_DDI[2]}", UUID: "${nvelle_UUID_racine_DDI}
  echo
 
  ## partition /home du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}3" ,label: "${PARTLABEL_partition_DDI[3]}${NC}
  echo "ancienne UUID: "$uuid_home_sda3
  echo "definition de la variable nvelle_UUID_home_DDI"
  e2fsck -f $dev$lettre_disque_DDI'3' ## /dev/sdb8
  tune2fs -U 1fa035fd-470f-47d4-bdee-4403c1a3688e $dev$lettre_disque_DDI'3'
  nvelle_UUID_home_DDI=1fa035fd-470f-47d4-bdee-4403c1a3688e
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDI}3" ,label: "${PARTLABEL_partition_DDI[3]}", UUID: "${nvelle_UUID_home_DDI}
  echo
 
  ## partition /divers du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}4" ,label: "${PARTLABEL_partition_DDI[4]}${NC}
  echo "ancienne UUID: "$uuid_divers_sda4
  echo "definition de la variable nvelle_UUID_divers_DDI"
  e2fsck -f $dev$lettre_disque_DDI'4' ## /dev/sdb9
  tune2fs -U cbdba8d3-497d-435a-b024-25afcf40388b $dev$lettre_disque_DDI'4'
  nvelle_UUID_divers_DDI=cbdba8d3-497d-435a-b024-25afcf40388b
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDI}4" ,label: "${PARTLABEL_partition_DDI[4]}", UUID: "${nvelle_UUID_divers_DDI}
  echo
 
  ## partition swap du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}5" ,label: "${PARTLABEL_partition_DDI[5]}${NC}
  echo "ancienne UUID: "$uuid_swap_sda5
  echo "definition de la variable nvelle_UUID_swap_DDI"
  mkswap -U 2434c3ea-b995-4711-858f-c8dc3f6ba4c9 $dev$lettre_disque_DDI'5'
  nvelle_UUID_swap_DDI=2434c3ea-b995-4711-858f-c8dc3f6ba4c9
  echo "nvelle UUID de la partition "${dev}${lettre_disque_DDI}5" ,label: "${PARTLABEL_partition_DDI[5]}", UUID: "${nvelle_UUID_swap_DDI}
  echo
else
  echo "etape 29: vs sortez du script sans definir au moins 1 des nveaux UUIDs"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 30: modification des PARTUUIDs des partitions du DDI
## PENSER, si necessaire A CHANGER LE PARAMETRE DE sgdisk QUI DEFINIT LA PARTITION QUI VA CHANGER DE PARTUUID
## ameliorations possibles?
if confirm 'etape 30: les partitions st demontees, peut on modifier leur PARTUUID?';
then
  echo "nveaux PARTUUIDs pour les partitions de "${dev}${lettre_disque_DDI}
 
  ## partition efi du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}1" ,label: "${PARTLABEL_partition_DDI[1]}${NC}
  sgdisk -u 1:560bf609-ef1f-4ab6-aa55-152ec0221a5f $dev$lettre_disque_DDI
  echo
 
  ## partition racine du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}2" ,label: "${PARTLABEL_partition_DDI[2]}${NC}
  sgdisk -u 2:d78c679f-4e27-4507-99fa-89266046f698 $dev$lettre_disque_DDI
  echo
 
  ## partition home du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}3" ,label: "${PARTLABEL_partition_DDE[I]}${NC}
  sgdisk -u 3:16edbd3d-180a-4e1d-9181-85706b93e8f9 $dev$lettre_disque_DDI
  echo
 
  ## partition divers du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}4" ,label: "${PARTLABEL_partition_DDI[4]}${NC}
  sgdisk -u 4:81e94a30-9148-49e7-8a41-1224571a331b $dev$lettre_disque_DDI
  echo
 
  ## partition swap du DDI
  echo -e "${ORANGE}---------- partition: "${dev}${lettre_disque_DDI}5" ,label: "${PARTLABEL_partition_DDI[5]}${NC}
  sgdisk -u 5:fff51ad2-e461-a729-5eab-d4a29f73c408 $dev$lettre_disque_DDE
  echo
else
  echo "etape 30: vs sortez du script sans definir au moins 1 des nvo PARTUUID de "${dev}${lettre_disque_DDE}
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 31: monter la partition racine du DDI pr modifier le fichier suivant:
## - /boot/grub/grub.cfg
## racine sera montee sur /media/laurent/SonUUID
## ameliorations possibles?
if confirm "etape 31: ns avons besoin de monter la partition "${dev}${lettre_disque_DDI}2" (racine) de votre DDI pr modifier le fichier /boot/grub.grub.cfg, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/${nvelle_UUID_racine_DDI}
  echo "on monte la partition "${dev}${lettre_disque_DDI}2" (racine) (de votre DDI) sur /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}
  mount ${dev}${lettre_disque_DDI}2 /media/${utilisateur}/${nvelle_UUID_racine_DDI}
else
  echo "etape 31: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDI}2" (racine) de votre DDI"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 32: modifier le fichier: /boot/grub/grub.cfg du DDI
if confirm "etape 32: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/boot/grub/grub.cfg du DDE et remplacer les occurences de l'ancienne UUID de la partition racine par des occurences de la nvelle UUID?";
then
  echo "modification du fichier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/boot/grub/grub.cfg du DDE"
  echo "ttes les occurences de l'ancienne UUID de la partition racine: "$uuid_racine_sda2
  echo "par des ocurrences de la nvelle UUID de la partition racine: "${nvelle_UUID_racine_DDI}
  sed -i "s/${uuid_racine_sda2}/${nvelle_UUID_racine_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/boot/grub/grub.cfg
  echo "Vous pvez verifier en editant le fichier"
else
  echo "etape 32: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/grub/grub.cfg et remplacer les occurences de l'ancienne UUID de la partition racine par des occurences de la nvelle UUID"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 37: modifier le fichier /etc/fstab du DDI
if confirm "etape 37: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/fstab (de votre DDI) en y inscrivant les nvelles UUIDs des partitions du DDI?";
then
  echo "etape 37: mofification du fichier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/fstab du DDE"
 
  echo "etape 37-1: ancienne UUID de la racine: "${uuid_racine_sda2}
  echo "par nvelle UUID de la racine: "${nvelle_UUID_racine_DDI}
  sed -i "s/${uuid_racine_sda2}/${nvelle_UUID_racine_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/fstab
 
  echo "etape 37-3: ancienne UUID de efi: "${uuid_efi_sda1}
  echo "par nvelle UUID de efi: "${nvelle_UUID_efi_DDI}
  sed -i "s/${uuid_efi_sda1}/${nvelle_UUID_efi_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/fstab
 
  echo "etape 37-4: ancienne UUID de home: "${uuid_home_sda3}
  echo "par nvelle UUID de home: "${nvelle_UUID_home_DDI}
  sed -i "s/${uuid_home_sda3}/${nvelle_UUID_home_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/fstab
 
  echo "etape 37-5: ancienne UUID de divers: "${uuid_divers_sda4}
  echo "par nvelle UUID de divers: "${nvelle_UUID_divers_DDI}
  sed -i "s/${uuid_divers_sda4}/${nvelle_UUID_divers_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/fstab
 
  echo "etape 37-10: ancienne UUID de swap: "${uuid_swap_sda5}
  echo "par nvelle UUID de swap: "${nvelle_UUID_swap_DDI}
  sed -i "s/${uuid_swap_sda5}/${nvelle_UUID_swap_DDI}/g" /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/fstab
 
  echo "Vous pvez verifier en editant le fichier"
else
  echo "etape 37: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/fstab et y inscrire 1 (ou +) nvelle(s) UUID(s) de partition du DDE"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 38: modifier (eventuellement) le fichier /etc/default/grub du disque cible (DDI)
## condition grep qui recherche au - 1 occurence du pattern ds le fichier /etc/default/grub du disque cible, votre DDI
## on modifie ou pas selon nos souhaits
if confirm "etape 38: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/default/grub (de votre DDI) en y ajoutant (ou supprimant) eventuellement 1 L?";
then
  echo -e "${RED}${bold}ns sommes ds le script de restauration, le disque source est toujours DDE, le disque cible est tjs DDI, c'est une operation de restauration${normal}${NC}"
  echo -e "${RED}${bold}ns devons dc ajouter la L: GRUB_DISABLE_OS_PROBER=true au fichier DDI/etc/default/grub du disque cible, SI ELLE N EXISTE PAS${normal}${NC}"
  if grep -q "GRUB_DISABLE_OS_PROBER=true" /media/${utilisateur}/${nvelle_UUID_racine_DDI}/etc/default/grub
  then
    if confirm "occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque cible DDI/etc/default/grub, vlez vs l'effacer?";
    then
      echo "on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDI/etc/default/grub"
      sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub"
    fi
  else
    if confirm "occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque cible DDI/etc/default/grub, vlez vs l'ajouter?";
    then
      echo "oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque cible DDI/etc/default/grub"
      sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$nvelle_UUID_racine_DDI/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque cible DDE/etc/default/grub"
    fi
  fi
else
  echo "etape 38: on sort du script"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 39: modifier le fichier /etc/initramfs-tools/conf.d/resume du DDI
if confirm "etape 39: modifier /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/initramfs-tools/conf.d/resume du DDI et remplacer l'UUID de la partition swap "$uuid_swap_sd$lettre_disque_DDE"5 du DDE par celle de la partition swap "${nvelle_UUID_swap_DDI}" du DDI?"
then
  echo "modification de /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/initramfs-tools/conf.d/resume du DDI"
  echo "UUID inscrite: partition swap "$uuid_swap_sd$lettre_disque_DDE"5 du DDE remplacee par:"
  echo "UUID de la partition swap "${nvelle_UUID_swap_DDI}" du DDI"
  sed -i "s/[[:alnum:]]\{8\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{12\}/${nvelle_UUID_swap_DDI}/g" /media/${utilisateur}/${nvelle_UUID_racine_DDI}/etc/initramfs-tools/conf.d/resume
  echo "+ tard, ns executerons la commande suivante: update-initramfs -c -k all -b boot, lorsque ns serons ds le chroot"
else
  echo "etape 39: vs sortez du script sans reecrire UUID de swap de /media/"${utilisateur}"/"${nvelle_UUID_racine_DDI}"/etc/initramfs-tools/conf.d/resume du DDE ($designe_DDE)"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 40: demonter la partition racine du DDI et supprimer le repertoire
if confirm "etape 40: demonter la partition racine du DDI et supprimer le repertoire de montage?";
then
  umount ${dev}${lettre_disque_DDI}2
  rmdir /media/${utilisateur}/${nvelle_UUID_racine_DDI}
else
  echo "etape 40: vs sortez du script sans demonter la partition racine du DDE et/ou supprimer le repertoire de montage"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etapes 41: monter la partition racine du DDE pr y modifier eventuellement le fichier /etc/default/grub
if confirm "etape 41: ns avons besoin de monter la partition "${dev}${lettre_disque_DDE}2" (racine) de votre DDE pr eventuellement modifier le fichier /etc/default/grub, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2
  echo "on monte la partition "${dev}${lettre_disque_DDE}2" (racine) (de votre DDE) sur /media/"${utilisateur}"/"$uuid_racine_sd$lettre_disque_DDE2
  mount ${dev}${lettre_disque_DDE}2 /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2
else
  echo "etape 41: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDI}2" (racine) de votre DDE"
fi
echo
echo "====================================================================================="
echo
## etape 42: modifier (eventuellement) le fichier /etc/default/grub du disque source (DDE)
## condition grep qui recherche au - 1 occurence du pattern ds le fichier /etc/default/grub du disque source, votre DDE
## on modifie ou pas selon nos souhaits
if confirm "etape 42: modifier /media/"${utilisateur}"/"$uuid_racine_sd$lettre_disque_DDE2"/etc/default/grub (de votre DDE) en y supprimant (ou ajoutant) eventuellement 1 L?";
then
  echo -e "${RED}${bold}ns sommes ds le script de restauration, le disque source est toujours DDE, le disque cible est tjs DDI, c'est une operation de restauration${normal}${NC}"
  echo -e "${RED}${bold}ns devons dc effacer la L: GRUB_DISABLE_OS_PROBER=true du fichier DDE/etc/default/grub du disque source, SI ELLE EXISTE${normal}${NC}"
  if grep -q "GRUB_DISABLE_OS_PROBER=true" /media/$utilisateur/$uuid_racine_sd$lettre_disque_DDE2/etc/default/grub
  then
    if confirm "etape 42: occurence GRUB_DISABLE_OS_PROBER=true trouvee ds le fichier situé sur le disque source DDE/etc/default/grub, vlez vs l'effacer?";
    then
      echo "on efface la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDE/etc/default/grub"
      sed -i '/GRUB_DISABLE_OS_PROBER=true/d' /media/$utilisateur/$uuid_racine_sd$lettre_disque_DDE2/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque source DDE/etc/default/grub"
    fi
  else
    if confirm "etape 42: occurence GRUB_DISABLE_OS_PROBER=true introuvable ds le fichier situé sur le disque source DDE/etc/default/grub, vlez vs l'ajouter?";
    then
      echo "oui on ajoute la L GRUB_DISABLE_OS_PROBER=true du fichier situé sur le disque source DDE/etc/default/grub"
      sed -i '$a\GRUB_DISABLE_OS_PROBER=true' /media/$utilisateur/$uuid_racine_sd$lettre_disque_DDE2/etc/default/grub
    else
      echo "on ne modifie pas le fichier situé sur le disque source DDE/etc/default/grub"
    fi
  fi
else
  echo "etape 42: vs sortez du script"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 44: monter la partition efi du DDI pr modifier le fichier suivant:
## /media/laurent/racineDDI/efi/EFI/debian/grub.cfg
if confirm "etape 44: ns avons besoin de monter la partition "${dev}${lettre_disque_DDI}1" (efi) de votre DDI pr modifier le fichier /boot/EFI/debian/grub.cfg, vlez-vs la monter?";
then
  echo "creation du point de montage"
  mkdir /media/${utilisateur}/${nvelle_UUID_efi_DDI}
  echo "on monte la partition "${dev}${lettre_disque_DDI}1" (efi) (de votre DDI) sur /media/"${utilisateur}"/"${nvelle_UUID_efi_DDI}
  mount ${dev}${lettre_disque_DDI}1 /media/${utilisateur}/${nvelle_UUID_efi_DDI}
else
  echo "etape 44: vs sortez du script sans monter la partition "${dev}${lettre_disque_DDI}1" (efi) de votre DDI"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 45 modifier le fichier /boot/efi/EFI/debian/grub.cfg du DDI
if confirm "etape 45: modifier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDI}"/EFI/debian/grub.cfg (de votre DDI) en y inscrivant la nvelle UUID de la partition racine du DDI?";
then
  echo "mofification du fichier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDI}"/EFI/debian/grub.cfg du DDI"
  echo "UUID inscrite: celle de la partition racine du DDE: "$uuid_racine_sd$lettre_disque_DDE2
  echo "par nvelle UUID de la partition racine du DDI: ${nvelle_UUID_racine_DDI}"
  sed -i "s/"$uuid_racine_sd$lettre_disque_DDE2"/${nvelle_UUID_racine_DDI}/g" /media/$utilisateur/$nvelle_UUID_efi_DDI/EFI/debian/grub.cfg
else
  echo "etape 45: vs sortez du script sans modifier /media/"${utilisateur}"/"${nvelle_UUID_efi_DDI}"/EFI/debian/grub.cfg (de votre DDI) et y inscrire la nvelle UUID de la partition racine du DDI"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 46: on demonte la partition efi du DDI et on supprime le repertoire de montage
if confirm "etape 46: demonter la partition efi du DDI et supprimer son point (repertoire) de montage?";
then
  umount ${dev}${lettre_disque_DDI}1
  rmdir /media/${utilisateur}/${nvelle_UUID_efi_DDI}
else
  echo "etape 46: vs sortez du script sans demonter la partition EFI "${dev}${lettre_disque_DDE}1" (/dev/sdb1) du DDE et/ou supprimer le repertoire de montage"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 47: on definit un nveau disk GUID pr DDI
if confirm "etape 47: Vlez-vs definir un nvo disk GUID pr votre DDI ${dev}${lettre_disque_DDI} ?";
then
  echo "definition d'un nvo disk GUID pr votre DDI ${dev}${lettre_disque_DDI}"
  sgdisk -U 5CF82ADB-5FE7-D49E-5ABE-F73ADE418BA7 $dev$lettre_disque_DDE
else
  echo "etape 47: vs sortez du script sans definir un nvo disk GUID pr votre DDI ${dev}${lettre_disque_DDI}"
  exit 0
fi
echo
echo "====================================================================================="
echo
## etape 48: lancer les commandes
## update-grub et
## update-initramfs -c -k all -b boot
## depuis le systeme source (DDE)
## ameliorations possibles?
if confirm "etape 48: les 4 fichiers cles du DDI ont ete modifiés, vlez vs updater grub et initramfs depuis le systeme source (DDE)?";
then
  echo 'preparation du chroot'
 
  echo  'on monte /dev sur DDE/dev'
  mount -o bind /dev /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/dev

  echo 'on monte /sys sur DDE/sys'
  mount -o bind /sys /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/sys

  echo 'on monte /proc sur DDE/proc'
  mount -o bind /proc /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/proc

 
  echo -e "${RED}${bold}AVERTISSEMENT: A LIRE${normal}${NC}"
  echo 'vs etes pret: ce script vient de chrooter le systeme, votre invite de commande a ete modifiee'
  echo 'puisque vs avez lance ce script depuis votre cle USB, le chemin qui etait indique ds votre invite de commande etait /media/VotreNomUtilisateur/LeNomDeVotreCle'
  echo 'maintenant votre invite de commande doit vs indiquer que vs etes tjs root mais vs etes devez etre situé a la racine de votre systeme chroote'
  echo "tapez la commande suivante pr updater l'initramfs: update-initramfs -c -k all"
  echo 'tapez la commande suivante pr updater le grub du DDE: update-grub /dev/sdb (en supposant que votre DDE etait designe par la lettre b, sinon remplacez la)'
  echo 'puis sortez du systeme chroote en tapant la commande: exit'
  echo 'le script reprendra son execution'
  chroot /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2
 
  echo 'on demonte proc, sys et dev du DDE'
  umount /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/proc
  umount /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/sys
  umount /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2/dev
 
  echo 'on demonte la racine du DDE et on efface son rep, point de montage'
  umount /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2
  rmdir /media/${utilisateur}/$uuid_racine_sd$lettre_disque_DDE2

  echo "normalement vs etes ok"
  echo "fermez ttes les consoles et comptes que vs avez pu ouvrir"
  echo "pr etre sur que les modifs aient ete prises en compte"
  echo "une x redemarre, Verifiez que tout SEMBLE normal."
  echo "En vous remerciant"
else
  echo "etape 48: vs sortez du script pendant la preparation du chroot ou de l'operation d'updatage de grub ou de celle de l'initramfs depuis DDI"
  exit 0
fi
echo
echo "====================================================================================="
 



un truc que j'ai remarque apres avoir redemarre moult fois

1] le grub par defaut est le dernier que j'ai updaté.
ca peut dc etre
- grub du DDI pr un clonage (source= DDI, cible= DDE)
- grub du DDE pr 1 restauration (source= DDE, cible= DDI)

2] faut voir a arranger ça, c'est pas pratique, si vs avez des idées (modifier /boot/grub/grub.cfg)
faut que je vois comment mettre 2 autres images qd je demarre sur DDE (une image pr le menu de demarrage et 1 pr le fond d'ecran du bureau), histoire de bien differencier qd je suis sur un systeme plutot que sur l'autre (pr le fond d'ecran bureau, ca doit pas poser trop de problemes, ms ou se cache celle de l'ecran de demarrage grub?)

3] update-initramfs -c -k all
cree  des images initram pr ts les noyaux (enfin je crois)
serait il pas mieux de ne faire qu'un update du dernier initram? avec update-initramfs -c -k uname -r (j'ai pas la syntaxe exacte)

va falloir que j'apprenne a gerer ca... un jour peut etre

bonne soiree
tartare

Dernière modification par tartare (27-12-2021 19:09:18)


ce n'est pas à la machine de dire à l'homme ce qu'il peut faire, c'est a l'homme de dire a la machine ce qu'elle doit faire

Hors ligne

Pied de page des forums