Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 28/02/2013, à 17:20

sylv_31

Live USB, personnalisation

Bonjour à tous,

Je dois faire une clé USB avec un Ubuntu qui "démarre tout seul", et qui lance un programme d'antivirus automatiquement, pour scanner le poste de travail.

Pour faire ça, j'ai créé une LiveUSB avec Lili USB Creator et une image ISO Ubuntu Desktop. C'est bien, ça marche.

Mais, il me reste 2 points :
- canaliser un peu plus l'utilisateur, quand il boote avec la clé; en particulier, retirer des options inutiles (install sur disque dur, ...), et des packages inutiles (firefox, ...), pour aller directement à "essayer ubuntu",
- déposer mes propres packages (scripts, anti-virus, ...) dans la distri, et faire qu'ils se lancent après le démarrage d'Ubuntu.

Merci d'avance

Hors ligne

#2 Le 01/03/2013, à 14:15

Maisondouf

Re : Live USB, personnalisation

Si tu veux juste scanner le poste il y a des solutions toutes prêtes : http://www.avira.com/fr/download/produc … cue-system.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 01/03/2013, à 18:58

sylv_31

Re : Live USB, personnalisation

Merci, mais on m'impose les antivirus (Mc Afee ET Sophos).

Hors ligne

#4 Le 02/03/2013, à 12:50

Maisondouf

Re : Live USB, personnalisation

C'est vrai qu'ils sont mieux, il y a plus de pub lol


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#5 Le 02/03/2013, à 15:16

jamesbad000

Re : Live USB, personnalisation

Bonjour,

Pour personaliser un live comme tu veux le faire, Il y a différentes approches :
- Faire une installation classique, la modiifier, puis utiliser un outil qui permet de la repackager en live. (Démarche utilisée me semble-t-il pour faire les distrib ubuntu,..)

- Extraire le contenu du squashfs de l'iso dans un répertoire, puis aller dedans en chroot pour le personaliser (à la ligne de commande). Puis reconstruire le squasfs et l'iso...
cette démarche est expliqué ici http://doc.ubuntu-fr.org/personnaliser_livecd.
La démarche est opérationnelle, je l'ai même "scripté" pour me faire des live cd à jour et avec des package additionnels. Mais attention, ce n'est pas "clé en main".

Il existe une variante qui permet de rentrer dans le squashfs en mode graphique, du devrait pouvoir remettre la main dessus en cherchant "personalisation live" dans le forum. Mais sachant qu'à chaque distrib il peux y avoir de subtils différence qui mettent l'outiliage en échec, je considère qu'il vaut mieux suivre une démarche ou l'on maitrise les manips.

