#751 Le 18/03/2008, à 03:18
- traaf
Re : Customisation/Création de Live CD/USB
Au fait j'aime bien ton site
mais cela fait un moment que tu est dans mes signets
tiens j'avait pas lu bornes d'accès libre à internet : quelles alternatives ?
sympa
justement
un OS en Live USB, mais sans persistence
nikel pour zéro maintenance sur un poste public, réinitialisé a chaque boot
par contre, j'arrive pas encore à désactiver le sudo pour l'utilisateur ubuntu
si tu as des pistes...
Vault106, musique libre, enjoy it /!\
Hors ligne
#752 Le 18/03/2008, à 03:38
- frafa
Re : Customisation/Création de Live CD/USB
desactiver sudo, pas compris ,
si tu souhaite mettre un pass c'est par là
mon script permet de remplacer pass (blanc/sans)
enfin quand sed ne se vautre pas car ca bog une fois sur 2 c'te fonction
pas eut le temps de la deboger
c'est par la en manuel:
/mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
# U6aMy0wojraho is just a blank password
chroot /root debconf-communicate -fnoninteractive casper > /dev/null <<EOF
set passwd/root-password-crypted *
set passwd/user-password-crypted U6aMy0wojraho
set passwd/user-fullname $USERFULLNAME
set passwd/username $USERNAME
set passwd/user-uid 999
EOF
et pour desactiver autologin
j'ai prevu ca pas, encore eut le temps de integrer au script
function AUTO_LOGIN()
{
if [ -x "/mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin" ]; then
# substituer "true" par "false" A L'EXCEPTION des lignes contenant "FirstLogin=false"
# sed '/FirstLogin=false/!s/true/false/g'
function AUTO_LOGIN_FALSE()
{
FICHIER=$(cat /mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin)
echo -e "$FICHIER" | sed '/FirstLogin=false/!s/true/false/g' >/mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
}
function AUTO_LOGIN_TRUE()
{
FICHIER=$(cat /mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin)
echo -e "$FICHIER" | sed '/FirstLogin=false/!s/false/true/g' >/mnt/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
}
AUTO_LOGIN=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=400 \
--height=180 \
--list \
--print-column="ALL" \
--radiolist \
--separator=" " \
--column="*" \
--column="Val" \
--column="Activer/Désactiver autologin" \
--hide-column="2" \
TRUE "A" "Activer autologin" \
FALSE "B" "Désactiver autologin" \
)
if [ "$(echo "${AUTO_LOGIN}" | awk '{print $1}')" == "A" ]; then
AUTO_LOGIN_TRUE
elif [ "$(echo "${AUTO_LOGIN}" | awk '{print $1}')" == "B" ]; then
AUTO_LOGIN_FALSE
fi
fi
}
AUTO_LOGIN
Dernière modification par frafa (Le 18/03/2008, à 03:48)
Hors ligne
#753 Le 18/03/2008, à 04:09
- frafa
Re : Customisation/Création de Live CD/USB
==> traaf
tu as acheté un Zonbu ?
si oui ton opinion m'interesse...
pour les curieux:
http://www.breizh-ardente.fr/dotclear/i … e_hardware
Hors ligne
#754 Le 18/03/2008, à 08:00
- Oliv7
Re : Customisation/Création de Live CD/USB
Merci pour tes test et ta cooperation
ton script plus adapté a debian est le bienvenu
certaines de tes modifs seront integrées...
Y a pas de quoi .
Pour remplacer le passwd avec sed, il faut virer les / généré par mkpasswd:
#Setting Password
echo "#Setting Password"
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
while echo $PASSWORD | grep '/'
do
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
done
cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e 's/U6aMy0wojraho/'$PASSWORD'/' /usr/share/initramfs-tools/scripts/casper-bottom/10adduser
cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/\&\& sed -i -e '\/\^%admin\/s\/ALL$\/NOPASSWD: ALL\/' \/root\/etc\/sudoers//" /usr/share/initramfs-tools/scripts/casper-bottom/10adduser
cat /usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/ALL=(ALL) NOPASSWD: ALL/ALL=(ALL) ALL/" /usr/share/initramfs-tools/scripts/casper-bottom/10adduser
Pour supprimer l'éjection du cdrom lors de l'arrêt du système (pour pouvoir redémarrer sans manip)
# Removing Enter Prompt at shutdown
echo "# Removing Enter Prompt at shutdown"
rm /etc/rc0.d/*casper || failure "Removing casper init for stop failed, error=$?"
rm /etc/rc6.d/*casper || failure "Removing casper init for restart failed, error=$?"
#755 Le 18/03/2008, à 08:56
- frafa
Re : Customisation/Création de Live CD/USB
==> Oliv7
merci pour l'astuce / de mkpasswd vec sed, je me doutais bien que
c'etait un truc dans le genre mais je n''avait pas pris le temps de chercher le bog
et merci aussi pour
rm /etc/rc0.d/*casper ... rm /etc/rc6.d/*casper
plus propre comme ca
j'integre cela rapidement
je finit de deboger le mode delocalisation d'abord
je pense que la version de ce matin fonctionne bien
fo que je fasse encore qques test
Dernière modification par frafa (Le 18/03/2008, à 08:58)
Hors ligne
#756 Le 18/03/2008, à 12:50
- Oliv7
Re : Customisation/Création de Live CD/USB
Nouvelle version de mon script modifié:
http://ahaggar.org.free.fr/live_custom_new.sh
Modification du code de la fonction MAJ_INITRD pour prendre en compte une mise à jour du noyau.
Ma précédente modif était boguée pour prendre en charge une mise à jour de noyau
Retouchage des variables ENVIRONNEMENT_TRAVAIL qui passaient pas
modification de la fonction ADDON_EXTERNE
Puis quelques autres trucs, mais je ne me souviens plus
J'ai testé l'utilisation de script addon pour réaliser un environnement intranet sous Etch avec Xampp et Cacti.
J'ai eu les bogs suivant:
Impossible de mettre à jour l'utilisateur, le mot de passe root, le nom d'hote, l'autologin (ça doit provenir du fait que les scripts initramfs-tools ne sont pas appelés au boot)
Impossible de démarrer le serveur apache sous xampp.
J'ai regardé le wiki debian live cd, et à part la configuration de leur script maison pour les différentes options d'environnement (utilisateur, mot de passe, nom d'hôte, autologin ...) je n'ai rien vu.
Bilan je vais rester avec mon script de cstomisation sous ubuntu (que je vais adapter à Hardy) et attendre des jours meilleurs pour passer sous livecd debian.
Voilà
@+Oliv
#757 Le 18/03/2008, à 13:08
- traaf
Re : Customisation/Création de Live CD/USB
tu as acheté un Zonbu ?
si oui ton opinion m'interesse...
pour les curieux:
http://www.breizh-ardente.fr/dotclear/i … e_hardware
pas encore, hésitation entre le zonbu et une solution + bricolée a base de Intel D201GLY2
mais la décision se prendra sous peu, les travaux avancent, le placo est posé
il ne retera bientôt que la déco a faire
Vault106, musique libre, enjoy it /!\
Hors ligne
#758 Le 19/03/2008, à 09:06
- frafa
Re : Customisation/Création de Live CD/USB
All-Users
Bonjour,
liste des modifs de ces derniers jours...
-debogé la saisie du mot de passe user (merci à Oliv7)
-ajout d'une interface choix ou placer dossiers Music,Pictures,Videos
-ajout d'une interface pour changer nom user
-la fonction de delocalisation est maintenant fonctionelle
-ajout d'une interface pour activer/desactiver autologin
-dans le mode "Customiser LiveCD" changement du chemin d'enregistrement
car depuis un livecd provoquait une erreur enregistrement (full space),
enregistrement ce fait maintenant dans le meme dossier
que iso choisie avec "Custom-" devant le mon de l'iso
a venir:
-activer et choisir pass sudo
-et je pense un choix du type mime pour choisir qui ouvrir avec quoi
-suppression du message > Please remove the disc and close the tray (if any) then press ENTER:
pour halt/reboot direct
-et pour eee-pc ajout d''une barre de menu eee-pc avec qques utilitaires
-debogage des fonctions de ces derniers jours
...
Dernière modification par frafa (Le 19/03/2008, à 09:08)
Hors ligne
#759 Le 19/03/2008, à 09:07
- Oliv7
Re : Customisation/Création de Live CD/USB
Salut,
Bon j'ai testé ton script que j'ai modifié sous Hardy, voici les erreurs que j'ai relevées:
erreur pour installer les kernel header dans xnest
xterm -title 'reinstall linux-image & linux-headers' -e "apt-get install --reinstall -y linux-image-$(cat /opt/kernel-version.txt) linux-headers-$(cat /opt/kernel-version.txt)"
xterm: Error 32, errno 2: No such file or directory
Plus généralement impossible d'utiliser xterm dans xnest
erreur HAL avant support NTFS dans xnest
unable to start gnome-settings-daemon dans xnest
the configuration could not be load dans xnest
gpg key impossible à télécharger
Voici les fonctions que j'ai modifiées:
Pour Debian Etch Prise en compte de la construction différente du live cd
TEST_ETCH=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=400 \
--height=180 \
--list \
--print-column="ALL" \
--radiolist \
--separator=" " \
--column="*" \
--column="Val" \
--column="Fonction à exécuter" \
--hide-column="2" \
FALSE "A" ": Distribution Debian Etch ?" \
TRUE "B" ": Autres distributions" \
)
test $? -ne 0 && exit 0 # Bouton Annuler
if [ "$(echo "${TEST_ETCH}" | awk '{print $1}')" == "A" ]; then
INITRD_VMLINUZ_PATH="live"
else
INITRD_VMLINUZ_PATH="casper"
fi
}
INITRD_VMLINUZ_CD_PATH
Pour Debian Etch, prise en compte des dépots:
ETCH="
deb http://ftp.fr.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ etch main contrib non-free
# Dépôts Multimédia
#deb http://www.debian-multimedia.org etch main
#deb-src http://www.debian-multimedia.org etch main
#Dépots sécurité
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free
"
J'ai une erreur sur les dépots mutltimedia puisque manifestement il faut installer un paquet (multimedia-keyring quelque chose dans le gense) avant de mettre à jour les depots multimedia.
Pour Hardy et Etch, prise en compte de l'environnement livecd:
function ENV_LIVECD
{
Y_LIVECD=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=400 \
--height=250 \
--list \
--print-column="ALL" \
--radiolist \
--separator=" " \
--column="*" \
--column="Val" \
--column="Fonction à exécuter" \
--hide-column="2" \
FALSE "A" ": Installer les dépendances sur livecd ETCH" \
FALSE "B" ": Installer les dépendances sur livecd HARDY" \
TRUE "C" ": Ne rien faire" \
)
test $? -ne 0 && exit 0 # Bouton Annuler
SOURCES
if [ "$(echo "${Y_LIVECD}" | awk '{print $1}')" == "A" ]; then
SOURCES
echo -e "${ETCH}" | tee /etc/apt/sources.list
sudo apt-get update
sudo apt-get -y --force-yes install debian-multimedia-keyring
sudo apt-get update
sudo apt-get -y --force-yes install nasm build-essential rsync grub hdparm whois gnome-commander util-linux coreutils mkisofs metacity mtools mbr e2fsprogs parted dosfstools e2fsprogs wget sleuthkit sed squashfs-tools xnest xfonts-cyrillic xserver-xephyr bc
elif [ "$(echo "${Y_LIVECD}" | awk '{print $1}')" == "B" ]; then
DIST_VERSION="hardy"
SOURCES
echo -e "${UBUNTU}" | tee /etc/apt/sources.list
echo $GPG_KEY > tmp_key.sh
chmod +x tmp_key.sh
./tmp_key.sh
rm tmp_key.sh
sudo apt-get update
sudo apt-get -y --force-yes install genisoimage nasm build-essential rsync grub hdparm whois gnome-commander util-linux coreutils mkisofs metacity mtools mbr e2fsprogs parted dosfstools e2fsprogs wget sleuthkit sed squashfs-tools xnest xfonts-cyrillic xserver-xephyr bc
fi
}
ENV_LIVECD
Modification de la fonction choix_pass pour prendre en compte une modification de nom d'utilisateur, nom complet d'utilisateur, mot de passe, nom d'hôte sous Hardy (hj'ai testé ça marche)
function CHOIX_PASS() #hors chroot changer pass vide: U6aMy0wojraho
{
SAISIE_PASS1="";SAISIE_PASS2="";
CHEMIN_USER="$DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser"
CAT_CHEMIN_USER=$(cat $CHEMIN_USER)
TEST_PASS=$(echo -e "$CAT_CHEMIN_USER" | grep -i "set passwd/user-password-crypted U6aMy0wojraho")
if [[ -e $CHEMIN_USER && -n $TEST_PASS ]]; then
zenity --info --width 600 --text "
l'étape suivante va vous permettre de modifier,
si vous le souhaitez le mot de passe de l'utilisateur
par defaut du LiveCD/USB.
si vous souhaitez passer cette étape à la prochaine fenetre
utilisez le bouton \"Annuler\" .
"
USERNAME=$(zenity --entry --text "Saisie du nom d'utilisateur ")
test $? -ne 0 && break && USERNAME="" # Bouton Annuler
if [ $(echo -e "$USERNAME" | wc -m) -le 4 ]; then
echo -e "\033[1;47;31m la saisie minimum est de 4 caractères \033[0m" ;
fi
USERFULLNAME=$(zenity --entry --text "Saisie du nom complet d'utilisateur ")
test $? -ne 0 && break && USERFULLNAME="" # Bouton Annuler
function SAISIE()
{
SAISIE_PASS1=$(zenity --entry --hide-text --text "Saisie du mot de passe utilisateur (1)")
test $? -ne 0 && break && SAISIE_PASS1="" && SAISIE_PASS2="" # Bouton Annuler
sleep 2
SAISIE_PASS2=$(zenity --entry --hide-text --text "Confirmez, Saisie du mot de passe utilisateur (2)")
test $? -ne 0 && break && SAISIE_PASS1="" && SAISIE_PASS2="" # Bouton Annuler
}
while [[ "$SAISIE_PASS1" != "$SAISIE_PASS2" || "$(echo -e "$SAISIE_PASS1" | wc -m)" -le "6" ]]
do
SAISIE
if [[ -n "$SAISIE_PASS1" && -n "$SAISIE_PASS2" ]]; then
if [ $(echo -e "$SAISIE_PASS1" | wc -m) -le 6 ]; then
echo -e "\033[1;47;31m la saisie minimum est de 6 caractères \033[0m" ;
elif [ "$SAISIE_PASS1" != "$SAISIE_PASS2" ]; then
echo -e "\033[1;47;31m Erreur: pass 1 et 2 differents! \033[0m" ;
fi
fi
done
if [[ "$SAISIE_PASS1" == "$SAISIE_PASS2" && "$(echo -e "$SAISIE_PASS1" | wc -m)" -ge "6" ]]; then
echo -e '\E[37;44m'"\033[1m Pass ok \033[0m"
PASSWORD_CRYPT=$SAISIE_PASS2
sleep 2
fi
HOST=$(zenity --entry --text "Saisie du nom d'hôte de la machine (ie ubuntu, rosette, ...) ")
test $? -ne 0 && break && HOST="" # Bouton Annuler
# Updating initramfs script
echo "## Updating initramfs script"
# Removing Enter Prompt at shutdown
echo "# Removing Enter Prompt at shutdown"
rm $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/rc0.d/*casper || failure "Removing casper init for stop failed, error=$?"
rm $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/rc6.d/*casper || failure "Removing casper init for restart failed, error=$?"
#Setting username and Host data
echo "#Setting username and Host data"
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper | sed -i -e 's/USERNAME=casper/USERNAME='$USERNAME'/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper | sed -i -e "s/USERFULLNAME=\"Live session user\"/USERFULLNAME=\"$USERFULLNAME\"/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper | sed -i -e 's/HOST=live/HOST='$HOST'/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper | sed -i -e 's/BUILD_SYSTEM=Custom/BUILD_SYSTEM='$HOST'/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf | sed -i -e "s/export USERNAME=\"ubuntu\"/export USERNAME=\"$USERNAME\"/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf | sed -i -e "s/export USERFULLNAME=\"Live session user\"/export USERFULLNAME=\"$USERFULLNAME\"/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf | sed -i -e "s/export HOST=\"ubuntu\"/export HOST=\"$HOST\"/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf | sed -i -e "s/export BUILD_SYSTEM=\"Ubuntu\"/export BUILD_SYSTEM=\"$HOST\"/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/etc/casper.conf
#Setting Password
echo "#Setting Password"
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
while echo $PASSWORD | grep '/'
do
PASSWORD=`mkpasswd -s $PASSWORD_CRYPT`
done
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e 's/U6aMy0wojraho/'$PASSWORD'/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e 's/6GdU4mMnuT0dQ/'$PASSWORD'/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/\&\& sed -i -e '\/\^%admin\/s\/ALL$\/NOPASSWD: ALL\/' \/root\/etc\/sudoers//" $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser | sed -i -e "s/ALL=(ALL) NOPASSWD: ALL/ALL=(ALL) ALL/" $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
#Disable Autologin
echo "#Disable Autologin"
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/TimedLoginEnable=true/TimedLoginEnable=false/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoLoginEnable=true/AutoLoginEnable=false/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/AutoReLogin=true/AutoReLogin=false/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/#if [ ! -f \/root\/etc\/kde3\/kpersonalizerrc ]; then/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/#cat > \/root\/etc\/kde3\/kpersonalizerrc <<EOF/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/\[General\]/#\[General\]/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/FirstLogin=false/#FirstLogin=false/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
cat $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin | sed -i -e 's/^EOF/#EOF/' $DOSSIER_TRAVAIL/tmp_modif_liveusb/usr/share/initramfs-tools/scripts/casper-bottom/15autologin
fi
}
DISPLAY=localhost:5.0 CHOIX_PASS
Dans la fonction MAJ_INITRD modification du code pour prendre en compte une Maj de la version du kernel (1 fois)
#cherche version ?
CHERCHE=$(basename $(ls -a $(echo $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/config*)))
VERSION_LIN=${CHERCHE#*config-}
echo ${VERSION_LIN}
if [ $(echo $(ls -a $(echo $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/vmlinuz*) | wc -l)) == 0 ]; then
echo -e "\033[1;47;31m Erreur: vmlinuz \033[0m" ;
#chroot $DOSSIER_TRAVAIL/tmp_modif_liveusb apt-get install --reinstall -y linux-image-${VERSION_LIN}
rm "/tmp/Log_liveusb.txt"
sleep 2
exit 0
elif [ $(echo $(ls -a $(echo $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/vmlinuz*) | wc -l)) == 1 ]; then
echo -e '\E[37;44m'"\033[1m ok vmlinuz-${VERSION_LIN} présent \033[0m"
elif [ $(echo $(ls -a $(echo $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/vmlinuz*) | wc -l)) == 2 ]; then
mv $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/config-${VERSION_LIN} $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/old-config-${VERSION_LIN}
CHERCHE=$(basename $(ls -a $(echo $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/config*)))
OLD_VERSION_LIN=$VERSION_LIN
VERSION_LIN=${CHERCHE#*config-}
mv $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/old-config-${OLD_VERSION_LIN} $DOSSIER_TRAVAIL/tmp_modif_liveusb/boot/config-${OLD_VERSION_LIN}
Ajout d'une fonction pour tester l'iso customisée avec qemu (marche avec un cd Etch mais pas avec cd Hardy Rc6)
function QEMU_CD_INSTALL()
{
MESSAGE="Vérification et mise en place de quemu et kqemu (acceleration)"
TIMEOUT&
if [ ! -e /usr/bin/qemu ]; then
echo "installation de qemu"
aptitude -y install qemu kqemu-common module-assistant &>/dev/null
fi
if [ $TEST_QEMU ]; then
ISO=$(echo ${FICHIER_IMG})
else
ISO=$(echo $DOSSIER_TRAVAIL/Custom-$(basename ${FICHIER_IMG}))
fi
echo "Démarrer qemu pour vérification de boot"
cd $REPERTOIRE_TRAVAIL
dd of=ubuntuimage bs=1024 seek=2000000 count=0
qemu -no-acpi -hda ubuntuimage -cdrom $(echo $ISO) -m 256 -boot d -localtime -k fr -soundhw all -usb
}
Modification de la fonction DELOCALISER_MNT
function DELOCALISER_MNT()
{
#demonter si present
#if [ -n "$(mount | grep $DOSSIER_TRAVAIL)" ]; then umount $DOSSIER_TRAVAIL ; fi ;
DOSSIER_TRAVAIL=`zenity --title "Veuillez sélectionner un dossier de travail" --file-selection --directory`
test $? -ne 0 && exit 0 # Bouton Annuler
chmod 777 "${DOSSIER_TRAVAIL}"
sleep 2
}
Voici le code du menu de choix général:
CUSTOM_MENU=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=640 \
--height=480 \
--list \
--print-column="ALL" \
--radiolist \
--separator=" " \
--column="*" \
--column="Val" \
--column="Fonction à exécuter" \
--hide-column="2" \
FALSE "A" "Customiser LiveCD" \
TRUE "B" "Créer LiveUSB" \
FALSE "C" "Customiser LiveUSB (Effacera clé USB, sauvegardez vos documents avant)" \
FALSE "D" "Créer CD d'amorçage pour LiveUSB" \
FALSE "E" "Sauvegarde LiveUSB" \
FALSE "F" "Restauration LiveUSB" \
FALSE "G" "Effacer mode \"persistent\" (casper-rw)" \
FALSE "H" "Monter LiveUSB pour débogage" \
FALSE "I" "Monter LiveCD pour débogage" \
FALSE "J" "Créer partition /home et fat32 en option" \
FALSE "K" "Démarrer qemu pour vérification de boot" \
FALSE "L" "Sauvegarde de /home" \
FALSE "M" "Restauration de /home" \
FALSE "N" "Délocaliser $DOSSIER_TRAVAIL (utile notamment pour exécuter le script depuis un live cd)" \
)
test $? -ne 0 && exit 0 # Bouton Annuler
echo "$CUSTOM_MENU"
echo "OK_bis"
if [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "A" ]; then
DELOCALISER_MNT
TIMEOUT&
PREPARATION
INITRD_VMLINUZ_CD_PATH
DECOMPRESS_LIVECD
PREPA2
XNEST_CHROOT2
RECONSTRUCTION_SQUASHFS_LIVECD
PATH=$(echo $DOSSIER_TRAVAIL/Custom-$(basename ${FICHIER_IMG}))
sudo bash "$DOSSIER_TRAVAIL"/liveusb.sh "$PATH" "$DOSSIER_TRAVAIL"
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "B" ]; then
sudo bash "$DOSSIER_TRAVAIL"/liveusb.sh
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "C" ]; then
CHECK_SPACE_JOB
CHERCHE_CLE
echo "clé: /dev/${CLE_USB}"
DECOMPRESS_LIVEUSB
PREPA2
XNEST_CHROOT
RECONSTRUCTION_SQUASHFS_LIVEUSB
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "D" ]; then
CHERCHE_CLE
CD_BOOT
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "E" ]; then
SAUVEGARDE
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "F" ]; then
RESTAURATION
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "G" ]; then
CHERCHE_CLE
RESET_CASPER
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "H" ]; then
MOUNT_LIVEUSB
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "I" ]; then
MOUNT_LIVECD
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "J" ]; then
POSE_PART_SUPP
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "K" ]; then
#CHERCHE_CLE
TEST_QEMU="1"
DELOCALISER_MNT
CHOIX_LIVECD
QEMU_CD_INSTALL
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "L" ]; then
SAVE_HOME
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "M" ]; then
RESTAURATION_HOME
elif [ "$(echo "${CUSTOM_MENU}" | awk '{print $1}')" == "N" ]; then
DELOCALISER_MNT
#umount $DOSSIER_TRAVAIL
#zenity --info --width 600 --text "Désactivation temporaire de cette fonction
#suite a la decouverte d'un bog...
#le temps de corriger et je réactive.'
#"
else
echo "N/A";
fi
J'ai modifié également le fichier liveusb.sh pour prendre en compte un passage de variable à partir de live_custom.sh ($REPERTOIRE_TRAVAIL, $CHEMIN_IMAGE).
Par conséquence j'ai ensuite modifié pour l'exécuter tout seul ou à partir de live_custom.sh (pour faire un liveusb customisé à partir d'un CD de base)
Pour les plugins, et bien pour l'instant je suis réduit à modifier une fonction pour effectuer les modification dans le chroot et en dehors du chroot. Ce qui est pratique car je bénéficie alors de toutes les variables. Mais ce qui est embétant pour développer des plugins ajoutables à volonté ou non. D'ailleurs toutes les options que tu offres dans Xnest profiteraient agréablement d'être mis en option sous forme de plugins par l'utilisateur (car c'est long de choisir pas la peine à chaque fois). Mais les limitations viennent du langage utilisé (script) ...
Voilà,
Bon courage,
@+Oliv
#760 Le 19/03/2008, à 09:42
- frafa
Re : Customisation/Création de Live CD/USB
==> Oliv7
je regaarde/integre certaine de tes mod
dans jours à venir...
concernant idée de laisser user developper plug
ne par mettre chroot pour recup les variables
et laisser developpeur tout faire juste lire
si est present add-on-liveusb.*.sh (*dev choisit extension)
les lister si en a plusieurs...
pi pour passer en mode graphique
DISPLAY=localhost:5.0 xxxx
et pour passer en chroot sera
chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
export DISPLAY=localhost:5.0
EOF
j'sait pas a reflechier... //huhu je me relit et mdr
concernant xnest et xterm
gree faudra que je trouve une solution pour ouvrir un term dans xnest...
p'tetre tester via gksudo ==> xterm -title 'LiveUSB Customisation' -e "gksudo -w -l -k comande"
Dernière modification par frafa (Le 19/03/2008, à 09:47)
Hors ligne
#761 Le 19/03/2008, à 09:44
- atlas95
Re : Customisation/Création de Live CD/USB
Bonjour, super script, a part que sous Hardy il faut remplacer la dépendance mkisofs par genisoimage et que ça plante au niveau de la vérification des droits root.
Le script s'arrête et me dis que je ne suis pas root alors que je l'ai bien lancé avec sudo.
Ubuntu sur un XPS m1330:c'est ici !
Mon blog sur ubuntu:c'est ici !
Jabber : cyril at jabber.levis-heb.net
Hors ligne
#762 Le 19/03/2008, à 09:50
- frafa
Re : Customisation/Création de Live CD/USB
==> atlas95
lo,
pas testé sous hardy moi depuis alpha 4
car j'suis encore sous gusty et passe pas hardy depuis gusty a cause squashfs different
depuis la version alpha 5
mais je pense que je ferait une version special hardy plutot que de modif version gusty...
Dernière modification par frafa (Le 19/03/2008, à 09:56)
Hors ligne
#763 Le 19/03/2008, à 09:52
- Oliv7
Re : Customisation/Création de Live CD/USB
Re-
Ta solution pour plugin est intéressante. Mais je croyais que pour passer les variables d'uns cript à l'autre il fallait explicitement les appeler du sytle
./liveusb.sh "$REPERTOIRE_TRAVAIL" "$CHEMIN_IMAGE"
Sinon je suis sous livecd Gutsy là et toutes les demi-heure, mon clavier passe en amharic (ça doit être voisin du cyrilique) avec un pop up dans le coin en bas à droite où je suis obligé de rechoisir clavier français... ce qui est un peu ch...
@+Oliv
#764 Le 19/03/2008, à 09:55
- Oliv7
Re : Customisation/Création de Live CD/USB
pas testé sous hardy moi
car j'suis encore sous Gutsy et passe pas hardy depuis Gutsy a cause squashfs different
D'où l'intérêt de travailler à partir d'un livecd.
#765 Le 19/03/2008, à 10:01
- frafa
Re : Customisation/Création de Live CD/USB
==> Oliv7
a tester mais je pense que en appelant add-on dans le script par
. ./add-on-liveusb.*.sh
doit recup environement
moi pas un vieux de la vieille en shell donc j'apprend en codant...
Dernière modification par frafa (Le 19/03/2008, à 10:02)
Hors ligne
#766 Le 19/03/2008, à 20:05
- frafa
Re : Customisation/Création de Live CD/USB
je viens de tester un system basique pour add-on
sous ubuntu gusty passe ok
gere un nombre de script illimité
Ex: poser a racine user plusieurs script
add-on-liveusb.test1.sh
add-on-liveusb.test2.sh
add-on-liveusb.test3.sh
une boite a cocher propose liste a executer...
function ADDON_EXTERNE()
{
if [ "$(ls -a ./add-on-liveusb.*.sh)" ]; then
echo -e "$(ls -a ./add-on-liveusb.*.sh)" | sed "s/^/FALSE /g" | tr "\n" " " >/tmp/liveusb-addon
ADDON=$(zenity \
--title="Live CD/USB" \
--text="Choisir l'option désirée dans la liste ci-dessous" \
--window-icon="/usr/share/pixmaps/ubuntu.svg" \
--width=460 \
--height=460 \
--list \
--checklist \
--print-column="all" \
--separator="\n. " \
--column="*" \
--column="Cochez le/les add-on à executer" \
$(cat /tmp/liveusb-addon)
)
if [ "$ADDON" ]; then
echo -e ". $ADDON"
$(echo -e ". $ADDON")
fi
fi
}
DISPLAY=localhost:5.0 ADDON_EXTERNE
et pour tester j'ai mis dans un fichier add-on-liveusb.test.sh
#!/bin/bash
echo "CHECK_CDUSB:${CHECK_CDUSB}"
zenity --info --text ""CHECK_CDUSB:${CHECK_CDUSB}""
xterm -title 'add-on-liveusb Customisation' -e "read"
zenity --info --text "Evitez les script qui appelent uname,
car il releve pas la version kernel du chroot mais la votre.
remplacez \`uname -r\` par \$(cat /opt/kernel-version.txt) sous Ubuntu Gusty retournera ==> 2.6.22-14-generic
"
chroot /mnt/tmp_modif_liveusb << "EOF"
export LANG="$(cat /opt/lang.txt)"
export HOME=/home/liveusb
export LC_ALL=C
export DISPLAY=localhost:5.0
sudo -u liveusb gedit /etc/casper.conf
synaptic
EOF
Hors ligne
#767 Le 19/03/2008, à 20:22
- frafa
Re : Customisation/Création de Live CD/USB
pour info
j'ai acheté
liveusb .fr et liveusb .info
des que j'ai un peu de temps je monte
un site vite fait sous dotclear2 je pense
pour faire de la doc et presentation...
Dernière modification par frafa (Le 19/03/2008, à 20:32)
Hors ligne
#768 Le 19/03/2008, à 22:31
- Oliv7
Re : Customisation/Création de Live CD/USB
Salut,
J'ai testé la partie liveusb.sh aujourd'hui.
J'ai eu différentes erreurs dont notament une erreur de mauvais format sur casper-rw sur clef déjà formatée => obligé de supprimer les partitions et ça passe (ça me l'a fait deux fois).
La clef était déjà au format liveusb.
J'ai remarqué dans ton code une inversion des répertoires temp_liveusb et temp_modif_liveusb entre les scripts live_custom.sh et liveusb.sh ce qui fait que quand on les exécute dans le même répertoire de travail, ça mélange tout.
Sinon pour les addons c'est une bonne idée.
Pour mon extension j'ai besoin d'écrire sur le casper-rw ou le home-rw de la clef.
Je procède comme suit: je sauvegarde des données de l'environnement chrooté dans un répertoire convenu de l'environnement de travail et ensuite je copie sur la partition de la clef.
C'est intéressant de copier des choses sur le rw quand tu veux pouvoir sauvegarder même quand tu n'a plus accès à la console ou l'interface graphique (système gravement abîmé, ce qui arrive de temps en temps sous liveusb avec casper-rw).
Voilà @+
Oliv
#769 Le 19/03/2008, à 22:59
- frafa
Re : Customisation/Création de Live CD/USB
==> Oliv7
lo,
moi je ne voit aucun interet a avoir acces a casper-rw
tu efface contenu et tu repart a neuf
suffit de separer /home dans home-rw et aucun interet à reparer casper-rw
concernant les erreurs de partitionnement , moi je n'ai pas encore reussit a prouver
de maniere certaine cause a effet.
les erreurs se produisent pour moi aleatoirement pas constaté ce que tu dit...
pour moi mme gparted produit ce genre d'erreurs
si tu lui fait faire les mmes operations que mon script...
l'inversion n'existe que sur construction custom isocd
pas sur custom liveusb
decompression et reconstruction livecd/liveusb
je ne fait pas dans mme ordre/dossiers...
Hors ligne
#770 Le 20/03/2008, à 13:41
- Oliv7
Re : Customisation/Création de Live CD/USB
Salut,
En l'occurence j'écris des trucs (un environnement xampp) sur casper-rw ou home-rw parce que si je les laisse dans le squashfs et bien l'utilisateur fait ses modifs qui sont répercutées (uniquement pour les fichiers modifiés => à confirmer) sur le casper-rw.
Ce qui fait que si ça plante, effectivement tu effaces casper-rw et tu repares à neuf mais tu ne peux pas sauvegarder ton truc puisqu'il est à moitié sur casper-rw et à moitié sur squashfs.filesystem.
Tout ceci tiens debout bien sûr si la partition casper-rw contient les différences et non une nouvelle image du système de fichiers.
@+Oliv
#771 Le 20/03/2008, à 15:48
- traaf
Re : Customisation/Création de Live CD/USB
http://forum.ubuntu-fr.org/viewtopic.php?id=201229
t'as le temps de jeter un coup d'oeil la dessus frafa ?
Vault106, musique libre, enjoy it /!\
Hors ligne
#772 Le 21/03/2008, à 04:59
- frafa
Re : Customisation/Création de Live CD/USB
All-Users
Bonjour
je vous informe de mes derniers test sous hardy fait avec version daily du jour
xterm marche maintenant
debogé les dependances
debogé le mode delocaliser depuis livecd hardy vers custom hardy
reste 2 bog sous gnome
sudo -u $SUDO_USER gnome-appearance-properties %F
#fait erreur
#Failed to acquire org.gnome.SettingsDaemon
et l'ot euhhh, j'sait pu j'ai pas noté
mais apparement sont referencé
https://bugs.launchpad.net/ubuntu/+sour … /+activity
Dernière modification par frafa (Le 21/03/2008, à 05:00)
Hors ligne
#773 Le 21/03/2008, à 16:39
- frafa
Re : Customisation/Création de Live CD/USB
==> Oliv7
lo
t'avait raison
pour invertion de dossier liveusb.sh
désolé j'avait pas captu de qui tu parlait
manquait un umount au moment de invertion
sauf que format casper-rw echoue 1 coup sur 3/4
rajouté un test et un retente format
a l'air de passer ok comme ca....
bizarre car dans mode custom je fait exactement pareil
et pour moi a jamais echoué en mode custom
Hors ligne
#774 Le 21/03/2008, à 17:06
- jaypici
Re : Customisation/Création de Live CD/USB
==> Oliv7
lo,moi je ne voit aucun interet a avoir acces a casper-rw
tu efface contenu et tu repart a neuf
suffit de separer /home dans home-rw et aucun interet à reparer casper-rw..
Bonjour,
Newbie intégral, je me bats avec Kubu et Ubu et deux clés de 8 GO.
Je ne sais pas pourquoi j'ai pu assez facilement (10 jours de galère et reformatages à zéro) faire une live USB qui marche.
Pour Kubu, ça n'a fonctionné propre qu'avec LE script (Million de mercis ; génial).
Je suis maintenant terrorisé à l'idée de passer d'une machine à l'autre avec le binz KUBU (pas osé tester la persistance).
Peut-on redimensionner casper-rw (énorme par défaut dans mon cas) et créer une home-rw à côté ?
Y aurait-il moyen d'offrir systématiquement alors une RAZ de casper-rw (pas de home-rw !!!) en entrée et/ou sortie de connexion persistente ?
Merci.
Hors ligne
#775 Le 21/03/2008, à 17:12
- frafa
Re : Customisation/Création de Live CD/USB
==> jaypici
lo
regarde dans les menu
"Créer partition /home et fat32 en option"
et pour reset casper menu
"Effacer mode \"persistent\" (casper-rw)"
Hors ligne