2015-05-20 22:40:39 +02:00
# Créer une Live ISO de YunoHost
2015-05-20 12:39:51 +02:00
2015-05-20 22:40:39 +02:00
Testé sur Debian Wheezy (devrait marcher sur Ubuntu également).
2016-03-30 14:32:52 +02:00
Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/
2015-05-20 12:39:51 +02:00
2016-03-30 14:32:52 +02:00
**Attention** : toutes les sections où vous devrez être dans un environnement **chroot** sont **surlignées** .
2015-05-20 12:39:51 +02:00
2016-01-30 22:00:44 +01:00
1. Installation des applications nécessaires à la compilation de l’ environnement
2015-05-20 12:39:51 +02:00
```bash
sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
```
2016-03-30 14:32:52 +02:00
2. Configuration de l’ environnement de base Debian. Debian wheezy et une architecture i386 ont été utilisés pour effectuer les tests.
Changer le miroir si vous n’ êtes pas aux Pays-Bas ou que vous connaissez un miroir plus proche.
2015-05-20 12:39:51 +02:00
```bash
mkdir live_boot & & cd live_boot
sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
```
2016-03-30 14:32:52 +02:00
3. Deux étapes importantes avant de chroot :
2015-05-20 12:39:51 +02:00
```bash
sudo mount -o bind /dev chroot/dev & & sudo cp /etc/resolv.conf chroot/etc/resolv.conf
```
2016-03-30 14:32:52 +02:00
4. Chroot l’ environnement Debian :
2015-05-20 12:39:51 +02:00
```bash
sudo chroot chroot
```
5. **chroot**
2016-03-30 14:32:52 +02:00
Configuration de variables et d’ options système de l’ environnement Debian :
2015-05-20 12:39:51 +02:00
```bash
mount none -t proc /proc & &
mount none -t sysfs /sys & &
mount none -t devpts /dev/pts & &
export HOME=/root & &
export LC_ALL=C & &
apt-get install dialog dbus --yes & &
dbus-uuidgen > /var/lib/dbus/machine-id & &
apt-get update
```
2016-03-30 14:32:52 +02:00
6. **chroot** Configuration du mot de passe root de **yunohost** :
2015-05-20 12:39:51 +02:00
```bash
passwd root
```
2016-03-30 14:32:52 +02:00
7. **chroot** Installation des paquets requis, remplacement du noyau si nécessaire :
2015-05-20 12:39:51 +02:00
```bash
apt-get install --no-install-recommends \
linux-image-3.2.0-4-486 live-boot \
net-tools wireless-tools wpagui tcpdump wget openssh-client \
xserver-xorg-core xserver-xorg xinit xterm \
pciutils usbutils gparted ntfsprogs hfsprogs rsync dosfstools syslinux partclone nano pv \
chromium-browser libnss3-tools openbox git ca-certificates openssl
```
2016-03-30 14:32:52 +02:00
8. **chroot** Le NetworkManager peut casser la configuration de votre environnement chroot. Il est possible de l’ installer a posteriori et d’ annuler en pressant CTRL-C pendant l’ installation.
2015-05-20 12:39:51 +02:00
```bash
apt-get --no-install-recommends install network-manager
```
2016-03-30 14:32:52 +02:00
9. **chroot** Installation de YunoHost :
2015-05-20 12:39:51 +02:00
```bash
git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
2016-05-10 14:32:25 +02:00
cd /tmp/yunohost_install & & ./install_yunohost -a
2015-05-20 12:39:51 +02:00
```
2016-03-30 14:32:52 +02:00
10. **chroot** Configuration des paramètres :
2015-05-20 12:39:51 +02:00
```bash
echo "127.0.0.1 yunohost.org" >> /etc/hosts
echo "chromium --user-data-dir=/root/.config/chromium --app=https://yunohost.org/yunohost/admin/" >> /etc/xdg/openbox/autostart
echo -e "if [ -z \"\$DISPLAY\" ] && [ \$(tty) == /dev/tty1 ]; \nthen \n startx \nfi" >> /root/.bashrc
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n YunoHostCA -i /etc/yunohost/certs/yunohost.org/ca.pem
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YunoHostCrt -i /etc/yunohost/certs/yunohost.org/crt.pem
```
2016-03-30 14:32:52 +02:00
11. **chroot** Éditer `/etc/inittab` pour se connecter automatiquement :
2015-05-20 12:39:51 +02:00
```bash
nano /etc/inittab
2016-03-30 14:32:52 +02:00
# Remplacer la ligne suivante :
2015-05-20 12:39:51 +02:00
1:2345:respawn:/sbin/getty 38400 tty1
2016-03-30 14:32:52 +02:00
# par :
2015-05-20 12:39:51 +02:00
1:2345:respawn:/bin/login -f root tty1 < /dev/tty1 >/dev/tty1 2>& 1
```
2016-03-30 14:32:52 +02:00
12. **chroot** Nettoyage de l’ environnement Debian avant de quitter :
2015-05-20 12:39:51 +02:00
```bash
rm -f /var/lib/dbus/machine-id & &
apt-get clean & &
rm -rf /tmp/* & &
rm /etc/resolv.conf & &
umount -lf /proc & &
umount -lf /sys & &
umount -lf /dev/pts
# Puis exit
exit
```
2015-05-20 22:40:39 +02:00
13. Démonter dev du chroot :
2015-05-20 12:39:51 +02:00
```bash
sudo umount -lf chroot/dev
```
2016-03-30 14:32:52 +02:00
14. Créer les répertoires qui seront copiés dans le média bootable :
2015-05-20 12:39:51 +02:00
```bash
mkdir -p image/{live,isolinux}
```
2016-03-30 14:32:52 +02:00
15. Compresser l’ environnement chroot dans un système de fichier Squash :
2015-05-20 12:39:51 +02:00
```bash
sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
```
2016-03-30 14:32:52 +02:00
16. Préparer le bootloader USB/CD :
2015-05-20 12:39:51 +02:00
```bash
cp chroot/boot/vmlinuz-3.2.0-4-486 image/live/vmlinuz1 & &
cp chroot/boot/initrd.img-3.2.0-4-486 image/live/initrd1
```
2015-05-20 22:40:39 +02:00
17. Créer le menu `image/isolinux/isolinux.cfg` pour le bootloader.
2015-05-20 12:39:51 +02:00
```bash
UI menu.c32
prompt 0
menu title YunoHost Live
timeout 300
label YunoHost Live
menu label ^YunoHost Live
menu default
kernel /live/vmlinuz1
append initrd=/live/initrd1 boot=live
```
### Compiler le .iso
2016-03-30 14:32:52 +02:00
Copier les fichiers nécessaires au démarrage de l’ ISO et créer l’ ISO :
2015-05-20 12:39:51 +02:00
```bash
cp /usr/lib/syslinux/isolinux.bin image/isolinux/ & &
cp /usr/lib/syslinux/menu.c32 image/isolinux/
cd image & & genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . & & cd ..
```
2016-03-30 14:32:52 +02:00
Félicitations ! L’ ISO peut désormais être gravée ou utilisée avec [Unetbootin ](http://unetbootin.sourceforge.net/ ) pour la copier sur une clé USB.