Et dans tous les cas, si tu veux modifier le comportement du démarrage, il faut encore savoir ou intervenir (script de démarrage dans /etc/init.d, option de démarrage de l'utilisateur...)

Dernière modification par jamesbad000 (Le 02/03/2013, à 15:17)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#6 Le 02/03/2013, à 19:33

sylv_31

Re : Live USB, personnalisation

Merci Jamesbad000,

La deuxième approche semble bien correspondre à ce que je dois faire. Le lien que tu donnes est assez explicite. Un peu long, mais pas mal. Je vais commencé par ça.
Tu dis que tu as des scripts ? Pour tout générer ? On peut en bénéficier ?

Merci en tout cas

Hors ligne

#7 Le 02/03/2013, à 20:45

jamesbad000

Re : Live USB, personnalisation

Pas de problème, je peux te passer les script, à condition que tu te contente d'un minimun d'explication et que tu sache t'en débrouiller après. Parce que ça reste assez technique à l'utilisation quand même.

Je te prépare un post, mais ça sera peut-être pas avant demain...


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#8 Le 02/03/2013, à 22:10

sylv_31

Re : Live USB, personnalisation

Super, c'est gentil.

Hors ligne

#9 Le 03/03/2013, à 18:56

jamesbad000

Re : Live USB, personnalisation

Voilà les script.

- Le répertoire ou ces script doivent se trouver va être également le répertoire ou vont être extrait l'iso et le squashfs et ou va être placé l'mage iso résultant. Il faut donc prévoir qq Go...

- A l'exécution, le répertoire courant doit être le répertoire contenant les script

- Le nom à affecter aux script, sa fonction, ainsi que les directives particulières sont en commentaire au début de chaque script. (Quoique pour la fonction, je me suis parfois contenté du message de "trace")

- En certain endroit, J'ai forcé la sortie brutale en cas de problème, sans toujours prévoir un message d'erreur explicite. Néanmoins, il y a pas mal de messages d'information qui permettent de repérer l'étape incriminée.

- On peut traiter un live 32 bits depuis une 64 bits, mais pas l'inverse !

- remarque importante, le packaging du kernel dans une 12.10 francisé m'a posé un problème que j'ai laissé de coté (au niveau du script buiildSquasfs, et en lien avec kernel-remove)
Eventuellement, si tu rencontre ce cas de fiigure, je me pencherais sur le problème !

# Script : uLive-updateIso.sh

# Ce script enchaine les script pour une simple remise à niveau de l'iso :
# Extract de l'iso et du squashfs, application des dernières mise à jour, reconstruction du squashfs et de l'iso

# Paramètre 
# 	$1 : L'iso à extraire

./uLive-extract.sh --nocheck "$1" && ./uLive-chroot.sh /chrootHostSharedDir/uLive-distUpgrade.sh && ./uLive-buildSquash.sh && ./uLive-buildIso.sh
#! /bin/bash

# script: uLive-extract.sh
# Extrait l'iso puis le squashfs dans le répertoire ./squashFs

echo -e "\n ==== Extract live cd ====\n"
# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

check=true

# Check the arguments.
while test $# -gt 0; do
	option="$1"
	shift

	case "$option" in
		# Pas de confirmation avant suppression des répertoires de travail
		-n|--nocheck) 
			check=false;; 

		-*) 
			echo "option $option invalide"; exit 1;;

		# toute autre valeurs est considérée comme le nom de fichier iso
		*) 
			isoFile="$option"
	esac
done
# Vérif existance fichier iso 

if [ ! -f "$isoFile" ]; then
	echo "le fichier '$isoFile' n'existe pas."
	echo "Le 1er paramètre doit indiquer un nom de fichier image iso"
	exit 1
fi

echo "--> fichier iso : $isoFile"

if [ -e squashFs ]; then
	echo "--> Démontage répertoires du squashfs"
	! ./bindChroot.sh --unbind squashFs && echo "Terminus" && exit 1
fi

# Nettoyage répertoires de travail
umount ./mntCd

if [ -e mntCd ] || [ -e extractCd ] || [ -e squashFs ]; then

	if [ $check == true ]; then

		echo "Confirmer la suppression des répertoires mntCd, extractCd, squashFs O/N ?"
		read confSuppr

		if [ "$confSuppr" != "O" ]; then
			echo "Abandon"
			exit 1
		fi
	fi	
	echo "suppression des répertoires mntCd, extractCd, squashFs"
	rm -R mntCd extractCd squashFs
fi

# Crée les répertoires de travail
mkdir mntCd extractCd

# monte l'iso 
mount -o loop "$isoFile" ./mntCd

# Affiche & Enregistre le nom du fichier iso (sans le chemin d'accès, ni l'extention)
echo "$isoFile" | sed -e 's/.*\///g' -e 's/\.[^\.]\{0,3\}$//' | tee >extractCd/isoFile.txt

# extrait les fichiers du cd sauf le squash
echo "--> extraction fichiers du cd"
rsync --exclude=/casper/filesystem.squashfs -a mntCd/ extractCd
[ $? != 0 ] && exit 1

echo "--> extrait le squashfs du cd"
apt-get install squashfs-tools
unsquashfs -d ./squashFs mntCd/casper/filesystem.squashfs
[ $? != 0 ] && exit 1

# démonte l'image du cd
umount ./mntCd

# Suppression composants windows
cd extractCd
rm -r pics autorun.inf wubi.exe
cd ..

# supression exemple
rm -R squashFs/usr/share/example-content

exit 0
#!/bin/bash
# Script: uLive-buildSquash.sh

echo -e "\n ==== Reconstruction squashfs ====\n"
# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

! ./bindChroot.sh squashFs squashSh && echo "echec du montage : Terminus"  && exit 1;

# si le rerp ./profil existe
if [ -d profil ]; then
	echo "--> Mise à jour home personnalisé"
	rm -R squashFs/etc/skel/*
	cp -r profil/. squashFs/etc/skel
	chown -R root:root squashFs/etc/skel
else
	echo "--> Pas de home personnalisé"
fi

# == Si le noyau a été mis à jour, ou compte utilisateur modifié... 
# il faut réinstaller la dernière version de kernel et de initrd dans casper :
echo "--> sup ancien kernel"
chroot squashFs /chrootHostSharedDir/kernel-remove.sh 1 --auto-remove

echo "--> install le kernel dans casper"
# cette façon de faire suppose qu'il n'y a qu'une seule version dans /boot (repose sur kernel-remove !)
mv -v squashFs/boot/vmlinuz-*-generic extractCd/casper/vmlinuz 
mv -v squashFs/boot/initrd.img-*-generic extractCd/casper/initrd.gz && gzip -dc extractCd/casper/initrd.gz | lzma -7 > extractCd/casper/initrd.lz && rm -v extractCd/casper/initrd.gz
rm squashFs/boot/*

echo "--> nettoyage packages"
# rm squashFs/var/lib/dbus/machine-id
# rm squashFs/sbin/initctl
# chroot squashFs dpkg-divert --rename --remove /sbin/initctl
chroot squashFs apt-get autoremove
chroot squashFs apt-get autoclean
chroot squashFs apt-get clean

echo "--> construit le manifest du nouveau squashfs" 
chmod +w extractCd/casper/filesystem.manifest
chroot squashFs dpkg-query -W --showformat='${Package} ${Version}\n' > extractCd/casper/filesystem.manifest
cp extractCd/casper/filesystem.manifest extractCd/casper/filesystem.manifest-desktop

echo "--> Démontage rép dans squashFs"
./bindChroot.sh -u squashFs

echo "--> ménage dans squashFs"
rm -rf squashFs/tmp/* ~/.bash_history

echo "--> Supprime le fichier squashfs d'origine"
rm extractCd/casper/filesystem.squashfs

echo "--> Reconstruit le nouveau squashfs"
apt-get install squashfs-tools
mksquashfs ./squashFs ./extractCd/casper/filesystem.squashfs
#! /bin/bash
# script: uLive-buildIso.sh

echo -e "\n ==== Reconstruction image iso ====\n"
# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

# Génère une checksum md5
echo "--> checksum md5"
cd extractCd
bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"
cd ..

echo "--> génère iso"
#title=`cat extractCd/README.diskdefines | sed -e '/#define DISKNAME/!d' -e 's/#\w* \w* \(w*\) /\1/'`
isoName=`head -n 1 extractCd/isoFile.txt`

# Génère l'image iso dans le rép courant
mkisofs -r -V "$isoName" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o "Custom-$isoName.iso" extractCd
#! /bin/bash
# script: uLive-chroot.sh
# permet de passer en chroot dans le squashfs en assurant tous les montages de répertoires nécessaires

! ./bindChroot.sh squashFs squashSh  && exit 1;

export HOME=/root
export LC_ALL=C
chroot squashFs $*
#! /bin/bash
# script: bindChroot.sh
# Assure le montage et le démontage des répertoires et fichiers nécessaire à l'utilisation de certaines commandes dans le mode chroot

usage() {
	echo -e "\nutilisation : bindChroot [-u] | [-f] rootDir [hostSharedDir]"
	echo "lie les répertoires & fichiers systèmes dans un répertoire racine pour chroot"
	echo
	echo "   -u, --unbind     : démonte les répertoires liés"
	echo "   -f, --force-bind : force le démontage + remontage"
	echo "   rootDir          : répertoire racine"
	echo "   hostSharedDir    : Répertoire partagé à lier dans la racine (dans /hostSharedDir. monté en read only) "
	echo 
	echo "Les répertoire /dev, /proc, /sys & /dev/pts ainsi que les fichiers /etc/resolv.conf et /etc/host seront liés  (ou déliés) dans le répertoire racine indiqué"
	echo 
	echo "En présence du paramètre hostSharedDir, et si celui-ci est déjà monté, aucune action n'est effectuée. Dans ce cas on peut toutefois utiliser l'option --force-bind pour forcer le remontage"
	echo
}

if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	usage
	exit 0
fi

# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

unbind=false
hostSharedDir="*none"
hostSharedDirMounted=false
forceBind=false

argument () {
  opt="$1"
  shift

  if test $# -eq 0; then
      echo "$0: option requires an argument -- '$opt'" 1>&2
      exit 1
  fi
  echo "$1"
}

# Check the arguments.
while test $# -gt 0; do
	option=$1
	shift

	case "$option" in

		-u|--unbind) 
			unbind=true;; 

		-f|--force-bind)
			forceBind=true;;

		-*) 
			echo "option $option invalide"; usage; exit 1;;

		# toute autre valeurs est d'abord considérée comme "rootDir" 
		# puis "répertoire d'échange du système hote"
		*) 
			if [ -z $rootDir ]; then rootDir=$option; else hostSharedDir=$option; fi;;
	esac
done

# supp éventuel slash final du rép raçine
rootDir=$(echo "$rootDir" | sed -re 's/(.+)\/+$/\1/')

# contrôles
if [ -z $rootDir ]; then
	echo "Aucun répertoire racine indiqué pour chroot."
	usage
	exit 1
fi

if [ ! -d $rootDir ]; then
	echo "le répertoire racine $rootDir pour chroot n'existe pas."
	exit 1
fi

if [ ! $unbind ]; then
	if [ ! -d $rootDir/dev ]; then
		echo "Le répertoire système $rootDir/dev n'existe pas !"
		exit 1
	fi
fi

# test si rép partagé déjà monté
mount -l | grep -q "$hostSharedDir " && hostSharedDirMounted=true;

echo "unbind . . . : $unbind"
echo "rootDir  . . : $rootDir"
echo "hostSharedDir: $hostSharedDir, mouted=$hostSharedDirMounted"
echo "montage forcé: $forceBind"

# ===============================================================================================		
# === unbind ===
# ===============================================================================================		

if [ $unbind = true ] || [[ $forceBind = true  && $hostSharedDirMouted = true ]]; then

	echo -e "\n--> unbind $rootDir"

	# Démontage dans l'ordre inverse du montage : répertoire d'échange avec le system hote sert de témoin,
	# 		=> doit donc être démonté en 1er

 
	sedExpr="s,.* on +(\S*${rootDir}/\S+) .*,\1,"

	for mounted in $( mount -l | grep $rootDir/ | sed -re "${sedExpr}" | tac ); do 
		echo "unmount : ${mounted}"
		umount  -lf ${mounted}
	done

	# Vérification du démontage

	mounted=$(mount -l | grep "$rootDir/")
	if [ "$mounted" != "" ]; then
		echo -e "\ntous les répertoires n'ont pas été démontés :\n"
		echo "$mounted"

		echo -e "\nliste des processus utilisants $rootDir :\n"
		fuser $rootDir

		exit 3
	fi

	# suppression répertoire d'échange
	[ -d $rootDir/chrootHostSharedDir ]	&& rmdir "$rootDir"/chrootHostSharedDir;
fi 

# ===============================================================================================		
# === bind ===
# ===============================================================================================

if [ $unbind = false ];then

	# si le montage n'est pas forcé et que que le répertoire d'échange est déjà monté, sortir

	[ $forceBind = false ] && [ $hostSharedDirMounted = true ] && echo -e "\n--> $hostSharedDir déjà monté." && exit 0;


	echo -e "\n-> bind $rootDir comme racine de chroot, avec $hostSharedDir comme répertoire partagé"

	# fonction de montage 

	mountBind() {
		mount --bind $1 $2

		if [ $? != 0 ]; then
			echo "echec du montage de $1 on $2"
			exit 1
		fi 
	}

	# montages Repertoires Sytèmes

	mountBind /dev  "$rootDir"/dev
	mountBind /proc "$rootDir"/proc
	mountBind /sys  "$rootDir"/sys
	mountBind /dev/pts "$rootDir"/dev/pts

	# afin d'utiliser la connexion réseau du système hôte
	[ ! -f "$rootDir"/etc/resolv.conf ] && touch "$rootDir"/etc/resolv.conf
	mountBind /etc/resolv.conf "$rootDir"/etc/resolv.conf
	[ ! -f "$rootDir"/etc/hosts ] && touch "$rootDir"/etc/hosts
	mountBind /etc/hosts "$rootDir"/etc/hosts

	# montage répertoire d'échange du système hote, en lecture seul (Sert de flag également)

	if [ "$hostSharedDir" != "*none" ]; then
		mkdir "$rootDir"/chrootHostSharedDir
		mountBind "$hostSharedDir" "$rootDir"/chrootHostSharedDir
		mount -o remount,ro "$rootDir"/chrootHostSharedDir
	fi

	mount -l | grep "$rootDir"
fi

Les 2 script ci-dessous doivent être placés dans un sous répertoire ./squashSh (A ne pas confondre avec .squashFs !!) qui va être monté dans le ./squashFs/chrootHostSharedDir pour être accessibles en chroot

#! /bin/bash
# script: uLive-distUpgrade.sh

echo -e "\n ==== Mise à niveau distribution ====\n"
# == mise à niveau de la distribution ==

apt-get update && apt-get -y dist-upgrade
#!/bin/bash
# script: kernel-remove.sh

usage() {
	echo -e "\nUtilisation : kernel-remove [-s] | [-a] [N]"
	echo "supprime les packages d'une ou plusieurs versions de  kernel"
	echo
	echo "   -s, --select      : selection manuelle d'un kernel dans la liste"
	echo "   -a, --auto-remove : supression sans confirmation (Ignoré avec l'option -s)"
	echo "   N                 : nombre de versions de kernel à conserver (2 par défaut. Ignoré avec l'option -s) "
}

if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	usage
	exit 0
fi

# Vérif sudo

if [ ! $USER = "root" ]; then
    echo "cette commande doit être lancée avec SUDO"
    exit 1
fi

keepCount=2
select=false
autoRemove=""

# Check the arguments.

while test $# -gt 0;  do
	option=$1
	shift

	case "$option" in

		-s|--select) 
			select=true;; 

		-a|--auto-remove)
			autoRemove="-y";;

		-*) 
			echo "option $option invalide"; usage; exit 1;;

		# toute autre valeur est considérée comme le nombre de versions de kernel à conserver
		*) 
			keepCount=$option;;
	esac
done

# **** --select incompatible avec --auto-remove !
# **** --select incompatible avec un nombre de versions à conserver

# Suppression auto

echo "auto-remove = $autoRemove" 

# Extrait et affiche liste des versions de kernel installées, triée par n° de version

kernelList=$(dpkg-query -W --showformat='${Package} ${Status}\n' linux-image-*-generic* | sed -e '/ installed/!d' -re 's/linux-image-(.+)-generic\S* .*/\1/' | sort)

