#76 Le 08/10/2010, à 16:19
- Josepe36
Re : [Live-CD] Linux Secure Remix
page d'acceuil, ha oui ubiquity pardon.
je pense que ce n'est pas une nécessité de passer par ubiquity si l'on a un menu dans la page d'acceuil.
et un lanceur dans administration.
je verrai plutot ça comme un programme à part.
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#77 Le 08/10/2010, à 17:35
- Babdu89
Re : [Live-CD] Linux Secure Remix
@ Josepe36
Je voulais dire par "Accueil" le premier panneau qui s'ouvre quand on met le desktop cd en route...là où on choisit d'essayer ou installer Ubuntu... Mais bon YannUbuntu a donné une réponse....
J'ai découvert Ubuntu avec la 07.10.... Et alors?!... Depuis je regarde de temps en temps si Windows marche toujours....
En ligne
#78 Le 08/10/2010, à 17:49
- Babdu89
Re : [Live-CD] Linux Secure Remix
Mais bon YannUbuntu a donné une réponse....
Josepe, je t'avais demander comment modifier l'iso,et ajouter une entrée au menu de départ du live cd/usb Ubuntu, pour mettre et avoir accès a la "boîte a outil" quand je voulais pour faire une usb live custom, avec tes scripts... tu te souviens..., il y a peut-être une idée a piocher la dedans pour arriver a faire ce dont je parlais plus haut....,non??....
Dernière modification par Babdu89 (Le 08/10/2010, à 17:53)
J'ai découvert Ubuntu avec la 07.10.... Et alors?!... Depuis je regarde de temps en temps si Windows marche toujours....
En ligne
#79 Le 08/10/2010, à 18:36
- Josepe36
Re : [Live-CD] Linux Secure Remix
oui babdu89
c'est quasiment fait
comme j'ai dis plus haut je m'y met sérieusement , me reste a regler comment recuperer l'option passée au noyau.
par exemple pour lancer l'option "installer ubuntu" on donne au noyau l'option "only-ubiquity" ce qui a pour effet de ne lancer qu'ubiquity (bien que la session soit dejas lancée)
donc mon but c'est de savoir comment faire pour lancer "only-notre script".
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#80 Le 09/10/2010, à 14:31
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#81 Le 09/10/2010, à 15:15
- Josepe36
Re : [Live-CD] Linux Secure Remix
salut
oui c'est ubiquity aussi
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#82 Le 09/10/2010, à 20:46
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Bonjour
@Josepe : bien recu ton mail, merci ! Les 2 écrans linux mint apparaissent lorsqu'on clique sur l'icone Installer qui se trouve sur le bureau du live-cd, c'est bien ca? Pour l'écran d'accueil du live-CD, sais-tu comment le modifier ?
En bash, comment passe-t-on des arguments dans une fonction ? (si possible dans les 2 sens...)
j'ai fait un premier script qui s'approche du schéma post #66.
Normalement il permet de faire au moins la même chose que le script de Josepe (vu que je suis parti de ce script), à savoir :
- sauvegarde du MBR windows (si installé sur NTFS)
- restauration du MBR windows a la demande de l'utilisateur
Et normalement il devrait apporter quelques améliorations :
- prend en compte le cas des (vieux) Windows qui sont installés sur partition FAT32
- prend en compte le cas des MacOS qui sont installes sur partition HFS
- prend en compte le cas des ordinateurs avec Linux pré-installé
- sauvegarde silencieuse (invisible par l'utilisateur)
- sauvegardes de sécurité (au cas où un virus ou une maladresse viendrait supprimer la sauvegarde qui se trouvait sur la partition windows)
- script séparé pour l'insérer dans le menu Administration-Systeme du live-CD et sur la page d'accueil du live-CD
- menu de désinstallation proposant : soit de désinstaller Ubuntu, soit de restaurer le MBR (c'est pour la transition, je ne sais pas si il faut le garder ainsi)
- possibilité de désinstaller n'importe-quelle distribution Linux compatible, dans le cas où il n'y a qu'une seule distribution Linux sur le PC.
Je mets les 2 scripts ci-dessous pour information. Pour tests et discussion seulement. A NE PAS UTILISER EN PRODUCTION !
SCRIPT D'INSTALLATION D'UBUNTU :
#! /bin/bash
## YannUbuntu le 09/10/2010
## SAUVE AUTOMATIQUE DES 63 SECTEURS D'ORIGINE SUR LES PARTITIONS Windows, Mac et Linux (si besoin), puis lance Ubiquity.
## pour les tests, il suffit de modifier le lanceur "Installation Ubuntu" qui se trouve sur le bureau du live-CD par ce script.
## Amelioration possible : si un OS se trouve sur sdb (sdc..), y sauver le MBR de sdb (sdc..)
save63sectors_on_ntfs(){
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, POUR DEFINIR LA PARTITION SYSTEME ET Y INSTALLER UNE SAUVEGARDE DU MBR
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
for i in $ntfs
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_w95(){
##BOUCLE DE MONTAGE DES PARTITIONS W95, POUR DEFINIR LA PARTITION SYSTEME ET Y INSTALLER UNE SAUVEGARDE DU MBR
w95=$(fdisk -l|grep -i "w95"|cut -c1-9) ;
for i in $w95
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_hfs(){
##BOUCLE DE MONTAGE DES PARTITIONS HFS (MAC), POUR Y INSTALLER UNE SAUVEGARDE DU MBR
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
for i in $hfs
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_linux(){
##BOUCLE DE MONTAGE DES PARTITIONS LINUX, POUR DEFINIR LA OU LES PARTITIONS SYSTEME (QUI POSSEDENT UN DOSSIER /BOOT) ET Y METTRE UNE SAUVEGARDE DU MBR
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
for i in $linux
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
## DEBUT DU SCRIPT
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE OU PAS
DETECTED_BACKUP=0
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
w95=$(fdisk -l|grep -i "w95"|cut -c1-9) ;
if [[ "$w95" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons w95 existantes = $w95" ;
##BOUCLE DE MONTAGE DES PARTITIONS w95, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $w95
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion w95 windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition w95" ;
fi
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [[ "$hfs" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [[ "$linux" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
##SI AUCUN BACKUP N'A ETE DETECTE, ON EN FAIT UN AUTOMATIQUEMENT
if [ "$DETECTED_BACKUP"=0 ]; then
echo "We will backup the 63 sectors on all existing systems"
save63sectors_on_ntfs
save63sectors_on_w95
save63sectors_on_hfs
save63sectors_on_linux
fi
##LANCE UBIQUITY (comme le fait normalement l'icone sur le bureau du live-CD)
ubiquity --desktop %k gtk_ui
##La pour bien faire il faudrait dupliquer le backup dans le boot de la nouvelle installation Ubuntu. (pour si le backup sur la partition windows est supprime par erreur).
exit 0
SCRIPT DE DESINSTALATION D'UBUNTU :
#! /bin/bash
## YannUbuntu le 09/10/2010
## DESINSTALLATION D'UBUNTU
## pour les tests, il suffit de modifier le lanceur "Installation Ubuntu" qui se trouve sur le bureau du live-CD par ce script.
## le code est crade, si vous pouviez m'expliquer comment passer des arguments dans une fonction ca m'aiderait ;)
## A ameliorer : menu, controle de la qualite des backup, etc...
restauration_63_secteurs()
{
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE OU PAS
DETECTED_BACKUP=0
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "Restauration du backup de la partition $i"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
w95=$(fdisk -l|grep -i "w95"|cut -c1-9) ;
if [[ "$w95" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons w95 existantes = $w95" ;
##BOUCLE DE MONTAGE DES PARTITIONS w95, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $w95
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion w95 windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition w95" ;
fi
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [[ "$hfs" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [[ "$linux" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
##ON PREVIENT L'UTILISATEUR
if [ "$DETECTED_BACKUP"=0 ]; then
zenity --info --timeout=2 --text="IL N'EXISTE PAS DE SAUVEGARDE D'AMORCAGE SUR CET ORDINATEUR."
else
zenity --info --timeout=2 --text="L'amorcage original de cet ordinateur a été restauré. Merci d'avoir essayé Ubuntu, et à bientot !"
}
#___________________________________________________________________________________________________________________________________________________________________
### MENU DE DESINSTALLATION DES DISTROS INSTALLEES SUR L'ORDINATEUR -- A TERMINER
desinstallation_linux()
{
DETECTED_BACKUP=0
DETECTED_LINUX=0
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [[ "$linux" ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME
for i in $linux
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
DETECTED_LINUX=$(($DETECTED_LINUX+1))
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else zenity --info --timeout=2 --text="IL N'EXISTE PAS DE LINUX SUR CET ORDINATEUR." ; menu_initial ; break
fi
##SI UNE SEULE INSTALLATION LINUX, ALORS ON RESTAURE LES 63 SECTEURS ORIGINAUX (pour bien faire il faudrait demander confirmation)
if [ DETECTED_LINUX=1 ]
then
{
## RESTAURE LES 63 SECTEURS ORIGINAUX
DETECTED_BACKUP=0
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "Restauration du backup de la partition $i"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
w95=$(fdisk -l|grep -i "w95"|cut -c1-9) ;
if [[ "$w95" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons w95 existantes = $w95" ;
##BOUCLE DE MONTAGE DES PARTITIONS w95, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $w95
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion w95 windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition w95" ;
fi
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [[ "$hfs" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [[ "$linux" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
##ON PREVIENT L'UTILISATEUR
if [ "$DETECTED_BACKUP"=0 ]; then
zenity --info --timeout=2 --text="IL N'EXISTE PAS DE SAUVEGARDE D'AMORCAGE SUR CET ORDINATEUR. FORMATEZ UBUNTU PUIS METTEZ A JOUR VOTRE AMORCEUR."
else
zenity --info --timeout=2 --text="L'amorcage original de cet ordinateur a été restauré. Merci d'avoir essayé Ubuntu, et à bientot !"
}
##SI PLUSIEURS INSTALLATIONS LINUX, ALORS ON DEMANDE QUELLE DISTRO L'UTILISATEUR VEUT SUPPRIMER, on la supprime ET ON REINSTALLE GRUB sur une distro restante (determinee par l'utilisateur) -- a terminer
elif [ DETECTED_LINUX!=1 ] && [ DETECTED_LINUX!=0 ]
then
zenity --info --timeout=2 --text="FONCTIONNALITE EN DEVELOPPEMENT. En attendant, vous pouvez le faire vous-meme en formatant la distribution souhaitee puis en mettant a jour votre amorceur."
}
#___________________________________________________________________________________________________________________________________________________________________
##DEBUT DU SCRIPT
##Ce n'est pas definitif, mais ca se rapproche du schema proposé sur le forum
menu_initial()
{
action=$(zenity --list --title="DESINSTALLATION D'UBUNTU" --text="Choisissez une action" --column="" "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" "DESINSTALLER UBUNTU DE L'ORDINATEUR") || exit 100;
if [ "$action" = "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" ]
then restauration_63_secteurs
elif [ "$action" = "DESINSTALLER UBUNTU DE L'ORDINATEUR" ]
then desinstallation_linux
fi
}
#___________________________________________________________________________________________________________________________________________________________________
menu_initial
exit 0
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#83 Le 09/10/2010, à 23:22
- Josepe36
Re : [Live-CD] Linux Secure Remix
super boulot yannubuntu
oui c'est ça , en cliquant sur l'icone d'installation du bureau le script ce lance car j'ai entrer une ligne dans /usr/bin/ubiquity
qui demande de lancer le script bash et des que celui se termine python reprend la main.
pour modifier ? je croyais que tu l'avais dejas fait sur tes screeshots ?
pour ça j'utilise glade, qui est pas mal du tout mais j'ai pas trop compris l'emsemble du code d'ubiquity pour y connecter une action au bouton.
en tout cas chapeau pour ton script
a+
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#84 Le 10/10/2010, à 16:02
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Salut
Je viens de corriger mon 1er script (celui d'installation et sauve), il y avait des bugs. J'ai aussi ajouté quelques fonctionnalités :
- le support du FAT16
- le cas ou des partitions sont deja montées
SCRIPT D'INSTALLATION D'UBUNTU (v2) :
#! /bin/bash
## YannUbuntu le 10/10/2010
## SAUVE AUTOMATIQUE DES 63 SECTEURS D'ORIGINE SUR LES PARTITIONS Windows, Mac et Linux (si besoin), puis lance Ubiquity.
## pour les tests, il suffit de modifier le lanceur "Installation Ubuntu" qui se trouve sur le bureau du live-CD par ce script.
## Ameliorations possibles : augmenter la sécurité en copiant le backup sur les OS qui ne l'ont pas, support du multi-disques (sdb, sdc..), ..
save63sectors_on_ntfs(){
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, POUR DEFINIR LA PARTITION SYSTEME ET Y INSTALLER UNE SAUVEGARDE DU MBR
ntfs=$(sudo fdisk -l|grep -i "ntfs"|cut -c1-9) ;
for i in $ntfs
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_fat(){
##BOUCLE DE MONTAGE DES PARTITIONS FAT, POUR DEFINIR LA PARTITION SYSTEME ET Y INSTALLER UNE SAUVEGARDE DU MBR
fat=$(sudo fdisk -l|grep -i "fat"|cut -c1-9) ;
for i in $fat
do
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_hfs(){
##BOUCLE DE MONTAGE DES PARTITIONS HFS (MAC), POUR Y INSTALLER UNE SAUVEGARDE DU MBR
hfs=$(sudo fdisk -l|grep -i "hfs"|cut -c1-9) ;
for i in $hfs
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors_on_linux(){
##BOUCLE DE MONTAGE DES PARTITIONS LINUX, POUR DEFINIR LA OU LES PARTITIONS SYSTEME (QUI POSSEDENT UN DOSSIER /BOOT) ET Y METTRE UNE SAUVEGARDE DU MBR
linux=$(sudo fdisk -l|grep -i "linux"|cut -c1-9) ;
for i in $linux
do
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;zenity --info --timeout=2 --text="La sauvegarde des 63 secteurs a été faite dans $i "
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
## DEBUT DU SCRIPT
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE OU PAS
DETECTED_BACKUP=0
DETECTED_SYSTEM=0
ntfs=$(sudo fdisk -l|grep -i "NTFS"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
umount $i ;
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; DETECTED_SYSTEM=$(($DETECTED_SYSTEM+1)); control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
fat=$(sudo fdisk -l|grep -i "fat"|cut -c1-9) ;
if [ "$fat" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons FAT existantes = $fat" ;
##BOUCLE DE MONTAGE DES PARTITIONS fat, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $fat
do
umount $i ;
mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion FAT windows"; DETECTED_SYSTEM=$(($DETECTED_SYSTEM+1)); control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition FAT" ;
fi
hfs=$(sudo fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [ "$hfs" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
umount $i ;
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; DETECTED_SYSTEM=$(($DETECTED_SYSTEM+1)); control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(sudo fdisk -l|grep -i "linux"|cut -c1-9) ;
if [ "$linux" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
umount $i ;
mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; DETECTED_SYSTEM=$(($DETECTED_SYSTEM+1)); control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
echo "Il y a $DETECTED_SYSTEM systemes d'exploitation detectes."
echo "Il y a $DETECTED_BACKUP backups detectes."
##SI AUCUN BACKUP N'A ETE DETECTE, ON EN FAIT UN AUTOMATIQUEMENT
if [ "$DETECTED_BACKUP" = "0" ]; then
echo "We will backup the 63 sectors on all existing systems"
save63sectors_on_ntfs
save63sectors_on_fat
save63sectors_on_hfs
save63sectors_on_linux
fi
##LANCE UBIQUITY (comme le fait normalement l'icone sur le bureau du live-CD)
ubiquity --desktop %k gtk_ui
##La pour bien faire il faudrait dupliquer le backup dans le boot de la nouvelle installation Ubuntu. (pour si le backup sur la partition windows est supprime par erreur).
exit 0
Dernière modification par YannUbuntu (Le 10/10/2010, à 16:04)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#85 Le 10/10/2010, à 17:28
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Correction de bugs et support du FAT pour le 2e script (celui de restauration du MBR) :
SCRIPT DE DESINSTALATION D'UBUNTU (v2) :
#! /bin/bash
## YannUbuntu le 10/10/2010
## DESINSTALLATION D'UBUNTU
## pour les tests, il suffit de mettre ce script dans le menu Systeme->Administration par exemple.
## le code est crade, si vous pouviez m'expliquer comment passer des arguments dans une fonction ca m'aiderait ;)
## A ameliorer : menu, controle de la qualite des backup, etc...
restauration_63_secteurs()
{
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE OU PAS
DETECTED_BACKUP=0
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
umount $i ; mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "Restauration du backup de la partition $i"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
fat=$(fdisk -l|grep -i "fat"|cut -c1-9) ;
if [ "$fat" ] && [ "$DETECTED_BACKUP"="0" ]; then
echo "voici les partitons FAT existantes = $fat" ;
##BOUCLE DE MONTAGE DES PARTITIONS fat, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $fat
do
umount $i ; mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion FAT windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition FAT" ;
fi
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [ "$hfs" ] && [ "$DETECTED_BACKUP"="0" ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
umount $i ; mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [ "$linux" ] && [ "$DETECTED_BACKUP"="0" ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
umount $i ; mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
##ON PREVIENT L'UTILISATEUR
if [ "$DETECTED_BACKUP"=0 ]; then
zenity --info --timeout=2 --text="IL N'EXISTE PAS DE SAUVEGARDE D'AMORCAGE SUR CET ORDINATEUR."
else
zenity --info --timeout=2 --text="L'amorcage original de cet ordinateur a été restauré. Merci d'avoir essayé Ubuntu, et à bientot !"
fi
}
#___________________________________________________________________________________________________________________________________________________________________
### MENU DE DESINSTALLATION DES DISTROS INSTALLEES SUR L'ORDINATEUR -- A TERMINER
desinstallation_linux()
{
DETECTED_BACKUP=0
DETECTED_LINUX=0
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [ "$linux" ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME
for i in $linux
do
umount $i ; mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
DETECTED_LINUX=$(($DETECTED_LINUX+1))
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
fi
fi
umount $i ;
done
else zenity --info --timeout=2 --text="IL N'EXISTE PAS DE LINUX SUR CET ORDINATEUR." ; menu_initial ; break
fi
##SI UNE SEULE INSTALLATION LINUX, ALORS ON RESTAURE LES 63 SECTEURS ORIGINAUX (pour bien faire il faudrait demander confirmation)
if [ "$DETECTED_LINUX"="1" ]
then
## RESTAURE LES 63 SECTEURS ORIGINAUX
DETECTED_BACKUP=0
ntfs=$(fdisk -l|grep -i "ntfs"|cut -c1-9) ;
if [ "$ntfs" ]; then
echo "voici les partitons ntfs existantes = $ntfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS NTFS, DETECTE CELLES QUI SONT PARTITION SYSTEME (ont un dossier Windows) ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $ntfs
do
umount $i ; mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion NTFS windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "Restauration du backup de la partition $i"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition NTFS" ;
fi
fat=$(fdisk -l|grep -i "fat"|cut -c1-9) ;
if [ "$fat" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons FAT existantes = $fat" ;
##BOUCLE DE MONTAGE DES PARTITIONS fat, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $fat
do
umount $i ; mount $i /mnt;
windows=$(ls /mnt |grep -i "windows");
if [ "$windows" ]; then
echo "la partition $i est une partion FAT windows"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition FAT" ;
fi
hfs=$(fdisk -l|grep -i "hfs"|cut -c1-9) ;
if [ "$hfs" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons hfs existantes = $hfs" ;
##BOUCLE DE MONTAGE DES PARTITIONS hfs (Mac), DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $hfs
do
umount $i ; mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion hfs Mac"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition hfs" ;
fi
linux=$(fdisk -l|grep -i "linux"|cut -c1-9) ;
if [ "$linux" ] && [ "$DETECTED_BACKUP"=0 ]; then
echo "voici les partitons linux existantes = $linux" ;
##BOUCLE DE MONTAGE DES PARTITIONS linux, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DU MBR
for i in $linux
do
umount $i ; mount $i /mnt;
boot=$(ls /mnt |grep -i "boot");
if [ "$boot" ]; then
echo "la partition $i est une partion linux systeme"; control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i contient un backup"; DETECTED_BACKUP=$(($DETECTED_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/mnt/tp.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
sudo dd if=/mnt/tp.img of=/dev/sda bs=1 skip=446 count=64
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition linux" ;
fi
##ON PREVIENT L'UTILISATEUR
if [ "$DETECTED_BACKUP" = "0" ]; then
zenity --info --timeout=2 --text="IL N'EXISTE PAS DE SAUVEGARDE D'AMORCAGE SUR CET ORDINATEUR. FORMATEZ UBUNTU PUIS METTEZ A JOUR VOTRE AMORCEUR."
else
zenity --info --timeout=2 --text="L'amorcage original de cet ordinateur a été restauré. Merci d'avoir essayé Ubuntu, et à bientot !"
fi
fi
##SI PLUSIEURS INSTALLATIONS LINUX, ALORS ON DEMANDE QUELLE DISTRO L'UTILISATEUR VEUT SUPPRIMER, on la supprime ET ON REINSTALLE GRUB sur une distro restante (determinee par l'utilisateur) -- a terminer
if [ "$DETECTED_LINUX" != "1" ] && [ "$DETECTED_LINUX" != "0" ]
then
zenity --info --timeout=2 --text="FONCTIONNALITE EN DEVELOPPEMENT. En attendant, vous pouvez le faire vous-meme en formatant la distribution souhaitee puis en mettant a jour votre amorceur."
fi
}
#___________________________________________________________________________________________________________________________________________________________________
##DEBUT DU SCRIPT
##Ce n'est pas definitif, mais ca se rapproche du schema proposé sur le forum
menu_initial()
{
action=$(zenity --list --title="DESINSTALLATION D'UBUNTU" --text="Choisissez une action" --column="" "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" "DESINSTALLER UBUNTU DE L'ORDINATEUR") || exit 100;
if [ "$action" = "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" ]
then restauration_63_secteurs
elif [ "$action" = "DESINSTALLER UBUNTU DE L'ORDINATEUR" ]
then desinstallation_linux
fi
}
#___________________________________________________________________________________________________________________________________________________________________
menu_initial
exit 0
Dernière modification par YannUbuntu (Le 10/10/2010, à 17:30)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#86 Le 10/10/2010, à 17:41
- Josepe36
Re : [Live-CD] Linux Secure Remix
j'ai une question au passage, est ce que le mbr des differents systemes commerciaux sont protégés par copyright ?
si vous voyez ou je veux en venir ....
Dernière modification par Josepe36 (Le 10/10/2010, à 17:43)
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#87 Le 10/10/2010, à 17:50
- Josepe36
Re : [Live-CD] Linux Secure Remix
Un sacré bosseur ce yannubuntu
j'ai collectionné tout tes scripts, et bien j'ai plus grand chose à faire !!!
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#88 Le 10/10/2010, à 17:52
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Moi je me pose la question des systèmes MacOS : qu'ont-ils comme dossier "typique" a la racine du systeme installé ?
(j'ai mis "boot" par défaut vu que c'est de l'UNIX, mais je prefere verifier)
@Josepe : mon script de sauve fonctionne bien, par contre il reste des bugs sur le script de restauration... si tu peux y jeter un oeil
@tous : pour tester les scripts, je conseille de tester sous VirtualBox, ca permet de creer un disque avec tous types de partitions.
Dernière modification par YannUbuntu (Le 10/10/2010, à 17:56)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#89 Le 10/10/2010, à 18:05
- Josepe36
Re : [Live-CD] Linux Secure Remix
@yannubuntu : je viens de l'essayer, j'ai relever effectivement quelques bricoles mais rien de mechant, je verrai ça demain en grande profondeur car plus de temps
en revanche pour la fonction de désinstallation je m'y colle ou tu le fais? car tu codes a la vitesse de l'éclair là
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#90 Le 10/10/2010, à 18:06
- angelus1
Re : [Live-CD] Linux Secure Remix
salut,
je vous suis avec depuis le premier post .superbe travail collaboratif (et surtout très utile).
merci pour les futurs utilisateurs.
Hors ligne
#91 Le 10/10/2010, à 18:51
- Josepe36
Re : [Live-CD] Linux Secure Remix
salut angelus1
celà fait plaisir, merci.
@yannubuntu : pour passer un argument a une fonction ça se passe comme ça, je te poste une modif que j'ai fait en exemple sur ta derniere fonction pour que tu comprennes :
##DEBUT DU SCRIPT
##Ce n'est pas definitif, mais ca se rapproche du schema proposé sur le forum
menu_initial()
{
echo $1
action=$(zenity --list --title="DESINSTALLATION D'UBUNTU" --text="Choisissez une action" --column="" "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" "DESINSTALLER UBUNTU DE L'ORDINATEUR") || exit 100;
if [ "$action" = "RESTAURER L'AMORCAGE ORIGINAL DE L'ORDINATEUR" ]
then restauration_63_secteurs
elif [ "$action" = "DESINSTALLER UBUNTU DE L'ORDINATEUR" ]
then desinstallation_linux
fi
}
#___________________________________________________________________________________________________________________________________________________________________
menu_initial $1
exit 0
ici tu appel ta fonction menu_initial, $1 recupere l'argument passé dans le terminal.
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#92 Le 11/10/2010, à 17:08
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Merci Josepe, je vais faire des miracles avec ca Je ne suis pas sur d'avoir beaucoup de temps cette semaine, donc je veux bien que tu m'aides sur un point stp : actuellement la commande linux=$(sudo fdisk -l|grep -i "linux"|cut -c1-9) nous fait un tableau du genre :
/dev/sda2
/dev/sda3
/dev/sda5
/dev/sda6
Comment fais-tu pour :
- supprimer la 3-ieme ligne ?
- ajouter une 5-ieme ligne (en y mettant dev/sda7 par exemple) ?
@tous : quelqu'un peut-il se renseigner a propos des dossiers que l'on trouve dans la racine des MacOS svp ? (y a-t-il bien un dossier "boot" ?)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#93 Le 12/10/2010, à 00:24
- Josepe36
Re : [Live-CD] Linux Secure Remix
salut yannubuntu
tiens voilà un exemple a ta question pour supprimer une ligne et en rajoutter une :
#! /bin/bash
linux=$(sudo fdisk -l|grep -i "linux"|cut -c1-9)
n=0
for i in $linux
do
tab[$n]=$i
n=$(($n+1))
done
tab[3]=""
tab[5]="/dev/sda8"
echo ${tab[@]}
exit 0
en ésperant que ça t'aide
Dernière modification par Josepe36 (Le 12/10/2010, à 00:26)
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#94 Le 12/10/2010, à 11:33
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Merci beaucoup !
J'y ai retravaillé un peu. Voici la version 3 de mes deux scripts, avec comme nouveautés :
- un code plus propre
- duplication du backup pour augmenter la sécurité
- possibilité de désinstaller n'importe-quelle distro compatible en dual-boot avec Windows ou autre
- nettoyage apres desinstallation dual-boot
- si multi-boot linux (limite actuelle : maximum 5 distros en multiboot), possibilité de choisir la distro que l'on veut désinstaller, et cela réinstalle automatiquement GRUB.
SCRIPT D'INSTALLATION D'UBUNTU (v3) :
#! /bin/bash
## YannUbuntu le 12/10/2010
## SAUVE AUTOMATIQUE DES 63 SECTEURS D'ORIGINE SUR LA RACINE DES PARTITIONS contenant un OS (Windows, Mac et Linux), puis lance Ubiquity, puis duplique le backup sur la partition du Linux nouvellement installé.
## pour les tests, il suffit de modifier le lanceur "Installation Ubuntu" qui se trouve sur le bureau du live-CD par ce script.
## Améliorations possibles : placer le backup dans le dossier /boot au lieu de /, support du multi-disques (sdb, sdc..), ..
duplicate63sectors(){
##ON DUPLIQUE LE BACKUP DANS LES PARTITIONS SYSTEME de type $TEMP_FILESYSTEM
tab=$(sudo fdisk -l|grep -i "$TEMP_FILESYSTEM"|cut -c1-10) ;
for i in $tab
do
umount $i ;
mount $i /mnt;
folder=$(ls /mnt |grep -i "$TEMP_SYSTEMFOLDER");
if [ "$folder" ]
then control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i est une partion $TEMP_FILESYSTEM systeme contenant déjà un backup";
else
dd if=/tmp/save-63-sectors.img of=/mnt/save-63-sectors.img bs=512 count=63 ;
echo "The 63 sectors have been duplicated into partition $i " ;
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP+1)) ;
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP-1)) ;
fi
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
save63sectors(){
##BOUCLE DE MONTAGE DES PARTITIONS de type $TEMP_FILESYSTEM, POUR DEFINIR LA PARTITION SYSTEME ET Y INSTALLER UNE SAUVEGARDE Des 63 secteurs
tab=$(sudo fdisk -l|grep -i "$TEMP_FILESYSTEM"|cut -c1-10) ;
for i in $tab
do
umount $i ;
mount $i /mnt;
folder=$(ls /mnt |grep -i "$TEMP_SYSTEMFOLDER");
if [ "$folder" ]
then dd if=/dev/sda of=/mnt/save-63-sectors.img bs=512 count=63 ;
echo "*********The 63 sectors have been saved into partition $i " ;
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP+1)) ;
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP-1)) ;
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "1" ]; then
dd if=/mnt/save-63-sectors.img of=/tmp/save-63-sectors.img bs=512 count=63
fi
fi
umount $i ;
done
}
#__________________________________________________________________________________________________________________________________________________________________
detect_backup(){
tab=$(sudo fdisk -l|grep -i "$TEMP_FILESYSTEM"|cut -c1-10) ;
if [ "$tab" ]; then
echo "voici les partitons $TEMP_FILESYSTEM existantes = $tab" ;
##BOUCLE DE MONTAGE DES PARTITIONS de type $TEMP_FILESYSTEM, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DES 63 secteurs
for i in $tab
do
umount $i ;
mount $i /mnt;
folder=$(ls /mnt |grep -i "$TEMP_SYSTEMFOLDER");
if [ "$folder" ]; then
control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i est une partion $TEMP_FILESYSTEM systeme contenant un backup";
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP+1)) ;
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "1" ]; then dd if=/mnt/save-63-sectors.img of=/tmp/save-63-sectors.img bs=512 count=63
fi
else echo "la partition $i est une partion $TEMP_FILESYSTEM systeme ne contenant pas de backup";
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP+1))
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition $TEMP_FILESYSTEM" ;
fi
}
#__________________________________________________________________________________________________________________________________________________________________
## DEBUT DU SCRIPT
echo "Beginning of script."
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE, SI OUI IL LE GARDE EN MEMOIRE (dans /tmp)
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=0
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=0
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
echo "Nous avons detecté $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s), et $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP systèmes d'exploitation sans backup."
##SI AUCUN BACKUP N'A ETE DETECTE, ON EN FAIT UN AUTOMATIQUEMENT SUR TOUS LES OS, et on le garde aussi en memoire (/tmp)
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "0" ] && [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP" != "0" ]; then
echo "No backup detected. We will backup the 63 sectors on all existing systems"
##SAUVE DU MBR DANS LES PARTITIONS NTFS (CONTENANT WINDOWS)
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
save63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
##SAUVE DU MBR DANS LES PARTITIONS FAT (CONTENANT WINDOWS)
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
save63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
##SAUVE DU MBR DANS LES PARTITIONS HFS (CONTENANT MACOS)
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
save63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
##SAUVE DU MBR DANS LES PARTITIONS LINUX (CONTENANT UNE DISTRIBUTION)
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
save63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
fi
##Ici pour bien faire, s'il y a plusieurs backups, il faudrait verifier que tous les backups sont identiques. S'il y a des differences (corruption d'un fichier), on garde le plus nombreux et de preference celui sur une partition linux.
##S'IL RESTE DES OS SANS BACKUP, ON Y DUPLIQUE LE BACKUP (pour augmenter la sécurité)
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" != "0" ] && [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP" != "0" ]; then
echo "Some OS without backup have been detected. We will duplicate the backup in all of them."
##SAUVE DU MBR DANS LES PARTITIONS NTFS (CONTENANT WINDOWS)
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
duplicate63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP" != "0" ]; then
##SAUVE DU MBR DANS LES PARTITIONS FAT (CONTENANT WINDOWS)
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
duplicate63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP" != "0" ]; then
##SAUVE DU MBR DANS LES PARTITIONS HFS (CONTENANT MACOS)
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
duplicate63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP" != "0" ]; then
##SAUVE DU MBR DANS LES PARTITIONS LINUX (CONTENANT UNE DISTRIBUTION)
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
duplicate63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
fi
fi
fi
fi
echo "Avant de lancer Ubiquity, il reste $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s), et $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP systèmes d'exploitation sans backup."
##LANCE UBIQUITY (comme le fait normalement l'icone sur le bureau du live-CD)
ubiquity --desktop %k gtk_ui
echo "Après avoir lancé Ubiquity, il reste $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s), et $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP systèmes d'exploitation sans backup."
##Pour finir, on duplique le backup dans la nouvelle installation Ubuntu/Linux. (pour si le backup sur la partition windows est supprimé par erreur).
echo "We will duplicate the backup in the new existing Ubuntu/Linux"
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
duplicate63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
echo "End of script. A backup of the 63 sectors should be present at the root of all existing OS."
exit 0
Dernière modification par YannUbuntu (Le 12/10/2010, à 15:38)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#95 Le 12/10/2010, à 11:34
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
et le deuxieme script :
SCRIPT DE DESINSTALLATION D'UBUNTU (v3) :
#! /bin/bash
## YannUbuntu le 12/10/2010
## DESINSTALLATION D'UBUNTU
## pour les tests, il suffit de mettre ce script dans le menu Systeme->Administration par exemple.
## A ameliorer : menu, controle de la qualite des backup, multiboot de plus de 5 distros...
detect_backup(){
tab=$(sudo fdisk -l|grep -i "$TEMP_FILESYSTEM"|cut -c1-10) ;
if [ "$tab" ]; then
echo "voici les partitons $TEMP_FILESYSTEM existantes = $tab" ;
##BOUCLE DE MONTAGE DES PARTITIONS de type $TEMP_FILESYSTEM, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DES 63 secteurs
for i in $tab
do
umount $i ;
mount $i /mnt;
folder=$(ls /mnt |grep -i "$TEMP_SYSTEMFOLDER");
if [ "$folder" ]; then
control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i est une partion $TEMP_FILESYSTEM systeme contenant un backup";
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP+1)) ;
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "1" ]; then dd if=/mnt/save-63-sectors.img of=/tmp/save-63-sectors.img bs=512 count=63
fi
else echo "la partition $i est une partion $TEMP_FILESYSTEM systeme ne contenant pas de backup";
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP+1))
fi
##Creates a tab with partitions containing an installation of Linux
if [ "$TEMP_FILESYSTEM" = "linux" ]; then
QUANTITY_OF_DETECTED_LINUX=$(($QUANTITY_OF_DETECTED_LINUX+1))
LIST_OF_EXISTING_LINUX[$QUANTITY_OF_DETECTED_LINUX]="$i"
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition $TEMP_FILESYSTEM" ;
fi
}
#__________________________________________________________________________________________________________________________________________________________________
restore63sectors(){
## RESTAURE LES BACKUPS se trouvant sur les partitions de type $TEMP_FILESYSTEM , et efface les backups se trouvant sur les partitions
tab=$(sudo fdisk -l|grep -i "$TEMP_FILESYSTEM"|cut -c1-10) ;
if [ "$tab" ]; then
echo "voici les partitons $TEMP_FILESYSTEM existantes = $tab" ;
##BOUCLE DE MONTAGE DES PARTITIONS de type $TEMP_FILESYSTEM, DETECTE CELLES QUI SONT PARTITION SYSTEME ET CELLES QUI ONT UNE SAUVEGARDE DES 63 secteurs
for i in $tab
do
umount $i ;
mount $i /mnt;
folder=$(ls /mnt |grep -i "$TEMP_SYSTEMFOLDER");
if [ "$folder" ]; then
control=$(ls /mnt | grep "save-63-sectors.img") ;
if [ "$control" ]
then echo "la partition $i est une partion $TEMP_FILESYSTEM systeme contenant un backup, on restaure ce backup dans le MBR de sda.";
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=$(($QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP+1))
### sauvegarde de la table de partition actuelle (il s'agit en fait du 1er secteur)
dd if=/dev/sda of=/tmp/backup_of_current_first_sector.img bs=512 count=1 ;
### restauration de la sauvegarde dans les 63 premiers secteurs
dd if=/mnt/save-63-sectors.img of=/dev/sda bs=512 count=63 ;
### restauration de la table de partition actuelle
dd if=/tmp/backup_of_current_first_sector.img of=/dev/sda bs=1 skip=446 count=64
### renomme le backup (afin de ne pas interferer avec le backup de la prochaine installation, tout en le gardant en cas de pépin)
mv /mnt/save-63-sectors.img /mnt/sav63sectors_old.img
else echo "la partition $i est une partion $TEMP_FILESYSTEM systeme ne contenant pas de backup"
fi
fi
umount $i ;
done
else echo "Il n'y a pas de partition $TEMP_FILESYSTEM" ;
fi
}
#__________________________________________________________________________________________________________________________________________________________________
### MENU DE DESINSTALLATION DES DISTROS INSTALLEES SUR L'ORDINATEUR -- A TERMINER
uninstall_linux()
{
## CONTROLE SI UN BACKUP DES 63 SECTEURS EXISTE DEJA SUR LE DISQUE, SI OUI IL LE GARDE EN MEMOIRE (dans /tmp)
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=0
QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP=0
QUANTITY_OF_DETECTED_LINUX=0
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP $QUANTITY_OF_DETECTED_LINUX $LIST_OF_EXISTING_LINUX
##SI AUCUN LINUX N'EST DETECTE
if [ "$QUANTITY_OF_DETECTED_LINUX" = "0" ]; then
zenity --info --text="Erreur : aucune installation Linux n'a été détectée sur cet ordinateur."
##SI AU MOINS UN LINUX A ETE DETECTE
else
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
detect_backup $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP
echo "Nous avons détecté $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s), et $QUANTITY_OF_DETECTED_SYSTEMS_WITHOUT_BACKUP systèmes d'exploitation sans backup."
echo "Nous avons détecté $QUANTITY_OF_DETECTED_LINUX distribution(s) Linux."
##SI UNE SEULE INSTALLATION LINUX, ALORS ON RESTAURE LES 63 SECTEURS ORIGINAUX (en demandant confirmation)
if [ "$QUANTITY_OF_DETECTED_LINUX" = "1" ]
then
##SI AUCUN BACKUP N'EST DETECTE
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "0" ]; then
zenity --info --text="Il n'existe pas de sauvegarde d'amorcage sur cet ordinateur. Cela signifie que vous aviez installé une distribution Linux ancienne (Ubuntu 10.10 et antérieures). Pour la désinstaller, formatez-la Ubuntu puis mettez à jour votre amorceur."
##SI AU MOINS UN BACKUP A ETE DETECTE
else
confirmation=$(zenity --list --title="CONFIRMATION DE DESINSTALLATION D'UBUNTU" --text="Ceci effacera Ubuntu et restaurera l'amorcage initial de votre ordinateur. Attention, toutes vos données contenues dans Ubuntu seront effacées." --column="" "Désinstaller Ubuntu (partition ${LIST_OF_EXISTING_LINUX[1]})") || exit 101;
if [ "$confirmation" = "Désinstaller Ubuntu (partition ${LIST_OF_EXISTING_LINUX[1]})" ]
then
## RESTAURE LE PREMIER BACKUP DETECTE SUR LE DISQUE, et efface tous les backups des disques
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=0
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
echo "The $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s) have been renamed into sav63sectors_old.img, so that they won't be detected during next Ubuntu installation."
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[1]} ;
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[1]} ;
zenity --info --text="Ubuntu a été correctement desinstallé. Merci d'avoir essayé Ubuntu, et à bientot !"
fi
fi
##SI PLUSIEURS INSTALLATIONS LINUX, ALORS ON DEMANDE QUELLE DISTRO L'UTILISATEUR VEUT SUPPRIMER, on la supprime ET ON REINSTALLE GRUB sur une distro restante (determinee par l'utilisateur) -- a terminer
else
echo "We display the list of all partitions containing Linux installations";
##Pour le moment je me restreins a 5 installations Linux maximum. Il faudrait trouver un moyen d'afficher non pas 5 elements mais un nombre d'elements egal au nombre de distros detectees
choice=$(zenity --list --title="CONFIRMATION DE DESINSTALLATION" --text="Quelle distribution Linux souhaitez-vous desinstaller ?" --column="" "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[1]})" "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[2]})" "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[3]})" "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[4]})" "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[5]})") || exit 102;
if [ "$choice" = "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[1]})" ];then
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[1]} ;
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[1]} ;
##Reinstalle GRUB dans la 2eme installation Linux
mount ${LIST_OF_EXISTING_LINUX[2]} /mnt;
sudo grub-install --root-directory=/mnt /dev/sda
umount ${LIST_OF_EXISTING_LINUX[2]}
elif [ "$choice" = "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[2]})" ];then
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[2]} ;
mount ${LIST_OF_EXISTING_LINUX[2]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[2]} ;
##Reinstalle GRUB dans la 1ere installation Linux
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
sudo grub-install --root-directory=/mnt /dev/sda
umount ${LIST_OF_EXISTING_LINUX[1]}
elif [ "$choice" = "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[3]})" ];then
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[3]} ;
mount ${LIST_OF_EXISTING_LINUX[3]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[3]} ;
##Reinstalle GRUB dans la 1ere installation Linux
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
sudo grub-install --root-directory=/mnt /dev/sda
umount ${LIST_OF_EXISTING_LINUX[1]}
elif [ "$choice" = "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[4]})" ];then
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[4]} ;
mount ${LIST_OF_EXISTING_LINUX[4]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[4]} ;
##Reinstalle GRUB dans la 1ere installation Linux
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
sudo grub-install --root-directory=/mnt /dev/sda
umount ${LIST_OF_EXISTING_LINUX[1]}
elif [ "$choice" = "Désinstaller Ubuntu/Linux (partition ${LIST_OF_EXISTING_LINUX[5]})" ];then
##Efface le contenu de la partition choisie par l'utilisateur
umount ${LIST_OF_EXISTING_LINUX[5]} ;
mount ${LIST_OF_EXISTING_LINUX[5]} /mnt;
rm -r /mnt/*
umount ${LIST_OF_EXISTING_LINUX[5]} ;
##Reinstalle GRUB dans la 1ere installation Linux
mount ${LIST_OF_EXISTING_LINUX[1]} /mnt;
sudo grub-install --root-directory=/mnt /dev/sda
umount ${LIST_OF_EXISTING_LINUX[1]}
fi
fi
fi
fi
}
#___________________________________________________________________________________________________________________________________________________________________
##Ce n'est pas definitif, mais ca se rapproche du schema proposé sur le forum
menu_initial()
{
action=$(zenity --list --title="DESINSTALLATION D'UBUNTU" --text="Bienvenue dans le desinstallateur d'Ubuntu. Choisissez une action ci-dessous :" --column="" "Restaurer l'amorcage original de l'ordinateur" "Désinstaller Ubuntu/Linux") || exit 100;
if [ "$action" = "Restaurer l'amorcage original de l'ordinateur" ]
then
## RESTAURE LE PREMIER BACKUP DETECTE SUR LE DISQUE, et efface tous les backups des disques
QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP=0
TEMP_FILESYSTEM="linux"; TEMP_SYSTEMFOLDER="boot"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="ntfs"; TEMP_SYSTEMFOLDER="windows"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="fat"; TEMP_SYSTEMFOLDER="windows"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
TEMP_FILESYSTEM="hfs"; TEMP_SYSTEMFOLDER="boot"
restore63sectors $TEMP_FILESYSTEM $TEMP_SYSTEMFOLDER $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP
##ON PREVIENT L'UTILISATEUR
if [ "$QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP" = "0" ]; then
zenity --info --text="Erreur : il n'existe pas de sauvegarde d'amorcage sur cet ordinateur."
else
echo "The $QUANTITY_OF_DETECTED_SYSTEMS_WITH_BACKUP backup(s) have been renamed into sav63sectors_old.img, so that they won't be detected during next Ubuntu installation."
zenity --info --text="L'amorcage original de cet ordinateur a été restauré. Merci d'avoir essayé Ubuntu, et à bientot !"
fi
elif [ "$action" = "Désinstaller Ubuntu/Linux" ];then
uninstall_linux
fi
}
#___________________________________________________________________________________________________________________________________________________________________
## DEBUT DU SCRIPT
echo "Beginning of script."
menu_initial
echo "End of script."
exit 0
Dernière modification par YannUbuntu (Le 12/10/2010, à 17:56)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#96 Le 12/10/2010, à 16:37
- jalobservateur
Re : [Live-CD] Linux Secure Remix
Yann , Vraiment la classe !
Bravo!
Que c'est appréciable de voir un intérêt et de la débrouillardise ainsi!
La route est longue vers la maîtrise Linux, Mais...La voie est Libre...
Notre choix 'être 'sous' Windows ou 'sur' Linux'...
http://hybryde.org
Hors ligne
#97 Le 12/10/2010, à 18:16
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
Merci Jalob pour tes encouragements
@tous (Jalob?) : Petit test a faire SVP : Ca serait sympa si quelqu'un d'autre pouvait, dans Virtual-Box (avec un disque dur virtuel de 12Go), installer 2 Ubuntu (Ubuntu numero1, puis numero2) en dual-boot via mon script d'INSTALLATION v3, sur le disque dur virtuel de Virtual-Box, puis desinstaller Ubuntu numero2 via mon script de DESINSTALLATION v3, et verifier que GRUB est bien mis a jour : au redemarrage de VirtualBox GRUB devrait n'afficher plus que Ubuntu numero1.
@Josepe : saurais-tu comment faire avec Zenity pour creer les 2 boites de dialogue suivante :
1) Une boite toute simple, du style "Text=Ca va faire ca. Souhaitez vous continuer? Bouton 1=OK , Bouton2 = Annuler"
2) Une boite avec choix multiple, un peu comme la liste suivante, mais avec un nombre de choix que je pourrais adapter au nombre de distros detectees :
choice=$(zenity --list --title="CONFIRMATION DE DESINSTALLATION" --text="Quelle distribution Linux souhaitez-vous desinstaller ?" --column="" "Désinstaller Ubuntu1" "Désinstaller Ubuntu2" "Désinstaller Ubuntu3" "Désinstaller Ubuntu4" "Désinstaller Ubuntu5") || exit 102;
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#98 Le 12/10/2010, à 19:04
- Josepe36
Re : [Live-CD] Linux Secure Remix
salut yannubuntu
pour la premiere question :
zenity --question
pour la deuxieme :
il te faut integrer une boucle "for" dans ton zenity
exemple :
choice=$(zenity --list --title="CONFIRMATION DE DESINSTALLATION" --text="Quelle distribution Linux souhaitez-vous desinstaller ?" --column="" for i in list; do echo $i; done) || exit 102;
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#99 Le 12/10/2010, à 23:17
- jalobservateur
Re : [Live-CD] Linux Secure Remix
:rolleyes:Salut vs
Yann j'aimerais beaucoup le faire, mais j'ai tellement pris de retard dans mon boulot que je dois m'y mettre presto.
J'ai 3 machines à monter en Linux dual-boot justement alors les 3 avec "Équitable'' bien-sûr.
Vraiment dommage, car j'aime bien être alpha ou beta testeur et là la cause m'intéresse au plus haut point, mais j'ai plus le choix, désolé
La route est longue vers la maîtrise Linux, Mais...La voie est Libre...
Notre choix 'être 'sous' Windows ou 'sur' Linux'...
http://hybryde.org
Hors ligne
#100 Le 13/10/2010, à 03:56
- YannUbuntu
Re : [Live-CD] Linux Secure Remix
@jalob: pas de soucis
@tous : quelqu'un peut-il faire le test svp ?
@Josepe : merci, ca me permettra de faire des menus plus propres
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne