web-dev-qa-db-fra.com

Comment créer un système amorçable avec une racine squashfs

Mon objectif est de pouvoir utiliser un système de fichiers racine personnalisé, chargé avec le logiciel que je souhaite. Jusqu'ici, j'ai créé un système de fichiers compressé en utilisant debootstrap et chroot pour installer le logiciel que je veux sur le système.

Le problème que je rencontre maintenant .. chaque fois que je démarre dans le système, mes comptes d’utilisateur qui ont été configurés dans le chroot ne fonctionnent pas. Premier démarrage, tout fonctionne, deuxième démarrage. Je ne peux pas me connecter. C'est déconcertant pour moi.

Quelqu'un connaît une raison ou un endroit pour commencer à chercher?

5
cldfzn

Pour obtenir un système fonctionnel avec un système de fichiers squashfs:

Sudo apt-get install live-boot live-boot-initramfs-tools extlinux
Sudo update-initramfs -u

Créez un fichier squashfs à partir d’un système de fichiers ubuntu démarré ou en cours d’exécution, avec tous les paquetages disponibles. https://help.ubuntu.com/community/LiveCDCustomizationFromScratch fournit de bonnes instructions pour créer un système debootstrapped sur lequel bâtir. Formatez le lecteur cible avec ext2/3/4 et activez le drapeau de démarrage. Créez la disposition des dossiers sur le lecteur cible et installez extlinux:

mkdir -p ${TARGET}/boot/extlinux ${TARGET}/live
extlinux -i ${TARGET}/boot/extlinux
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdX #X is the drive letter
cp /boot/vmlinuz-$(uname -r) ${TARGET}/boot/vmlinuz
cp /boot/initrd.img-$(uname -r) ${TARGET}/boot/initrd
cp filesystem.squashfs ${TARGET}/live

Créez $ {TARGET} /boot/extlinux/extlinux.conf avec le contenu suivant:

DEFAULT Live
LABEL Live
  KERNEL /boot/vmlinuz
  APPEND initrd=/boot/initrd boot=live toram=filesystem.squashfs
TIMEOUT 10
Prompt 0

Vous devriez maintenant pouvoir démarrer à partir du lecteur cible sur votre système écrasé.

8
cldfzn

Cette question a été résolue par le PO:

Eh bien, je l'ai fait travailler. J'ai utilisé les outils live-boot et live-boot-initramfs pour générer un initrd et un extlinux pour le chargeur de démarrage. Fonctionne comme un charme.

3
coversnail