# kernelList=$(dpkg-query -W --showformat='${Package} ${Status}\n' linux-image-* | sed -re '/[0-9]+\.[0-9]+\.[0-9]+-[0-9]+\S*.* installed/!d' -e 's/linux-image-([0-9]+\.[0-9]+\.[0-9]+-[0-9]+).*/\1/' | sort)

kernelCount=0

echo -e "\nversions de kernel installées" 
	for kernel in $kernelList; do
	((kernelCount+=1))	
	echo -e "$kernelCount\t$kernel"
done

[[ $kernelCount<2 ]] && echo "Impossible de supprimer le seul kernel existant" && exit 0;

# Selection manuel d'une version 

if [ $select = true ]; then 
	autoRemove=""
   echo -e "Indiquez le n° correspondant à la version à supprimer.\nq pour quitter"
   read selectedKernelNumber
	[ $selectedKernelNumber = "q" ] && exit;
	[[ $selectedKernelNumber<1 || $selectedKernelNumber>$kernelCount ]] && echo "Choix invalide" && exit 1
   oldKernel=`echo "$kernelList" | head -n "$selectedKernelNumber" | tail -n 1 | sed -re 's/(.+)$/*\1*/'` 

# Selection automatique selon le nombre de version à conserver

else
    echo -e "\n$keepCount versions à conserver"
	[[ ${kernelCount} -le ${keepCount} ]] && echo "Aucune version de kernel à supprimer" && exit 0;

   # liste des versions de kernel à supprimer entre 2 '*' 
   oldKernel=`echo "$kernelList" | head -n "-$keepCount" | sed -re 's/(.+)$/linux-*\1*/'` 
