View previous topic :: View next topic |
Author |
Message |
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Fri Dec 30, 2005 6:28 pm Post subject: [howto] création LiveCD |
|
|
Bonjour,
Suite à quelques demandes de howto pour la création d'un LiveCD.
j'ai décidé d'écrire ce mini Howto (qui pourra être plus détaillé si besoin) afin d'aider dans la création d'un LiveCD.
1. Prérequis
.Une gentoo de base celle que vous utilisez au quotidien.
.Une gentoo qui représente la gentoo que fera office de LiveCD. Attention cette Gentoo doit être installée sur une et une seule partition !
J'appelerais GENTOO1 la gentoo que vous utilisez normalement et GENTOOLIVE la gentoo qui fera office de LiveCD
.Grub emergé GENTOO1. Vous pouvez configurer GRUB pour booter sur GENTOOLIVE. C'est plus simple que de modifier GENTOOLIVE par un chroot.
.Les outils squashfs installés sur la GENTOO1.
.Genkernel sur la GENTOOLIVE
2. Préparation de GENTOOLIVE
.Compiler le noyau avec Genkernel. Le linuxrc intégré dans l'initrd permet de gérer un livecd avec squashfs.
# genkernel --menuconfig --install all
(Ne pas oublier d'intégrer squahfs dans le noyau)
.Configurer votre GentooLive comme vous le souhaiter installer les logiciels, les fonds d'écran etc...
.Dans /boot/grub/ supprimer grub.conf et menu.lst. Les liens symboliques ne fonctionne pas avec grub en mode LiveCD.
.Créer dans /boot/grub un fichier menu.lst afin qu'il ressemble à cela :
versionNoyau représente le noyau créé avec genkernel.
Code: |
default 0
timeout 10
splashimage=(cd)/boot/grub/splash.xpm.gz
title=Gentoo Linux Live
root (cd)
kernel (cd)/boot/kernel-genkernel-x86-versionNoyau root=/dev/ram0 rw init=/linuxrc cdroot looptype=squashfs loop=/livecd.squashfs splash=verbose,fadein,theme:Metal-Tosh quiet CONSOLE=/dev/tty1
initrd (cd)/boot/initramfs-genkernel-x86-versionNoyau
|
.Créer un fichier /etc/fstablive avec ceci :
Code: |
# /etc/fstab: static file system information.
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/fstab,v 1.14 2003/10/13 20:03:38 azarah Exp $
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency). It's safe to drop the noatime options if you want and to
# switch between notail and tail freely.
# <fs> <mountpoint> <type> <opts> <dump/pass>
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#/dev/BOOT /boot ext2 noauto,noatime 1 1
#/dev/ROOT / xfs noatime 0 0
#/dev/SWAP none swap sw 0 0
#/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
# NOTE: The next line is critical for boot!
none /proc proc defaults 0 0
## glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
# use almost no memory if not populated with files)
# Adding the following line to /etc/fstab should take care of this:
#none /dev/shm tmpfs defaults 0 0
/dev/loop0 / squashfs ro,defaults 0 0
tmpfs /var/lib/init.d tmpfs defaults 0 0
|
C'est ce fichier qui sera utilisé comme fstab dans le mode LIVECD.
Si vous voulez ajouter la gestion de de détection de matérielle, installer les paquets kudzu-knoppix et autres utilitaires. Une petite recherche dans portage et sur le wiki vous permettra de trouver les logiciels disponibles.
Attention tous ce qui se trouce dans /etc /root /tmp /mnt est chargé en mémoire quand on boot sur le LiveCD. Donc il ne faut pas trop surcharger ces répertoires
3. Création du LiveCD :
.Booter sur la GENTOO1 et lancer ce script :
Code: |
#GNU General Public License Version
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#version 2 as published by the Free Software Foundation.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#!/bin/sh
#fichiers temporaires
livecd_target="/root/target"
#point de montage de votre gentoo LiveCD
livecd_source="/mnt/gentooLive"
#ou creer le .iso
livecd_output="/root/live/livecd.iso"
mkdir /root/target
mkdir /root/live
#deplacement de portage pour installer grub sans internet avec le script d'installation
rm -rf "$livecd_source"/usr/portage/distfiles
mirrorselect -s3 -b10 -o | grep 'GENTOO_MIRRORS=' >> "$livecd_source"/etc/make.conf
#chroot "$livecd_source" ebuild /usr/local/portage/sys-boot/grub/grub-0.96-r100.ebuild digest
mv "$livecd_source"/usr/portage "$livecd_source"/usr/portage2
mkdir "$livecd_source"/usr/portage
mkdir "$livecd_source"/usr/portage/sys-boot
mkdir "$livecd_source"/usr/portage/distfiles
cp -aRv "$livecd_source"/usr/portage2/eclass "$livecd_source"/usr/portage/eclass
cp -aRv "$livecd_source"/usr/portage2/profiles "$livecd_source"/usr/portage/profiles
cp -aRv "$livecd_source"/usr/portage2/header.txt "$livecd_source"/usr/portage/header.txt
cp -aRv "$livecd_source"/usr/portage2/skel.ChangeLog "$livecd_source"/usr/portage/skel.ChangeLog
cp -aRv "$livecd_source"/usr/portage2/skel.ebuild "$livecd_source"/usr/portage/skel.ebuild
cp -aRv "$livecd_source"/usr/portage2/skel.metadata.xml "$livecd_source"/usr/portage/skel.metadata.xml
cp -aRv "$livecd_source"/usr/portage2/sys-boot/grub "$livecd_source"/usr/portage/sys-boot
chroot "$livecd_source" emerge grub #va telecharger les fichiers necessaires
# Liste des dossiers à exlcure:
exclude_dir="/usr/portage2 /usr/src /proc /dev /usr/share/doc /usr/doc/usr/share/man /usr/man /tmp /var/tmp /var/log /var/cache /var/db "
#Vous pouvez en ajouter
# efface ancien iso
rm -f "$livecd_output"
# efface ancien fichiers temporaires
rm -rf "$livecd_target"
mkdir "$livecd_target"
#mise en place du fstabLive
mv "$livecd_source"/etc/fstab "$livecd_source"/etc/fstabdd
mv "$livecd_source"/etc/fstablive "$livecd_source"/etc/fstab
cp -a "$livecd_source"/boot "$livecd_target"
rm -f "$livecd_source"/etc/mtab
touch "$livecd_source"/etc/mtab
echo -e "\nCreation squashfs...\n"
for i in $exclude_dir; do
exclude_sqfs="$exclude_sqfs $livecd_source$i"
done
#création du fichier squashfs
mksquashfs "$livecd_source" "$livecd_target"/livecd.squashfs -e $exclude_sqfs
echo -e "\nCreation image ISO dans /root/live ...\n"
cd /
mkisofs -J -R -l -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4-boot-info-table -z -iso-level 4 -c livecd -o $livecd_output $livecd_target/ > /dev/null 2>&1
#remet le bon fstab
mv "$livecd_source"/etc/fstab "$livecd_source"/etc/fstablive
mv "$livecd_source"/etc/fstabdd "$livecd_source"/etc/fstab
#remet portage en place
rm -rf "$livecd_source"/usr/portage
mv "$livecd_source"/usr/portage2 "$livecd_source"/usr/portage
#Suppression fichiers temporaires
rm -Rf /root/target
echo "Image iso créée dans /root/live"
|
4. Script d'installation :
.Vous pouvez créer un installeur pour ce LiveCD, il suffit d'intégrer ce script dans GENTOOLIVE :
Code: |
#GNU General Public License Version
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#version 2 as published by the Free Software Foundation.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#!/bin/sh
#Les variables
BACK_TITLE="OS Installeur"
TEMP_FILE=/var/log/temp
LOG_FILE=/var/log/log.txt
CDROM_MOUNT_POINT=/mnt/cdrom
RepInstall=/mnt/gentoo
FileSquash=/mnt/cdrom/livecd.squashfs
FileTar=/mnt/cdrom/files
sourceSquash=/mnt/squash
SysFichier="ext3"
userInput=""
PartDDChoix=""
LiveCD=0
#Les fonctions
##############################################################################
#L'installation
##############################################################################
function installOS()
{
let boxHeight=7
if [ $LiveCD == 1 ]; then
echo "Installation de Gentoo" > $LOG_FILE
RepInstall="/mnt/gentoo"
dialog --backtitle "$BACK_TITLE" \
--title "Installation" \
--yesno "Cela va installer Gentoo sur votre ordinateur.\
Désirez-vous continuer ? \n \
Pensez à créer les partitions si besoin dans le menu configuration."\
16 70
if [ $? -eq 1 ]; then
#On quitte
exitInstaller
fi
# choix de la la partition
PartDD=""
umount $RepInstall
title="Choix de la partition Root"
message="Sélectionner la partition Root."
SelChoixPartition
PartDD=$PartDDChoix
if [ $PartDD =="" ]; then
#On retourne au debut!
title="Erreur"
message="Il faut une partition."
echo "Aucune partition choisie" >> $LOG_FILE
showMessageBox
installOS
fi
showSysFile
TypePartition=$SysFichier
echo "Systeme de fichier : $TypePartition " >> $LOG_FILE
title="Choix de la partition Swap"
message="Sélectionner la partition Swap."
SelChoixPartition
SwapMont=$PartDDChoix
echo "Partion swap : $SwapMont " >> $LOG_FILE
# Formater la partition oui/non
dialog --backtitle "$BACK_TITLE" \
--title "Installation LiveCd" \
--yesno "\n Désirez-vous formater $PartDD ?" \
16 70
if [ $? -eq 1 ]; then
echo "Pas de formatage "
else
mkfs.$TypePartition $PartDD
echo "Formatage de $PartDD " >> $LOG_FILE
fi
mount -t $TypePartition $PartDD $RepInstall
LigneMtab=""
#traitement de LigneMtab
LigneMtab=$(grep $RepInstall /etc/mtab)
if [$LigneMtab == ""]; then
#il y a probleme
title="Erreur"
message="Aucune partition root trouvée pour $PartDD ."
echo "Pas de partition Root " >> $LOG_FILE
showMessageBox
installOS
fi
executeOK="f"
if [ $SwapMont != '' ] ; then
# Formater la partition swap oui/non
dialog --backtitle "$BACK_TITLE" \
--title "Installation LiveCd" \
--yesno "\n Désirez-vous formater et activer votre partition swap ?" \
16 70
if [ $? -eq 1 ]; then
echo "Pas de formatage "
else
mkswap $SwapMont
swapon $SwapMont
echo "Activation et formatage de la partition swap " >> $LOG_FILE
sleep 2
fi
fi
if [ -d $RepInstall ]; then
#creation du point de montage pour le fichier squash
mkdir $sourceSquash >> $LOG_FILE
mount $FileSquash $sourceSquash -t squashfs -o loop 2>> $LOG_FILE
dialog --backtitle "$BACK_TITLE" \
--title "Installation LiveCd" \
--yesno "\n Gentoo va être installé sur $RepInstall " \
16 70
if [ $? -eq 1 ]; then
exit 2>> $LOG_FILE #/dev/null
fi
title="Installation"
message="Copie des fichiers en cours..."
showInfoBox
echo "Début de la copie des fichiers " >> $LOG_FILE
cp -Rva $sourceSquash/* $RepInstall && executeOK="t"
cp -vp /etc/resolv.conf $RepInstall/etc/resolv.conf
cp -Ra /dev $RepInstall
echo "Copie des fichiers terminées " >> $LOG_FILE
fi
if [ $executeOK = "t" ]; then
cd $RepInstall
#chroot environnement
mkdir $RepInstall/proc
#mkdir $RepInstall/usr/local/portage
mount -t proc none $RepInstall/proc
disk=${LigneMtab:0:9}
#Installation de grub oui/non
rm -R $RepInstall/boot/grub
dialog --backtitle "$BACK_TITLE" \
--title "GRUB" \
--yesno "\n Désirez vous installer grub ? " \
16 70
if [ $? -eq 1 ]; then
#Mise a jour du menu.lst si grub
#demander ou se trouve menu.lst afin de le mettre à jour
echo "Pas encore implémenté"
else
echo "Installation de grub " >> $LOG_FILE
chroot $RepInstall emerge grub
cp -vpf /boot/grub/menu.lst $RepInstall/boot/grub/grub.conf
chroot $RepInstall ln -s /boot/grub/grub.conf /boot/grub/menu.lst
diskGrub=""
OptionGrub=""
case $disk in
"/dev/hda1" ) diskGrub='(hd0,0)'
;;
"/dev/hda2" ) diskGrub='(hd0,1)'
;;
"/dev/hda3" ) diskGrub='(hd0,2)'
;;
"/dev/hda4" ) diskGrub='(hd0,3)'
;;
"/dev/hda5" ) diskGrub='(hd0,4)'
;;
"/dev/hda6" ) diskGrub='(hd0,5)'
;;
"/dev/hda7" ) diskGrub='(hd0,6)'
;;
"/dev/hda8" ) diskGrub='(hd0,7)'
;;
"/dev/hdb1" ) diskGrub='(hd1,0)'
;;
"/dev/hdb2" ) diskGrub='(hd1,1)'
;;
"/dev/hdb3" ) diskGrub='(hd1,2)'
;;
"/dev/hdb4" ) diskGrub='(hd1,3)'
;;
"/dev/hdb5" ) diskGrub='(hd1,4)'
;;
"/dev/hdb6" ) diskGrub='(hd1,5)'
;;
"/dev/hdb7" ) diskGrub='(hd1,6)'
;;
"/dev/hdb8" ) diskGrub='(hd1,7)'
;;
"/dev/hdc1" ) diskGrub='(hd2,0)'
;;
"/dev/hdc2" ) diskGrub='(hd2,1)'
;;
"/dev/hdc3" ) diskGrub='(hd2,2)'
;;
"/dev/hdc4" ) diskGrub='(hd2,3)'
;;
"/dev/hdc5" ) diskGrub='(hd2,4)'
;;
"/dev/hdc6" ) diskGrub='(hd2,5)'
;;
"/dev/hdc7" ) diskGrub='(hd2,6)'
;;
"/dev/hdc8" ) diskGrub='(hd2,7)'
;;
"/dev/hdd1" ) diskGrub='(hd3,0)'
;;
"/dev/hdd2" ) diskGrub='(hd3,1)'
;;
"/dev/hdd3" ) diskGrub='(hd3,2)'
;;
"/dev/hdd4" ) diskGrub='(hd3,3)'
;;
"/dev/hdd5" ) diskGrub='(hd3,4)'
;;
"/dev/hdd6" ) diskGrub='(hd3,5)'
;;
"/dev/hdd7" ) diskGrub='(hd3,6)'
;;
"/dev/hdd8" ) diskGrub='(hd3,7)'
;;
"/dev/sda1" ) diskGrub='(hd0,0)'
OptionGrub="doscsi"
;;
* )
title="Erreur"
message="La partition racine n'a pas étée trouvée\n\n\
Vous devez éditer menu.lst manuellement"
let boxHeight=7
showMessageBox
diskGrub="erreur"
esac
if [ $diskGrub == "erreur" ]; then
nano $RepInstall/boot/grub/grub.conf
echo "Pas trouvé de partition racine pour Grub " >> $LOG_FILE
else
#modification menu.lst
sed -i 's:(cd):'$diskGrub':' $RepInstall/boot/grub/grub.conf
sed -i 's:cdroot:'real_root=$disk':' $RepInstall/boot/grub/grub.conf
sed -i 's:looptype=squashfs:'':' $RepInstall/boot/grub/grub.conf
sed -i "s:loop=/livecd.squashfs:resume2=$SwapMont $OptionGrub:" $RepInstall/boot/grub/grub.conf
#resume2=$SwapMont dans le cas ou le noyau prendrait en charge suspend2
echo "menu.lst mis a jour " >> $LOG_FILE
#fin modification menu.lst
fi
#MAj de /etc/mtab sinon l'installation de grub ne fonctionne pas
mbrDD=${LigneMtab:0:9}
echo "$mbrDD / $TypePartition rw,noatime 0 0" > $RepInstall/etc/mtab
#Suppression du fichier contenant les derniers devices de grub
rm $RepInstall/boot/grub/device.map
chroot $RepInstall grub-install --no-floppy ${LigneMtab:0:8}
echo "Installation de Grub sur le mbr " >> $LOG_FILE
fi
#Mettre a jour fstab
echo "Mise à jour de /etc/fstab " >> $LOG_FILE
mv $RepInstall/etc/fstab $RepInstall/etc/fstablive
#ce fichier pourra servir pour recréer un livecd
echo "# This file is edited by fstab-sync - see 'man fstab-sync' for details "> $RepInstall/fstab
echo "# /etc/fstab: static file system information. " >> $RepInstall/etc/fstab
echo "# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/fstab,v 1.14 2003/10/1320 :03:38 azarah Exp $ ">> $RepInstall/etc/fstab
echo "# " >> $RepInstall/etc/fstab
echo "# noatime turns off atimes for increased performance (atimes normally aren't " >> $RepInstall/etc/fstab
echo "# needed; notail increases performance of ReiserFS (at the expense ofs torage " >> $RepInstall/etc/fstab
echo "# efficiency). It's safe to drop the noatime options if you want and to " >> $RepInstall/etc/fstab
echo "# switch between notail and tail freely. " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "# <fs> <mountpoint> <type> <opts> <dump/pass> " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. " >> $RepInstall/etc/fstab
echo "#/dev/BOOT /boot ext2 noauto,noatime 1 1 " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "#/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0 " >> $RepInstall/etc/fstab
echo "/dev/fd0 /mnt/floppy auto noauto 0 0 " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "# NOTE: The next line is critical for boot! " >> $RepInstall/etc/fstab
echo "none /proc proc defaults 0 0 " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for " >> $RepInstall/etc/fstab
echo "# POSIX shared memory (shm_open, shm_unlink). " >> $RepInstall/etc/fstab
echo "# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will " >> $RepInstall/etc/fstab
echo "# use almost no memory if not populated with files) " >> $RepInstall/etc/fstab
echo "# Adding the following line to /etc/fstab should take care of this: " >> $RepInstall/etc/fstab
echo " " >> $RepInstall/etc/fstab
echo "none /dev/shm tmpfs defaults 0 0 " >> $RepInstall/etc/fstab
#Mise a jour partition Root
echo "$disk / $TypePartition defaults 1 1 " >> $RepInstall/etc/fstab
if [ $SwapMont != '' ] ; then
echo "$SwapMont none swap sw 0 0 ">> $RepInstall/etc/fstab
fi
#Quitter l'installeur
message="Gentoo a été copié sur votre Disque dur \n\n\
L'historique de l'installation est disponible dans $LOG_FILE\n\n\
N'oubliez pas de synchroniser votre arbre de portage : \n\n\
# emerge sync"
echo "Installation terminee " >> $LOG_FILE
showMessageBox
exitInstaller
else
message="Un problème est survenu durant la copie des fichiers,consulter $LOG_FILE "
echo "Problème de copie :-(" >> $LOG_FILE
showMessageBox
fi
else
title="Warning"
let boxHeight=7
message="Le LiveCd n'a pas été trouvé"
showMessageBox
fi
return
}
##############################################################################
# Information
##############################################################################
function showMessageBox()
{
getBoxWidth
dialog --backtitle "$BACK_TITLE" \
--title "$title" \
--msgbox "\n$message" \
$boxHeight $boxWidth
return
}
##############################################################################
# Apparition d'une boite d'information
##############################################################################
function showInfoBox ()
{
getBoxWidth
dialog --backtitle "$BACK_TITLE" \
--sleep 3 \
--title "$title" \
--infobox "\n$message" \
5 $boxWidth
return
}
##############################################################################
#Choix systeme de fichier
##############################################################################
function showSysFile()
{
dialog --backtitle "$BACK_TITLE" \
--title "Systeme de fichier disponible" \
--menu "Selection :" \
18 60 6 \
"reiserfs" "Reiser fs" \
"ext3" "ext3" \
"ext2" "ext2" \
"xfs" "xfs" \
"jfs" "jfs" 2> $TEMP_FILE
if [ $? -eq 0 ]; then
installMethod=$(cat $TEMP_FILE)
rm -f $TEMP_FILE
SysFichier=$installMethod
elif [ $? -eq 1 ]; then
SysFichier="ext3"
#Il faut un systeme de fichiers. Par défaut ext3
fi
}
##############################################################################
#Recherche des partitions connues
##############################################################################
function SelChoixPartition()
{
rm -f $TEMP_FILE
find /dev/hd?? >> $TEMP_FILE
find /dev/sd?? >> $TEMP_FILE
rm $TEMP_FILE.2nd 2> /dev/null
echo "Debut analyse partition"
tmp=""
cat $TEMP_FILE |
while read line
do
tmp=$(grep ${line:5:9} /proc/partitions)
if [ ${tmp:1:1} !="" ] ; then
#Trouver dans /proc/partitions
grep ${line:5:9} /proc/partitions |awk '{print "/dev/"$4 " /dev/"$4":Taille:" int($3/1000000)"GB \n"}' >> $TEMP_FILE.2nd
fi
done
#toutes les partitions possible
local radioList=$(cat $TEMP_FILE.2nd)
rm $TEMP_FILE.2nd
let boxHeight=12
dialog --backtitle "$BACK_TITLE" \
--title "$title" \
--menu "$message" \
18 60 6 \
$radioList 2> $TEMP_FILE
if [ $? -eq 0 ]; then
userInput=$(cat $TEMP_FILE)
rm -f $TEMP_FILE
fi
PartDDChoix=$userInput
return
}
##############################################################################
# Apparition d'une boite d'information
##############################################################################
function showInfoBox ()
{
getBoxWidth
dialog --backtitle "$BACK_TITLE" \
--sleep 3 \
--title "$title" \
--infobox "\n$message" \
5 $boxWidth
return
}
##############################################################################
# quitter installeur
##############################################################################
function exitInstaller()
{
title="Quitter"
message="A bientôt"
let boxHeight=7
showMessageBox
exit 0
}
#Lancement du script :
if [ -s $FileSquash ]; then
echo "LiveCD detecte"
LiveCD=1
installos
else
echo "LiveCD non trouvé"
exitInstaller
fi
|
Astuces : La gentoo1 peux trés bien être une autre distribtution comme ubuntu. Il faut juste que cette distribution intégre les outils squashfs et grub.
Pour alléger votre LiveCD ajouter à USE -debug => diminue la taille des éxecutables, -man -exemple -exemples -doc => pour ne pas installer les fichiers d'aides.
Le script de création pourrait servir à d'autre distribution, il faut juste intégrer le fichier linuxrc dans l'initrd et que le noyau supporte squashfs.
Pour le moment je n'ai pas le temps de détailler plus donc si vous rencontrez un problème, postez un message _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772 Location: Wellington, Aotearoa
|
Posted: Fri Dec 30, 2005 10:47 pm Post subject: |
|
|
Ha merci pour le howto !!
J'ai pas encore pris le temps de tout lire, mais j'avais envie de me faire mon livecd perso depuis qq temps. |
|
Back to top |
|
|
Antares Apprentice
Joined: 04 Apr 2005 Posts: 184 Location: France
|
Posted: Tue Jan 03, 2006 12:06 am Post subject: |
|
|
Merci pour le partage de tes scripts, cela va m'etre tres utile !! |
|
Back to top |
|
|
SoukoussMan n00b
Joined: 15 Aug 2006 Posts: 32 Location: Montrouge (92)
|
Posted: Fri Oct 27, 2006 6:28 am Post subject: |
|
|
Génial..Je vais essayer des que possible..
Quelqu'un a déjà tester a partir de cette explication et de ces scripts ? _________________ -----
Gentoo 4 Ever
----- |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Tue Nov 07, 2006 1:22 pm Post subject: |
|
|
bonjour,
Oui moi pour mes livecd. Par contre maintenant, j'utilise syslinux au lieu de grub pour le gestionnaire de boot. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
ganymede n00b
Joined: 06 Nov 2006 Posts: 21
|
Posted: Thu Nov 23, 2006 2:24 pm Post subject: |
|
|
Salut bouleetbill, et merci pour ton howto.
J'aurais deux questions avant de m'y mettre :
- Sur syslinux : quels avantages y a-t-il à l'utiliser et est-ce que cela change beaucoup la façon de procéder ?
- La doc. gentoo mentionne un autre outil qui peut (entre autres) générer des live-cd : catalyst. Est-ce que tu l'as essayé, et si oui, qu'en penses-tu ?
|
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Thu Nov 23, 2006 8:44 pm Post subject: |
|
|
Salut,
Pour syslinux cela change pas grand chose. Par contre, je n'utilise pas la version de portage mais une version ubuntu afin de mettre un splash. C'était pour régler un problème de boot sur une machine. Je n'ai pas essayé avec les dernières versions de grub. Donc, il est même possible que le problème soit réglé maintenant.
J'ai essayé catalyst j'ai jamais réussi à aller jusqu'au bout. De plus, je trouve qu'au niveau personnalisation c'est assez limité. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
coachllb n00b
Joined: 19 Aug 2006 Posts: 66
|
Posted: Wed Dec 13, 2006 9:16 pm Post subject: |
|
|
suite à un message posté dans le forum, on m'a renvoyé verrs ce tuto qui est clair et simple.
j'ai donc crée une gentoo dans une partition montée dans /mnt/gentoo. C'est ma gentoolive. J'ai testé un boot dessus, elle fonctionne.
j'ai ensuite exécuté le script en modifiant /mnt/gentoolive par /mnt/gentoo
le script se termine en me disant que l'iso est créee. Or je n'ai aucun fichier iso dans /root/live.
cependant il y a eu une erreur lors de l'émerge de grub. Mais le script a continué donc je devrais avoir un iso.
Je vais essayer de trouver l'erreur pour grub
vvoici l'erreur :
Code: |
touch: setting times of `/var/tmp/portage/grub-0.97-r2/.unpacked': Function not implemented
!!! ERROR: sys-boot/grub-0.97-r2 failed.
Call stack:
ebuild.sh, line 1539: Called dyn_unpack
ebuild.sh, line 712: Called die
!!! IO Failure -- Failed 'touch .unpacked' in /var/tmp/portage/grub-0.97-r2
!!! If you need support, post the topmost build error, and the call stack if relevant.
|
|
|
Back to top |
|
|
guitoo Tux's lil' helper
Joined: 04 Jun 2004 Posts: 136
|
Posted: Thu Dec 14, 2006 6:59 am Post subject: |
|
|
Tiens ça me donne une idée de cadeau pour noel. Je vais faire ma tournée de livecd/clé usb
Si on veut intégrer les drivers nvidia et ati, comment on peut faire pour détecter la carte graphique et générer un Xorg.conf pour la carte?
Comment on peut faire pour monter automatiquement une clé usb sur /home/<user>? Avec un reconnaissance de la clé et une lecture du login et mot de passe sur la clé. |
|
Back to top |
|
|
coachllb n00b
Joined: 19 Aug 2006 Posts: 66
|
Posted: Thu Dec 14, 2006 8:42 am Post subject: |
|
|
je n'ai plus l'erreur pour grub c'est corrigé.
par contre lors de l"éxécution du script j'obtiens :
Code: | Cannot stat exclude dir/file /mnt/gentoo/usr/doc/usr/share/man, ignoring: No such file or directory
Cannot stat exclude dir/file /mnt/gentoo/usr/man, ignoring: No such file or directory
Creating little endian 3.0 filesystem on /root/target/livecd.squashfs, block size 65536.
Error in reading file, skipping...: Input/output error
Error in reading file, skipping...: Input/output error
Error in reading file, skipping...: Input/output error
......
Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments
Filesystem size 412685.61 Kbytes (403.01 Mbytes)
38.36% of uncompressed filesystem size (1075704.40 Kbytes)
Inode table size 572681 bytes (559.26 Kbytes)
29.09% of uncompressed inode table size (1968703 bytes)
Directory table size 536921 bytes (524.34 Kbytes)
46.50% of uncompressed directory table size (1154641 bytes)
Number of duplicate files found 3360
Number of inodes 59651
Number of files 50084
Number of fragments 4595
Number of symbolic links 5059
Number of device nodes 3
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 4505
Number of uids 3
root (0)
ldap (439)
portage (250)
Number of gids 11
lp (7)
ldap (439)
mail (12)
tty (5)
man (15)
nogroup (65533)
utmp (406)
root (0)
portage (250)
uucp (14)
lpadmin (106)
Creation image ISO dans /root/live ...
Image iso créée dans /root/live
|
Mais je n'ai toujours pas d'image dans le répertoire live. |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Thu Dec 14, 2006 8:54 pm Post subject: |
|
|
@coachllb
Pour les erreurs :
Code: |
Cannot stat exclude
|
Celle la c'est pas grave le répertoire n'existe pas.
Par contre celle-ci :
Code: | Error in reading file, skipping...: Input/output error | me semble plus grave
Pour commencer tu peux changer cette ligne :
Code: |
mkisofs -J -R -l -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4-boot-info-table -z -iso-level 4 -c livecd -o $livecd_output $livecd_target/ > /dev/null 2>&1
|
par
Code: |
mkisofs -J -R -l -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4-boot-info-table -z -iso-level 4 -c livecd -o $livecd_output $livecd_target/
|
Comme cela si une erreur est détectée elle sera visible
Puis ajouter ces deux lignes afin de vérifier les répertoires :
Code: |
echo "Source : $livecd_target/ "
echo "ISO : $livecd_output "
|
Question bête /mnt/gentoo est monté ?
@guitoo
Quote: | Si on veut intégrer les drivers nvidia et ati, comment on peut faire pour détecter la carte graphique et générer un Xorg.conf pour la carte? |
avec le paquet x11-misc/mkxf86config
Quote: | Comment on peut faire pour monter automatiquement une clé usb sur /home/<user>? Avec un reconnaissance de la clé et une lecture du login et mot de passe sur la clé. |
Je comprend pas l'histoire du mot de passe sinon pour monter la clé sur un répertoire. une regle udev devrait fonctionner : http://www.minet.net/spip/spip.php?article147 _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
dmganges n00b
Joined: 06 Jun 2007 Posts: 34 Location: Ganges(34)
|
Posted: Wed Jun 06, 2007 8:28 pm Post subject: |
|
|
Bonjour,
Je connais très peu Linux, mais j'ai administré Unix pendant une dizaine d'années.
A la retraite, je redécouvre un environnement que j'ai beaucoup apprécié...
Je suis revenu à Linux par la clé USB Mandriva, et de fil en aiguille je suis remonté à Gentoo par le LiveCD SystemRescueCD que j'ai légèrement modifié.
Autant dire que je mesure l'énorme travail que vous avez réalisé.
Je n'ai pas encore exploité les scripts que vous avez déposé ici, ni parcouru la totalité de votre site ! ...
mais je ne manquerai pas de le faire car je suis très intéressé par le format LiveCD.
2 mots : BRAVO et MERCI
@+ |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
|
Back to top |
|
|
doulinux n00b
Joined: 27 Sep 2008 Posts: 55 Location: 34190
|
Posted: Tue Oct 21, 2008 12:09 pm Post subject: |
|
|
Bjr booleetbil,
çà y est, j'ai fait mes toutes premières armes en gentoo, autant dire que je ne suis pas encore au point...
Comme coachllb, je n'ai pas d'image iso.
J'ai supprimé > /dev/null 2>&1
Il semble qu'il y a un pb de taille :
NB: arrêt à 93%
Creation squashfs...
Cannot stat exclude dir/file /home1/root/proc2/gentoolive/usr/doc/usr/share/man, ignoring: No such file or directory
Cannot stat exclude dir/file /home1/root/proc2/gentoolive/usr/man, ignoring: No such file or directory
Parallel mksquashfs: Using 2 processors
Creating little endian 3.1 filesystem on /home1/root/proc2/target/livecd.squashfs, block size 131072.
[======================================================== ] 58548/62508 93%
Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 555362.13 Kbytes (542.35 Mbytes)
48.32% of uncompressed filesystem size (1149238.15 Kbytes)
Inode table size 603757 bytes (589.61 Kbytes)
29.99% of uncompressed inode table size (2013175 bytes)
Directory table size 590922 bytes (577.07 Kbytes)
47.35% of uncompressed directory table size (1247937 bytes)
Number of duplicate files found 4347
Number of inodes 61521
Number of files 53067
Number of fragments 3256
Number of symbolic links 3960
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 4494
Number of uids 3
root (0)
portage (250)
haldaemon (102)
Number of gids 11
lp (7)
mail (12)
man (15)
locate (245)
tty (5)
nogroup (65533)
utmp (406)
portage (250)
uucp (14)
lpadmin (106)
ssmtp (408)
Creation image ISO dans /home1/root/proc2/target
genisoimage: Boot image load size invalid.
Image iso créée dans /home1/root/proc2/livecd.iso
/home1/root/proc2
# ll target
total 372568
drwxr-xr-x 3 root root 4096 Oct 21 13:25 .
drwx------ 7 root root 4096 Oct 21 13:25 ..
drwxr-xr-x 3 root root 4096 Oct 19 17:38 boot
-rwx------ 1 root root 381116433 Oct 21 13:27 livecd.squashfs
/home1/root/proc2
# df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb6 10325748 6101448 3699780 63% /home1
/home1/root/proc2
# e2fsck -c /dev/sdb3
e2fsck 1.40.9 (27-Apr-2008)
Checking for bad blocks (read-only test): done
/dev/sdb3: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb3: 274534/1311552 files (2.4% non-contiguous), 735672/2622611 blocks
3,6 Go libres pour 381 Mo, çà devrait passer... Non ?
Ou bien la limite est ailleurs ?
Ma gentooLive est une gentoo de nOOb : kernel-genkernel-x86-2.6.25-gentoo-r8, xorg, ati-drivers, kde-base, firefox + qq petits outils de vieux vim, slocate...
Quand vous aurez le temps, si vous avez une idée, je suis preneur.
MERCI !
PS: Je suis en fait dmganges, j'ai abandonné cet identifiant qui correspondait aussi à une @Mail saturée de spams |
|
Back to top |
|
|
doulinux n00b
Joined: 27 Sep 2008 Posts: 55 Location: 34190
|
Posted: Wed Oct 22, 2008 6:00 am Post subject: |
|
|
Bjr,
Il y a une petite coquille au niveau du mkisofs, il manque un espace entre '4' et '-boot-info-table'
Il faut lire :
mkisofs -J -R -l -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c livecd -o $livecd_output $livecd_target/
D'où le Quote: | genisoimage: Boot image load size invalid. |
Donc le .iso est généré.
J'ai emergé grub dans gentoolive et mis en commentaire :
Quote: | #chroot "$livecd_source" emerge grub #va telecharger les fichiers necessaires
|
Non seulement gain de temps, mais l'emerge recréait le lien grub.conf et menu.lst --> blocage au boot sur prompt GRUB>
Donc boot correct, copie un peu longue dans tmpfs, mais OK !!!
Bien sûr je ne peux pas démarrer startx, création de fichiers temporaires impossible sur le CD, quel âne je fais !
Je vais intégrer unionfs dans gentoolive ou faire un fs en mémoire...
Ben, MERCI booleetbil, ce tuto est SUPER
Sauf que c'est pas juste, moi qui croyais avoir trouvé un job pour mes soirées d'hivers... c'est largement compromis !
Bon j'ai quand même encore de quoi gratter pour ""tout"" comprendre |
|
Back to top |
|
|
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
|
Back to top |
|
|
tux_i n00b
Joined: 11 Jul 2010 Posts: 23
|
Posted: Thu Feb 24, 2011 3:13 pm Post subject: |
|
|
bonjour,
Est-ce que cette méthode fonctionne toujours ?
il y a une étape que je ne comprend pas
j'ai actuellement ma distrib gentoo sur mon disque dur. Pour la passer en Live il faut que je la recopie dans /mnt/gentoolive ?
merci _________________ my music project http://linon-project.bandcamp.com/ |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|