#1 Le 17/04/2013, à 13:27
- Antoine P
Script de clonage - Problème de GRUB
J'ai crée un script qui à pour but de supprimer toutes les données sur un disque (/dev/sdX), de créer deux partitions :
[*]/dev/sdX1 : Une SWAP qui fait 1× la RAM si celle ci est supérieure à 1Go sinon elle fait 2× la RAM[/*]
[*]/dev/sdX2 : Une partition ext4 montée en / faisant le reste du disque dur[/*]
De restaurer une image Partclone dans la partition /dev/sdX2
Et installer le GRUB sur /dev/sdX.
Le script est le suivant :
#!/bin/bash
# --- SCRIPT DE CLONAGE DISQUE ---
echo -e "\n\n --- SCRIPT DE CLONAGE DE DISQUE ---"
echo -e "\n# Etape 1 : Sélection du disque de destination."
# CHOIX DU DISQUE
parted -l | grep /dev/sd
echo -n "Entrez l'adresse du lecteur à formater : "
read disk
echo -e "\n# Etape 2 : Création des partitions"
swapact=`swapon -s | grep $disk | cut -d" " -f1` # Désactivation de la SWAP
swapoff $swapact
parted ${disk} mklabel msdos # Création d'une nouvelle table de partitions
tailledd=`fdisk -l | grep $disk: | cut -d" " -f5`
tailledd=$(( $tailledd/1000000 ))
tailleram=`free | grep Mem | tr -s ' ' | cut -d" " -f2`
tailleram=$(( $tailleram/1000 ))
if [ $tailleram -le 1000 ] # La SWAP est 2× la RAM si cette dernière est inférieure à 1 Go sinon 1× la RAM
then
tailleswap=$(( $tailleram * 2 ))
else
tailleswap=$tailleram
fi
parted ${disk} mkpart primary $(( $tailledd - $tailleswap )) $tailledd # Création d'une partition /dev/sdX1 en SWAP
mkswap ${disk}1
echo "Partition d'échange crée."
parted ${disk} mkpart primary 1 $(( $tailledd - $tailleswap - 1 )) # Création d'une partition ext4 montée en / sur /dev/sdX2
mke2fs -t ext4 ${disk}2
e2fsck -f ${disk}2
echo "Partition de données crée."
echo -e "\n# Etape 3 : Clonage"
heured=`date | cut -d" " -f5 | cut -d":" -f1`
mind=`date | cut -d" " -f5 | cut -d":" -f2`
secd=`date | cut -d" " -f5 | cut -d":" -f3`
echo "Début de l'opération : $heured:$mind:$secd"
echo "Clonage en cours, veuillez patientez. Ceci peut prendre plusieurs dizaines de minutes …"
#dd if=/media/Images/Image-partition.ssimg of=${disk}2 ibs=4096
partclone.extfs -r -s "/media/Images/Image-disque.ssimg" -o ${disk}2 # Copie des données sur /dev/sdX2 depuis une image Partclone préalablement crée
e2fsck -f -y -v ${disk}2
resize2fs ${disk}2
parted ${disk} set 2 boot on # Définition du drapeau 'boot' sur /dev/sdX2
uuid=`uuidgen -r`
tune2fs -U $uuid ${disk}2
heuref=`date | cut -d" " -f5 | cut -d":" -f1`
minf=`date | cut -d" " -f5 | cut -d":" -f2`
secf=`date | cut -d" " -f5 | cut -d":" -f3`
echo "Fin de l'opération : $heuref:$minf:$secf"
echo "Clonage terminé."
echo -e "\n# Etape 3 : Installation du GRUB"
mkdir /media/mp
mount ${disk}2 /media/mp # Montage de la partition /dev/sdX2
os-prober
grub-install --root-directory=/media/mp ${disk} # Installation du GRUB
# Le problème : Le script déclare que l'installation s'est effectuée avec succès et lorsque je redémarre, le disque n'amorce pas.
umount /media/mp
echo -e "\n >>> LE CLONAGE EST TERMINÉ. Vous pouvez redémarrer l'ordinateur."
Le problème est le suivant : le script m'indique que l'installation du GRUB s'est bien déroulée mais lorsque je redémarre, cela ne marche pas.
Antoine P - Utilisateur d'Ubuntu depuis la 8.04, très satisfait.
Kubuntu 12.04 - Intel Pentium 4 3.20 GHz - RAM 1Go SDRAM - DD 330 Go - GPU : NVIDIA GeForce FX 5600 XT
Hors ligne
#2 Le 17/04/2013, à 19:07
- jamesbad000
Re : Script de clonage - Problème de GRUB
cela ne marche pas.
Mériterait d'être précisé.
Ensuite, je vois plusieurs sources de problème :
1 - tu génère une nouvelle uuid, ce qui nécessiste de remettre à jour le menu grub (sudo update-grub à faire en chroot, ou directement dans le fichier grub.cfg avec sed...)
accessoirement, ton fstab aussi devra tenir compte du changement d'UUID
2-le répertoire root-dir de grub-install doit correspondre à l'emplacement ou se trouvent les images de kernel (répertoire boot en principe)
3- Si tu utilise grub-install sans passer par un chroot, tu va installer la version de grub de l'OS actif et non celle de l'os cloné. Si les versions sont différentes, il peut y avoir des incompatibilitées avec le fichier grub.cfg de l'os cloné...
pour info, le flag boot ne sert à rien avec grub.
L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)
Hors ligne