fi

echo -e "\nVersions de kernel à supprimer:" $oldKernel

# S'il existe des packages d'anciens kernel, les désinstaller

if [ "$oldKernel" != "" ]; then
    echo
    apt-get -V $autoRemove remove $(echo $(dpkg-query -W --showformat='${Package} ${Status}\n' $oldKernel | sed -e '/ installed/!d' | cut -d' ' -f1))
else 
    echo -e "Aucune\n"
fi

Les 2 script ci-dessous sont utilisé à la demande en considérant que le rép squashFs contient une distrib à modifier

Remarque: la façon d'activer les dépot à été mise en échec avec une 12.10 francisé, car les dépot inactifs on été retiré du sources.list ou lieu d'être en commentaire !

#! /bin/bash
# script: uLive-install.sh
# ajoute et retire des packages

# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

! ./bindChroot.sh squashFs squashSh  && echo "Terminus" && exit 1;

chroot squashFs apt-get remove simplecommeubuntu

echo  "==> Instal packets supplémentaires"
# ddrescue + testdisk -> activer dépot universe + apt-get update

sed -i.bck -re 's,# (deb http://\S+ (\w|-)+ (universe|multiverse)),\1,' squashFs/etc/apt/sources.list

chroot squashFs apt-get update
# chroot squashFs apt-get install b43-fwcutter
# chroot squashFs apt-get install b43-fwcutter
chroot squashFs apt-get install squashfs-tools ddrescue testdisk ncurses-hexedit 

