mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
149 lines
No EOL
4.7 KiB
Markdown
149 lines
No EOL
4.7 KiB
Markdown
# Créer une Live ISO de YunoHost
|
||
|
||
Testé sur Debian Wheezy (devrait marcher sur Ubuntu également).
|
||
Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/
|
||
|
||
**Attention** : toutes les sections où vous devrez être dans un environnement **chroot** sont **surlignées**.
|
||
|
||
1. Installation des applications nécessaires à la compilation de l’environnement
|
||
```bash
|
||
sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
|
||
```
|
||
|
||
2. Configuration de l’environnement de base Debian. Debian wheezy et une architecture i386 ont été utilisés pour effectuer les tests.
|
||
Changer le mirroir si vous n’êtes pas aux Pays Bas ou que vous connaissez un mirroir plus proche.
|
||
|
||
```bash
|
||
mkdir live_boot && cd live_boot
|
||
sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
|
||
```
|
||
|
||
3. Deux étapes importantes avant de chroot :
|
||
```bash
|
||
sudo mount -o bind /dev chroot/dev && sudo cp /etc/resolv.conf chroot/etc/resolv.conf
|
||
```
|
||
|
||
4. Chroot l’environnement Debian :
|
||
```bash
|
||
sudo chroot chroot
|
||
```
|
||
|
||
5. **chroot**
|
||
Configuration de variables et d’options système de l’environnement Debian :
|
||
```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
|
||
```
|
||
|
||
6. **chroot** Configuration du mot de passe root de **yunohost** :
|
||
```bash
|
||
passwd root
|
||
```
|
||
|
||
7. **chroot** Installation des paquets requis, remplacement du noyau si nécessaire :
|
||
```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
|
||
```
|
||
|
||
8. **chroot** Le NetworkManager peut casser la configuration de votre environnement chroot. Il est possible de l’installer à posteriori et d’annuler en pressant CTRL-C pendant l’installation.
|
||
```bash
|
||
apt-get --no-install-recommends install network-manager
|
||
```
|
||
|
||
9. **chroot** Installation de YunoHost :
|
||
```bash
|
||
git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
|
||
cd /tmp/yunohost_install && ./autoinstall_yunohostv2
|
||
```
|
||
|
||
10. **chroot** Configuration des paramètres :
|
||
```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
|
||
```
|
||
|
||
11. **chroot** Éditer `/etc/inittab` pour se connecter automatiquement :
|
||
```bash
|
||
nano /etc/inittab
|
||
# Remplacer la ligne suivante :
|
||
1:2345:respawn:/sbin/getty 38400 tty1
|
||
# par :
|
||
1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
|
||
```
|
||
|
||
12. **chroot** Nettoyage de l’environnement Debian avant de quitter :
|
||
```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
|
||
```
|
||
|
||
13. Démonter dev du chroot :
|
||
```bash
|
||
sudo umount -lf chroot/dev
|
||
```
|
||
|
||
14. Créer les répertoires qui seront copiés dans le média bootable :
|
||
```bash
|
||
mkdir -p image/{live,isolinux}
|
||
```
|
||
|
||
15. Compresser l’environnement chroot dans un système de fichier Squash :
|
||
```bash
|
||
sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
|
||
```
|
||
|
||
16. Préparer le bootloader USB/CD :
|
||
```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
|
||
```
|
||
|
||
17. Créer le menu `image/isolinux/isolinux.cfg` pour le bootloader.
|
||
|
||
```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
|
||
|
||
Copier les fichiers nécessaires au démarrage de l’ISO et créer l’ISO :
|
||
|
||
```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 ..
|
||
```
|
||
|
||
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. |