# remet la liste de dépots initiale
#rm  squashFs/etc/apt/sources.list
mv  squashFs/etc/apt/sources.list.bck squashFs/etc/apt/sources.list
chroot squashFs apt-get check # Refait les caches pour y retirer les paquets universe/multiverse
#! /bin/bash
# script: uLive-configure.sh
# assure certain setup en mode question réponse (intervention de l'utilisateur nécessaire)

# Vérif sudo

if [ ! $USER = "root" ]; then
	echo "cette commande doit être lancée avec SUDO"
	exit 1
fi

! ./bindChroot.sh squashFs squashSh  && echo "Terminus" && exit 1;

echo "choisir les configuration suivante  : - Generic 105-key (Intl) PC - France - France - Alternative - Pas de touche AltGr - Pas de touche « compose » - UTF-8 - # latin1 et latin5  : langues de l'Europe de l'ouest et turc - VGA - 16 - /dev/tty[1-6]"
echo "Entrée pour continuer"
read reply  
./uLive-chroot.sh dpkg-reconfigure console-setup

./uLive-chroot.sh dpkg-reconfigure tzdata

Voilà, j'espère que tu pourra en faire qq chose. Eventuellement, je peux repréciser certains points d'utilisation, si ce n'est pas clair...

Dernière modification par jamesbad000 (Le 04/03/2013, à 17:14)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#10 Le 04/03/2013, à 17:00

sylv_31

Re : Live USB, personnalisation

Super ! J'ai de la lecture !

Merci beaucoup ! smile:)

Hors ligne

#11 Le 07/03/2013, à 18:46

sylv_31

Re : Live USB, personnalisation

Ca y est, je m'en sors...

Merci beaucoup pour tes scripts, jamesbad000. Ils marchent très bien... J'arrive à faire mon ISO LiveUSB à la fin.

J'ai une question annexe : où se trouve dans le squashFs le/les programmes de lancement du user ubuntu dans sa session X. Je voudrais ne pas lancer le programme qui propose "Try Ubuntu" / "Install Ubuntu", mais un autre ?

Hors ligne

#12 Le 07/03/2013, à 22:18

jamesbad000

Re : Live USB, personnalisation

Ce que tu cites se sont les options du menu de boot iso. Elles ne sont pas dans le squashfs, mais dans le répertoire isolinux à la racine de l'iso. (isolinux est le pendant de grub pour le boot à partir de l'iso, il existe des sites spécialisés sur le sujet)

Si je regarde sur une 12.04 j'ai un fichier isolinux.cfg qui référence menu.cfg, qui référence txt.cfg.
Les options de menu en question sont dans ce dernier.
Après, il doit y avoir un lien avec les fichiers dans les différente langues, mais je n'ai jamais exploré cet aspect

Dernière modification par jamesbad000 (Le 07/03/2013, à 22:21)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#13 Le 09/03/2013, à 14:00

sylv_31

Re : Live USB, personnalisation

Merci, j'ai commencé à regarder les conf d'isolinux.

J'aurais besoin d'un éclaircissement : si dans mon sqhashFs, en étant chrooté, j'installe un logiciel supplémentaire, non pas à partir d'un package, mais d'un tar, install.sh, ... . Après reconstruction du squashFs et de l'ISO, je devrais m'attendre à retrouver le logiciel dans mon LiveUSB ?

Hors ligne

#14 Le 09/03/2013, à 14:26

jamesbad000

Re : Live USB, personnalisation

Absolument. Après avoir passé la commande chroot, le répertoire squashFs devient / (la racine) dans le terminal ou tu as passé cette commande (et uniquement dans CE terminal)

Du coup tous ce que tu fais dans ce terminal, y compris les commandes que tu introduis, prennent comme référence cette racine.

Donc quand tu exécutes un simple

cat /etc/apt/sources.list

c'est la commande cat du squashfs qui s'exécute et non celle du ubuntu sur lequel tu as booté.
et c'est le contenu de /etc/apt/sources.list du squashfs qui s'affiche !

Dernière modification par jamesbad000 (Le 09/03/2013, à 14:30)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#15 Le 09/03/2013, à 15:13

sylv_31

Re : Live USB, personnalisation

c'est ce que je pensais. Mais j'ai installé Sophos en /opt/ quand j'étais sous chroot squashFs, et dans mon LiveUSB, le /opt est vide...

Hors ligne

#16 Le 09/03/2013, à 15:36

jamesbad000

Re : Live USB, personnalisation

Est-ce que tu as déjà réussi cette installation dans des conditions "normal" ?

Autrement, si tu n'a pas dézingué le rep squashFs, rien ne t'interdit d'y retourner (avec uLive-chroot.sh) et de retenter la manip pour essayer de comprendre ce qui ne va pas.

Perso, je ne connais pas ce logiciel, et je ne pourrais pas t'aider sur son installation en particulier.
Mais éventuellement, tu me renvoi le contenu de ta console, si tu veux que je t'aide sur un problème de compréhension lié au chroot.

Dernière modification par jamesbad000 (Le 09/03/2013, à 18:18)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

En ligne

#17 Le 09/03/2013, à 18:06

sylv_31

Re : Live USB, personnalisation

Oui, j'ai déjà réussi en normal. Mais je pense que j'ai fait un "chroot squashFs" direct quand j'ai installé le logiciel, plutôt que uLive-chroot.sh. Donc, j'ai dû manqué de pas mal de bind... Je regénère le squashFs, on va bien voir...

Hors ligne

Haut de page ↑