Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
tutoriel:lubuntu_usb_creator [Le 15/04/2015, 16:36]
lenainjaune test prochain sur dernière LTS
tutoriel:lubuntu_usb_creator [Le 25/02/2021, 09:35]
lenainjaune [Lubuntu USB Creator] note importante
Ligne 1: Ligne 1:
-{{tag>Precise ​live_usb ​persistance ​lubuntu mbr bootloader syslinux casper-rw parted}}+{{tag>boot live_usb lubuntu mbr tutoriel Trusty}}
  
 ---- ----
  
 +
 +<note important>​Tout ce qui trouve dans cette page est à prendre **avec des pincettes**. Certains éléments sont obsolètes et/ou mal maîtrisés. En définitive,​ il y a **à boire et à manger** mais certains éléments sont très utiles (en partie l'​écriture du script **bash** dont je suis assez fier :-)). Je reviendrais certainement bientôt, mettre à jour et simplifier, parce qu'​avec le recul je trouve cette page fouilli et peu optimisée. A suivre .... lnj le 25/02/21 à 09:​35</​note>​
 ====== Lubuntu USB Creator ====== ====== Lubuntu USB Creator ======
 +<note help>Ce tutoriel a pour origine un besoin de remplacer un disque dur défaillant (voir [[http://​openclassrooms.com/​forum/​sujet/​remplacer-un-hdd-par-un-live-usb#​message-88173124|ici]]). Comme je pouvais difficilement le remplacer (format 1.8" peu commun), je suis parti en quête de solution alternative. Je voulais explorer la possibilité d'​utiliser un Live USB, mais sans trop savoir où je m'​aventurais. Pris au jeu, cette exploration est devenue un projet à part entière. ​
  
-<note help>Ce tutoriel a pour origine un besoin de remplacer un disque dur défaillant (voir [[http://​openclassrooms.com/​forum/​sujet/​remplacer-un-hdd-par-un-live-usb#​message-88173124|ici]]). Comme je pouvais difficilement le remplacer (format 1.8" peu commun), je suis parti en quête de solution alternative. Je voulais explorer la possibilité d'​utiliser un Live USB, mais sans trop savoir où je m'​aventurais. Pris au jeu, cette exploration est devenue un projet à part entière. ​Ayant bien-bien-bien avancé sur le sujet et je vous propose aujourd'​hui le fruit de mon travail... :​-)</​note>​+Ayant bien-bien-bien avancé sur le sujet et je vous propose aujourd'​hui le fruit de mon travail... :​-)</​note>​
  
 Comme je le disais dans mon [[http://​openclassrooms.com/​forum/​sujet/​remplacer-un-hdd-par-un-live-usb#​message-88173124|post initial]], j'​allais tester la solution du Live USB à partir d'un S-ATA externe connecté par USB.  Comme je le disais dans mon [[http://​openclassrooms.com/​forum/​sujet/​remplacer-un-hdd-par-un-live-usb#​message-88173124|post initial]], j'​allais tester la solution du Live USB à partir d'un S-ATA externe connecté par USB. 
Ligne 11: Ligne 14:
 J'ai réussi à créer un Live USB persistant sur un HDD SATA branché sur une station d'​accueil externe et connectée via USB. De plus, j'ai réussi à créer un script '​OneTouch'​ qui construit lui même le Live USB à partir de nos réglages. J'ai réussi à créer un Live USB persistant sur un HDD SATA branché sur une station d'​accueil externe et connectée via USB. De plus, j'ai réussi à créer un script '​OneTouch'​ qui construit lui même le Live USB à partir de nos réglages.
  
-Je l'ai appelé L.U.C. (Lubuntu USB Creator) ​et non je n'ai pas les idées mal placées (même à l'​envers ^^ )+Je l'ai appelé L.U.C. (Lubuntu USB Creator).
  
 Comme je suis trop content :-) ! Comme je suis trop content :-) !
Ligne 17: Ligne 20:
 Ce document est devenu très grand et tout ne sera pas utile pour tout le monde. Ce document est devenu très grand et tout ne sera pas utile pour tout le monde.
  
-<note tip>Pour ceux qui sont juste curieux du résultat, vous pouvez directement lire le chapitre [[#​pre-requis|Pré-requis]] puis poursuivre par [[#​mode_d_emploi|Mode d'​emploi]] (durée ​installation ​évaluée ​: 20 minutes)</​note>​+<note tip>Pour ceux qui sont juste curieux du résultat, vous pouvez directement lire le chapitre [[#​pre-requis|Pré-requis]] puis poursuivre par [[#​mode_d_emploi|Mode d'​emploi]] (temps d'installation ​estimé ​: 20 minutes)</​note>​ 
 + 
 +<note help>Si vous avez des commentaires,​ remarqué des erreurs ou adapté le script à d'​autres distributions,​ n'​hésitez pas à faire un retour sur le [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=19673001#​p19673001|forum]].</​note>​
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 23: Ligne 28:
   * Disposer des [[:​sudo|droits d'​administration]].   * Disposer des [[:​sudo|droits d'​administration]].
   * Disposer d'une connexion à Internet configurée et activée.   * Disposer d'une connexion à Internet configurée et activée.
-  * Le fichier ISO de la distribution ​ [[https://​help.ubuntu.com/​community/​Lubuntu/​GetLubuntu|Lubuntu]] pour architecture 32 bits (testé avec Lubuntu 14.10 32 bits)+  * Le fichier ISO de la distribution ​ [[https://​help.ubuntu.com/​community/​Lubuntu/​GetLubuntu|Lubuntu]] pour architecture 32 bits (voir les [[#​plateformes_supportees|plateformes supportées]])
 Pour connaître l'​architecture du micro-processeur :  Pour connaître l'​architecture du micro-processeur : 
 <code bash>​lscpu |grep bit</​code>​ <code bash>​lscpu |grep bit</​code>​
-  * Un PC pour construire le support USB, appelons le **PC-Builder** (testé sous Ubuntu 12.04 LTS 32 bits avec CPU 32 bits+  * Un PC pour construire le support USB, appelons le **PC-BUILDER** (voir les [[#​plateformes_supportees|plateformes supportées]]
-  * Un disque dur externe SATA + station accueil SATA reliée par USB ou eSATA (pour ceux qui ne connaissent pas : [[http://​lmgtfy.com/?​q=station+accueil+sata+usb|http://​lmgtfy.com/?​q=station+accueil+sata+usb]]) ; pour ceux qui n'ont pas un tel matériel une simple clé USB de 2 GB mini fera l'​affaire pour tester+  * Un disque dur externe SATA + station accueil SATA reliée par USB ou eSATA (pour ceux qui ne connaissent pas : [[http://​lmgtfy.com/?​q=station+accueil+sata+usb|http://​lmgtfy.com/?​q=station+accueil+sata+usb]]) ; pour ceux qui n'ont pas un tel matériel une simple clé USB de 2 GB mini fera l'​affaire pour tester.
 <note warning> <note warning>
-ATTENTION la technologie d'une clé USB n'​étant pas prévue pour les multiples écritures nécessaires au fonctionnement d'un OS, il en résultera une durée de vie réduite, vous voilà prévenu !+ATTENTION ​la technologie d'une clé USB n'​étant pas prévue pour les multiples écritures nécessaires au fonctionnement d'un OS, il en résultera une durée de vie réduite, vous voilà prévenu !
 </​note>​ </​note>​
-  * Un autre PC pour tester, appelons le **Live_PC** qui servira d'​hôte à notre Live USB (il ne touchera pas à l'​éventuel OS en place) ; si on n'a pas de 2ème PC on peut utiliser PC-Builder, seulement ce sera moins pratique (surtout pour l'​accès distant ^^ )+  * Un autre PC pour tester, appelons le **PC-LIVE** qui servira d'​hôte à notre Live USB (il ne touchera pas à l'​éventuel OS en place) ; si on n'a pas de 2ème PC on peut utiliser PC-BUILDER, seulement ce sera moins pratique (surtout pour l'​accès distant ^^ ) 
 + 
 +<note tip>​Maintenant que vous avez les pré-requis,​ peut être voudriez-vous tester la [[#​mode_d_emploi|finalité]] (temps estimé : 20 min) ?</​note>​ 
 + 
 +==== Plateformes supportées ==== 
 +Ces couples de plateformes ont été testées avec succès : 
 +^ OS PC-BUILDER ​           ^ CPU     ^ OS PC-LIVE ​           ^ CPU     ^ RMQ ^ 
 +| Ubuntu 12.04 LTS 32 bits | 32 bits | Lubuntu 14.10 32 bits | 32 bits |     | 
 +| Ubuntu 14.04 LTS 64 bits | 32 bits | Lubuntu 14.10 32 bits | 32 bits | environnement VM | 
 + 
 +<note tip>​N'​hésitez pas à faire un retour sur le [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=19673001#​p19673001|forum]],​ pour faire évoluer cette liste.</​note>​
  
 ===== Un live USB persistant ? ===== ===== Un live USB persistant ? =====
Ligne 88: Ligne 103:
 R : Un code exécutable (appelons la **routine_MBR**),​ d'​éventuels messages d'​erreurs en cas de problème, le descripteur des partitions principales,​ une signature de contrôle facultative et se termine obligatoirement par les octets "55 aa" qui représentent le **nombre magique** 0xaa55 ([[http://​fr.wikipedia.org/​wiki/​Master_boot_record#​Structure_du_MBR|wiki]]) pour distinguer un support bootable d'un autre ([[http://​poloastucien.free.fr/​mbr_fat_secteurs_boot_h.html#​2|sources]]) R : Un code exécutable (appelons la **routine_MBR**),​ d'​éventuels messages d'​erreurs en cas de problème, le descripteur des partitions principales,​ une signature de contrôle facultative et se termine obligatoirement par les octets "55 aa" qui représentent le **nombre magique** 0xaa55 ([[http://​fr.wikipedia.org/​wiki/​Master_boot_record#​Structure_du_MBR|wiki]]) pour distinguer un support bootable d'un autre ([[http://​poloastucien.free.fr/​mbr_fat_secteurs_boot_h.html#​2|sources]])
  
-Attention : le nombre magique ne suffit pas en soi, pour déterminer si le support est réellement bootable !+<note important>​ 
 +Attention : le nombre magique ne suffit pas en soi, pour déterminer si le support est réellement bootable, il faut également qu'une partition soit active (voir dessous) ​! 
 +</​note>​
  
 On peut visualiser le contenu hexadécimal/​ASCII d'un MBR grâce à la commande hexdump ou hd <code bash>hd /​dev/<​device>​ -n 512 -s 0</​code>​ On peut visualiser le contenu hexadécimal/​ASCII d'un MBR grâce à la commande hexdump ou hd <code bash>hd /​dev/<​device>​ -n 512 -s 0</​code>​
Ligne 144: Ligne 161:
  
 FIXME Q : Que contient un secteur de boot d'une partition étendue ?\\ FIXME Q : Que contient un secteur de boot d'une partition étendue ?\\
-R : Même type de structure qu'un MBR (http://​en.wikipedia.org/​wiki/​Extended_boot_record),​ en revanche semble commencer par une instruction de saut.+R : Même type de structure qu'un MBR ([[http://​en.wikipedia.org/​wiki/​Extended_boot_record|EBR]]), en revanche semble commencer par une instruction de saut.
  
 ==== VBR et bootloader ==== ==== VBR et bootloader ====
Ligne 193: Ligne 210:
 00000200 00000200
 </​code>​ </​code>​
- 
  
 En reprenant l'​affichage hexdump du dessus : En reprenant l'​affichage hexdump du dessus :
Ligne 239: Ligne 255:
  
 On peut notera que : On peut notera que :
-  * Les 3 premiers octets constituent une instruction de saut de 58 octets. Donc on va "​sauter" ​58 octets qui nous emmène directement au 4ème bloc (ligne 0000050)+  * Les 3 premiers octets constituent une instruction de saut de 88 octets ​([[http://​www.binaryhexconverter.com/​hex-to-decimal-converter|58h=88d]] ; 58 en héxadécimal correspond à 88 décimal). Donc on va "​sauter" ​88 octets qui nous emmène directement au 4ème bloc (ligne 0000050)
   * Les 8 octets suivants concernent le [[http://​thestarman.narod.ru/​asm/​mbr/​W7VBR.htm|OEM ID]] (en gros qui a créé le VBR) : ici on voit que c'est SYSLINUX   * Les 8 octets suivants concernent le [[http://​thestarman.narod.ru/​asm/​mbr/​W7VBR.htm|OEM ID]] (en gros qui a créé le VBR) : ici on voit que c'est SYSLINUX
   * Le bloc suivant concerne le BPB ([[http://​fr.wikipedia.org/​wiki/​BIOS_parameter_block|BIOS parameter block]]) qui décrit la couche physique du support ; également on peut voir en clair le libellé du support (ici L_LUBUNTU), ainsi que le FS (ici le système de fichier est en FAT32)   * Le bloc suivant concerne le BPB ([[http://​fr.wikipedia.org/​wiki/​BIOS_parameter_block|BIOS parameter block]]) qui décrit la couche physique du support ; également on peut voir en clair le libellé du support (ici L_LUBUNTU), ainsi que le FS (ici le système de fichier est en FAT32)
Ligne 261: Ligne 277:
  
 <note important>​ <note important>​
-Ce guide manuel est dédié pour un live USB "​Lubuntu 14.10 32 bits" qui a été créé depuis un PC équipé de "​Ubuntu 12.04 LTS 32 bits" ; si vous n'avez pas ces prérequis, vous aurez certainement à adapter les consignes suivantes.+Ce guide manuel est dédié pour un live USB "​Lubuntu 14.10 32 bits" qui a été créé depuis un PC équipé de "​Ubuntu 12.04 LTS 32 bits" ​(PC-BUILDER) ​; si vous n'avez pas ces prérequis, vous aurez certainement à adapter les consignes suivantes.
 </​note>​ </​note>​
  
Ligne 285: Ligne 301:
  
 ==== Remplacer le fichier gfxboot.c32 ==== ==== Remplacer le fichier gfxboot.c32 ====
-Remplacer le fichier gfxboot.c32 du support par celui du PC-Builder ​de création :+Remplacer le fichier gfxboot.c32 du support par celui du PC-BUILDER ​de création :
 <code bash>​sudo cp /​usr/​lib/​syslinux/​gfxboot.c32 <​racine_support_usb>/​syslinux/​gfxboot.c32</​code>​ <code bash>​sudo cp /​usr/​lib/​syslinux/​gfxboot.c32 <​racine_support_usb>/​syslinux/​gfxboot.c32</​code>​
  
Ligne 291: Ligne 307:
 Si on ne fait pas cette étape, le boot automatique ne marchera pas et se soldera par un prompt "boot :". Dans ce cas, on n'aura plus qu'à taper manuellement **"​live"​** (sans les guillemets),​ suivi d'un appui la touche **Entrée**. Si on ne fait pas cette étape, le boot automatique ne marchera pas et se soldera par un prompt "boot :". Dans ce cas, on n'aura plus qu'à taper manuellement **"​live"​** (sans les guillemets),​ suivi d'un appui la touche **Entrée**.
  
-==== Mettre en place le Live_PC ​==== +==== Mettre en place le PC-LIVE ​==== 
-Brancher le live USB sur un PC de test éteint (Live_PC)+Brancher le live USB sur un PC de test éteint (PC-LIVE)
  
-S'​assurer que le Live_PC ​est relié physiquement au réseau (au besoin démarrez le et vérifiez que vous avez accès au réseau).+S'​assurer que le PC-LIVE ​est relié physiquement au réseau (au besoin démarrez le et vérifiez que vous avez accès au réseau).
  
-Démarrer le Live_PC ​et configurer le BIOS pour qu'il démarre sur le Live USB ou bien choisir le support depuis la liste des périphériques (F12 ou autre).+Démarrer le PC-LIVE ​et configurer le BIOS pour qu'il démarre sur le Live USB ou bien choisir le support depuis la liste des périphériques (F12 ou autre).
  
 NB : je ne décris pas cette étape qui varie d'une machine à une autre, toutefois une recherche avec votre moteur de recherche favori, devrait donner rapidement la solution. NB : je ne décris pas cette étape qui varie d'une machine à une autre, toutefois une recherche avec votre moteur de recherche favori, devrait donner rapidement la solution.
Ligne 431: Ligne 447:
  
 ==== Tests d'​accès distant ==== ==== Tests d'​accès distant ====
-Désormais on peut accéder à distance par SSH : depuis le terminal ​du PC_client, exécuter la ligne suivante dans un terminal : +Désormais on peut accéder à distance par SSH : depuis le terminal ​d'un PC (appelons le PC-CLIENT, exécuter la ligne suivante dans un terminal : 
-<code bash>ssh <​mon_login>​@<​ip_live_pc></​code>​ (ex : ssh lnj@192.168.0.3)+<code bash>ssh <​mon_login>​@<​ip_PC-LIVE></​code>​ (ex : ssh lnj@192.168.0.3)
  
 Et on peut également accéder avec un client VNC, pour ma part j'ai utilisé Remmina. Et on peut également accéder avec un client VNC, pour ma part j'ai utilisé Remmina.
Ligne 451: Ligne 467:
  
 ==== Fonctionnement ==== ==== Fonctionnement ====
 +Nous allons voir ici, le fonctionnement interne de votre Live USB.
 +
 +<note help>
 +Cette partie optionnelle est longue et technique, mais elle n'est pas complexe. Bonne lecture !
 +</​note>​
 <note important>​ <note important>​
 Volontairement,​ je ne donne pas trop d'​explications dans la section qui suit, car je maitrise mal et ça alourdirait. Volontairement,​ je ne donne pas trop d'​explications dans la section qui suit, car je maitrise mal et ça alourdirait.
Ligne 491: Ligne 512:
 Notre système de fichier est monté. Notre système de fichier est monté.
  
-L'​étape suivante c'est l'​exécution automatique de **/​etc/​profile** (point d'​entrée sous notre contrôle - voir [[synoptique_et_role_des_fichiers|synoptique]]),​ qui va exécuter un script externe au système **/​cdrom/​scripts/​runme1st_from_ext.sh** (externe, car il se trouve sur la première partition du Live USB). Cette étape va s'​effectuer APRES l'​ouverture de la Live session, lorsque le bureau sera affiché, pour avoir une interaction avec l'​utilisateur final (vous). Ce dernier pourra alors suivre les opérations en cours dans un terminal. Si on ne lui montre pas, il aura l'​impression que le démarrage dure (c'est tordu, mais ça marche :D !)+L'​étape suivante c'est l'​exécution automatique de **/​etc/​profile** (point d'​entrée sous notre contrôle - voir [[#synoptique_et_role_des_fichiers|synoptique]]),​ qui va exécuter un script externe au système **/​cdrom/​scripts/​runme1st_from_ext.sh** (externe, car il se trouve sur la première partition du Live USB). Cette étape va s'​effectuer APRES l'​ouverture de la Live session, lorsque le bureau sera affiché, pour avoir une interaction avec l'​utilisateur final (vous). Ce dernier pourra alors suivre les opérations en cours dans un terminal. Si on ne lui montre pas, il aura l'​impression que le démarrage dure (c'est tordu, mais ça marche :D !)
  
 Remarque importante : Remarque importante :
  
-Pour arriver à créer ce point d'​entrée,​ on a extrait le contenu du fichier **<​racine_live_usb>/​casper/​filesystem.squashfs** (système d'​exploitation au format compressé [[http://​fr.wikipedia.org/​wiki/​SquashFS|SQUASHFS]] en lecture seule), on en a modifié le fichier **<​racine_contenu>/​etc/​profile** et on a reconstruit **<​racine_live_usb>/​casper/​filesystem.squashfs**. La modification ayant inséré dans **/​etc/​profile** une unique instruction qui dit tout simplement : exécute le fichier externe **/​cdrom/​scripts/​runme1st_from_ext.sh** (voir [[synoptique_et_role_des_fichiers|synoptique]])+Pour arriver à créer ce point d'​entrée,​ on a extrait le contenu du fichier **<​racine_live_usb>/​casper/​filesystem.squashfs** (système d'​exploitation au format compressé [[http://​fr.wikipedia.org/​wiki/​SquashFS|SQUASHFS]] en lecture seule), on en a modifié le fichier **<​racine_contenu>/​etc/​profile** et on a reconstruit **<​racine_live_usb>/​casper/​filesystem.squashfs**. La modification ayant inséré dans **/​etc/​profile** une unique instruction qui dit tout simplement : exécute le fichier externe **/​cdrom/​scripts/​runme1st_from_ext.sh** (voir [[#synoptique_et_role_des_fichiers|synoptique]])
  
 Ce script externe va supprimer son propre déclencheur dans **/​etc/​profile** (pour éviter qu'il soit exécuté à chaque démarrage) et réaliser la première phase de post-installation. Ce script externe va supprimer son propre déclencheur dans **/​etc/​profile** (pour éviter qu'il soit exécuté à chaque démarrage) et réaliser la première phase de post-installation.
Ligne 529: Ligne 550:
   * luc/​liveusb/​scripts/​reset.sh : réinitialise tout comme au premier boot (donnée persistantes de **casper-rw perdues**)   * luc/​liveusb/​scripts/​reset.sh : réinitialise tout comme au premier boot (donnée persistantes de **casper-rw perdues**)
   * luc/​liveusb/​scripts/​runme1st_from_ext.sh : script auto-déclenché au premier boot du Live USB par le point d'​entrée **/​etc/​profile**   * luc/​liveusb/​scripts/​runme1st_from_ext.sh : script auto-déclenché au premier boot du Live USB par le point d'​entrée **/​etc/​profile**
-  * luc/​liveusb/​syslinux/​gfxboot.c32 : fichier remplacé par celui de PC-Builder+  * luc/​liveusb/​syslinux/​gfxboot.c32 : fichier remplacé par celui de PC-BUILDER
   * luc/​liveusb/​syslinux/​syslinux.cfg : configuration de boot du Live USB   * luc/​liveusb/​syslinux/​syslinux.cfg : configuration de boot du Live USB
   * luc/​squashfs : dossier montage de **luc/​filesystem.squashfs**   * luc/​squashfs : dossier montage de **luc/​filesystem.squashfs**
Ligne 543: Ligne 564:
 </​note>​ </​note>​
  
-Copier le [[#​le_code|script OneTouch]] et le coller dans le script ​**luc_onetouch_install.sh**+Copier le contenu du [[#​le_code|script OneTouch]] et le coller dans le fichier  ​**luc_onetouch_install.sh**
  
 Donnez vous les droits d'​exécution :\\ Donnez vous les droits d'​exécution :\\
Ligne 556: Ligne 577:
   * **ME** : c'est ... vous, le nom de login de votre utilisateur (ex : ME=lnj)   * **ME** : c'est ... vous, le nom de login de votre utilisateur (ex : ME=lnj)
   * **ME_FULL** : c'est encore vous mais avec le nom long (ex : ME_FULL='​Le nain jaune'​)   * **ME_FULL** : c'est encore vous mais avec le nom long (ex : ME_FULL='​Le nain jaune'​)
-  * **NET_ADDRESS** : adresse IP statique donnée au Live_PC ​(ex : NET_ADDRESS=192.168.0.3) +  * **NET_ADDRESS** : adresse IP statique donnée au PC-LIVE ​(ex : NET_ADDRESS=192.168.0.3) 
-  * **NET_NETMASK** : masque réseau du réseau de Live_PC ​(ex : NET_NETMASK=255.255.255.0) +  * **NET_NETMASK** : masque réseau du réseau de PC-LIVE ​(ex : NET_NETMASK=255.255.255.0) 
-  * **NET_GATEWAY** : la passerelle du réseau de Live_PC ​(ex : NET_GATEWAY=192.168.0.254) +  * **NET_GATEWAY** : la passerelle du réseau de PC-LIVE ​(ex : NET_GATEWAY=192.168.0.254) 
-  * **NET_DNS** : un serveur DNS accessible par le Live_PC ​(ex : NET_DNS=8.8.8.8)+  * **NET_DNS** : un serveur DNS accessible par le PC-LIVE ​(ex : NET_DNS=8.8.8.8)
  
 === Configurer les paramètres pré-configurés (ou laisser les valeurs par défaut) === === Configurer les paramètres pré-configurés (ou laisser les valeurs par défaut) ===
Ligne 590: Ligne 611:
  
 === Modifier vos mots de passe === === Modifier vos mots de passe ===
-Une fois le Live USB démarré et opérationnel,​ n'​oubliez pas de modifier sur le Live_PC ​:+Une fois le Live USB démarré et opérationnel,​ n'​oubliez pas de modifier sur le PC-LIVE ​:
   * Mot de passe de session : <code bash>​passwd</​code>​   * Mot de passe de session : <code bash>​passwd</​code>​
   * Mot de passe de VNC (si vous l'avez installé) : <code bash>​x11vnc -storepasswd</​code>​   * Mot de passe de VNC (si vous l'avez installé) : <code bash>​x11vnc -storepasswd</​code>​
Ligne 604: Ligne 625:
  
 ==== Le code ==== ==== Le code ====
-Avant toutun peu d'humour pour détendre ;-)+<note help>Si vous avez des commentairesremarqué des erreurs ou adapté le script à d'autres distributions,​ n'​hésitez pas à faire un retour sur le [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=19673001#​p19673001|forum]].</​note>​
  
-{{http://​www.tux-planet.fr/​public/​images/​humour/​linux-peace-and-love.jpg}} +Le script luc_onetouch_install.sh (n'​oubliez pas de [[#​mode_d_emploi|configurer]])
- +
-Le script luc_onetouch_install.sh (n'​oubliez pas de configurer)+
  
 <code bash luc_onetouch_install.sh>​ <code bash luc_onetouch_install.sh>​
 #!/bin/bash #!/bin/bash
-  + 
-# LUBUNTU USB CREATOR aka L.U.C. ​(run as sudo only) +# LUBUNTU USB CREATOR aka LUC (run as sudo only) 
-# v1.lnj 12/04/2015 +# Up to date version : https://​doc.ubuntu-fr.org/​tutoriel/​lubuntu_usb_creator 
- +# v1.lnj 22/04/2015 
 # USAGE : luc_onetouch_install.sh [DEV [ISO]] # USAGE : luc_onetouch_install.sh [DEV [ISO]]
 # Where optional DEV is device disk (not a partition) and optional ISO an ISO file. # Where optional DEV is device disk (not a partition) and optional ISO an ISO file.
-  + 
-# Different links which help me :+#​ Supported versions : https://​doc.ubuntu-fr.org/​tutoriel/​lubuntu_usb_creator?​do=edit&​rev=0#​plateformes_supportees 
 + 
 +# History :  
 +# - v1.4 lnj 22/04/2015 : adding needed dependency 
 +# - v1.3 lnj 15/04/2015 : adding needed dependency squashfs-tools ​  
 +# - v1.2 lnj 12/​04/​2015 
 + 
 +#​ Different links which help me :
 # http://​askubuntu.com/​questions/​397481/​how-to-make-a-persistent-live-ubuntu-usb-with-more-than-4gb # http://​askubuntu.com/​questions/​397481/​how-to-make-a-persistent-live-ubuntu-usb-with-more-than-4gb
 # http://​david.hautbois.free.fr/​wordpress/​index.php/​175-how-to-customize-your-ubuntu-live-usb-stick # http://​david.hautbois.free.fr/​wordpress/​index.php/​175-how-to-customize-your-ubuntu-live-usb-stick
Ligne 627: Ligne 654:
 # http://​www.linux.com/​community/​blogs/​133-general-linux/​420179-creating-a-debian-live-usb-flash-drive-with-persistence-for-non-techies # http://​www.linux.com/​community/​blogs/​133-general-linux/​420179-creating-a-debian-live-usb-flash-drive-with-persistence-for-non-techies
 # https://​help.ubuntu.com/​community/​USB%20Installation%20Media) # https://​help.ubuntu.com/​community/​USB%20Installation%20Media)
-  + 
- +
 ##################################​ CHOOSE HDD #####################################​ ##################################​ CHOOSE HDD #####################################​
- +
 # to retrieve parts and disks : http://​www.labtestproject.com/​using_linux/​partition_hard_disk_using_fdisk_command_on_linux_fedora_system # to retrieve parts and disks : http://​www.labtestproject.com/​using_linux/​partition_hard_disk_using_fdisk_command_on_linux_fedora_system
 # lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT # lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT
-  + 
-  + 
-################################​ STATIC SETTINGS ##################################​ +################################​ STATIC SETTINGS ##################################​ 
- +
 # ------------------------------- FUNCTIONAL -------------------------------------- # ------------------------------- FUNCTIONAL --------------------------------------
 # DEV : the DEV disk used to install Live USB (not part) ; can be given from $1 arg # DEV : the DEV disk used to install Live USB (not part) ; can be given from $1 arg
-  ​See lsblk command above to determine the target disk +# See lsblk command above to determine the target disk 
-  ​!!! Warning: DEV data will be permanently deleted (no possible return ) !!! +# !!! Warning: DEV data will be permanently deleted (no possible return ) !!! 
-# ISO : ISO file location ​(only absolute paths is possible) ; i.e. '/​ISO/​tux.iso'​ +# ISO : ISO file location ​(only absolute paths is possible) ; i.e. '/​ISO/​tux.iso'​ 
-# ME : my short name user +# ME : my short name user  
-# ME_FULL : my full name user +# ME_FULL : my full name user  
-# NET_ADDRESS : static IP address wanted in my network +# NET_ADDRESS : static IP address wanted in my network 
-  ​!!! Becareful : possible IP conflict with other PC, especially DHCP scope !!!+# !!! Becareful : possible IP conflict with other PC, especially DHCP scope !!!
 # NET_NETMASK : my network mask # NET_NETMASK : my network mask
 # NET_GATEWAY : the accessible gateway (i.e. to join the Internet) # NET_GATEWAY : the accessible gateway (i.e. to join the Internet)
 # NET_DNS : an accessible DNS server to allow internet browsing and apt-get jobs too # NET_DNS : an accessible DNS server to allow internet browsing and apt-get jobs too
- +
 DEV=/​dev/​sde DEV=/​dev/​sde
-  ​!!! Warning: DEV data will be permanently deleted (no possible return ) !!!+# !!! Warning: DEV data will be permanently deleted (no possible return ) !!!
 ISO='/​ISO/​lubuntu-14.10-desktop-i386.iso'​ ISO='/​ISO/​lubuntu-14.10-desktop-i386.iso'​
 ME=user ME=user
Ligne 659: Ligne 686:
 NET_GATEWAY=192.168.0.254 NET_GATEWAY=192.168.0.254
 NET_DNS=8.8.8.8 NET_DNS=8.8.8.8
- +
 # ------------------------------- PRE-CONFIGURED ----------------------------------- # ------------------------------- PRE-CONFIGURED -----------------------------------
 # USB_LABEL : partition 1 label [default : L_LUBUNTU (Live LUBUNTU)] # USB_LABEL : partition 1 label [default : L_LUBUNTU (Live LUBUNTU)]
 # USB_PART1_SIZE : size for the partition 1 # USB_PART1_SIZE : size for the partition 1
-  ​[recommended : USB_PART1_SIZE=1G - for 1 GB, see man parted search unit]+#​ [recommended : USB_PART1_SIZE=1G - for 1 GB, see man parted search unit]
 # USB_PART2_SIZE : size for the partition 2 # USB_PART2_SIZE : size for the partition 2
-  ​[recommended : USB_PART2_SIZE=100% - for all the remaining space] +#​ [recommended : USB_PART2_SIZE=100% - for all the remaining space]  
-  ​If we want a 3rd part or more, not give 100% or specify in absolute size +# If we want a 3rd part or more, not give 100% or specify in absolute size 
-  ​for example 10GB (see man parted and search unit)+# for example 10GB (see man parted and search unit)
 # LIVE_USB_BOOT_MESSAGE : welcome boot message [dft : '​Lubuntu USB Live Persistant'​] # LIVE_USB_BOOT_MESSAGE : welcome boot message [dft : '​Lubuntu USB Live Persistant'​]
 # LIVE_USB_BOOT_QUIET : 0/1 (0 => verbose/no splash, 1 => quiet with splash) # LIVE_USB_BOOT_QUIET : 0/1 (0 => verbose/no splash, 1 => quiet with splash)
-  ​[default : 1]+# [default : 1]
 # ME_DEFAULT_PASSWORD : my simple default password (change it for first logon) # ME_DEFAULT_PASSWORD : my simple default password (change it for first logon)
-  ​!!! Becareful : password in clear, so give a temp simple password !!! +# !!! Becareful : password in clear, so give a temp simple password !!! 
-  ​[default : lubuntu]+# [default : lubuntu]
 # EMBED_PACKETS : list of packets automatically installed at 1st boot # EMBED_PACKETS : list of packets automatically installed at 1st boot
-  ​separate all packets by a space +# separate all packets by a space 
-  ​i.e. EMBED_PACKETS='​htop vim' +# i.e. EMBED_PACKETS='​htop vim' 
-  ​[default : ''​] +# [default : ''​] 
-  ​Nota : ssh is later included by default+# Nota : ssh is later included by default
 # EMBED_VNC : 0/1 embed VNC for remote desktop (0 => no, 1 => yes) # EMBED_VNC : 0/1 embed VNC for remote desktop (0 => no, 1 => yes)
-  ​http://​adept1formatique.unblog.fr/​2013/​08/​12/​bureau-a-distance-avec-lubuntu/​ +#​ http://​adept1formatique.unblog.fr/​2013/​08/​12/​bureau-a-distance-avec-lubuntu/​ 
-  ​[default : 1]+# [default : 1]
 # UPDATE_OS : 0/1 update OS (take a while) (0 => no, 1 => yes) # UPDATE_OS : 0/1 update OS (take a while) (0 => no, 1 => yes)
-  ​[default : 1]+# [default : 1]
 # INSTALL_APP_LANG : 0/1 install language for apps (take a while) (0 => no, 1 => yes) # INSTALL_APP_LANG : 0/1 install language for apps (take a while) (0 => no, 1 => yes)
-  ​[default : 1] +# [default : 1] 
- +
 USB_LABEL=L_LUBUNTU USB_LABEL=L_LUBUNTU
 USB_PART1_SIZE=1G USB_PART1_SIZE=1G
Ligne 693: Ligne 720:
 LIVE_USB_BOOT_QUIET=1 LIVE_USB_BOOT_QUIET=1
 ME_DEFAULT_PASSWORD=lubuntu ME_DEFAULT_PASSWORD=lubuntu
-  ​!!! Becareful : password in clear, so give a temp simple password !!!+# !!! Becareful : password in clear, so give a temp simple password !!!
 EMBED_PACKETS=''​ EMBED_PACKETS=''​
 EMBED_VNC=1 EMBED_VNC=1
 UPDATE_OS=1 UPDATE_OS=1
 INSTALL_APP_LANG=1 INSTALL_APP_LANG=1
-  + 
- +
 # ---------------------------------------------------------------------- # ----------------------------------------------------------------------
- +
 # For future version # For future version
 # #
 # DEFAULT_LIVE_USB_USER : default live session user # DEFAULT_LIVE_USB_USER : default live session user
 # NETWORK_MANAGER_ACTIVE : 0/1 indicate how to manage network (0 => ifup, 1 => NM) # NETWORK_MANAGER_ACTIVE : 0/1 indicate how to manage network (0 => ifup, 1 => NM)
-  ​[default : 0]+# [default : 0]
 # LOCALE : embed locale for keyboard, live session boot and other stuff # LOCALE : embed locale for keyboard, live session boot and other stuff
-  ​[default : FR so '​locale=fr_FR.UTF-8 console-setup/​layoutcode=fr'​+# [default : FR so '​locale=fr_FR.UTF-8 console-setup/​layoutcode=fr'​
 # LANGUAGE_SUPPORT : make apps language with the right language support # LANGUAGE_SUPPORT : make apps language with the right language support
-  ​[default : fr]+# [default : fr]
 # DATE_TIME_ZONE : synchro Time Zone (http://​askubuntu.com/​a/​594186) # DATE_TIME_ZONE : synchro Time Zone (http://​askubuntu.com/​a/​594186)
-  ​[default : Europe/​Paris]+# [default : Europe/​Paris]
 # WAITING_REBOOT_TITLE : title to display in the terminal before reboot # WAITING_REBOOT_TITLE : title to display in the terminal before reboot
-  ​[default : '​Patienter avant le redémarrage...'​] +# [default : '​Patienter avant le redémarrage...'​] 
- +
 DEFAULT_LIVE_USB_USER=lubuntu DEFAULT_LIVE_USB_USER=lubuntu
 NETWORK_MANAGER_ACTIVE=0 NETWORK_MANAGER_ACTIVE=0
Ligne 722: Ligne 749:
 DATE_TIME_ZONE=Europe/​Paris DATE_TIME_ZONE=Europe/​Paris
 WAITING_REBOOT_TITLE='​Patienter avant le redémarrage...'​ WAITING_REBOOT_TITLE='​Patienter avant le redémarrage...'​
- +
 # Embed ssh to install # Embed ssh to install
 EMBED_PACKETS="​ssh $EMBED_PACKETS"​ EMBED_PACKETS="​ssh $EMBED_PACKETS"​
- +
 # Embed VNC to install # Embed VNC to install
 if [ $EMBED_VNC -eq 1 ] ; then if [ $EMBED_VNC -eq 1 ] ; then
-    ​EMBED_PACKETS="​$EMBED_PACKETS vino x11vnc"​+ EMBED_PACKETS="​$EMBED_PACKETS vino x11vnc"​
 fi fi
- +
 # Quiet or not # Quiet or not
 if [ $LIVE_USB_BOOT_QUIET -eq 1 ] ; then if [ $LIVE_USB_BOOT_QUIET -eq 1 ] ; then
-    ​LIVE_USB_BOOT_QUIET='​quiet splash'​+ LIVE_USB_BOOT_QUIET='​quiet splash'​
 else else
-    ​LIVE_USB_BOOT_QUIET=+ LIVE_USB_BOOT_QUIET=
 fi fi
- +
 # Manage network with NM or ifup # Manage network with NM or ifup
 if [ $NETWORK_MANAGER_ACTIVE -eq 1 ] ; then if [ $NETWORK_MANAGER_ACTIVE -eq 1 ] ; then
-    ​NETWORK_MANAGER_ACTIVE=+ NETWORK_MANAGER_ACTIVE=
 else else
-    ​NETWORK_MANAGER_ACTIVE='​ip=frommedia'​+ NETWORK_MANAGER_ACTIVE='​ip=frommedia'​
 fi fi
-  + 
-# Define customized colors : http://​stackoverflow.com/​a/​5947802+# Define customized colors : http://​stackoverflow.com/​a/​5947802
 C_red='​\033[1;​31m'​ C_red='​\033[1;​31m'​
 C_blue='​\033[0;​34m'​ C_blue='​\033[0;​34m'​
Ligne 751: Ligne 778:
 C_yellow='​\033[1;​33m'​ C_yellow='​\033[1;​33m'​
 C_NC='​\033[0m'​ C_NC='​\033[0m'​
- +
 # Echoing all steps (usage : echof "​..."​ [color]) # Echoing all steps (usage : echof "​..."​ [color])
 # a=( "​$@"​ ) ... ${a[1]} because ${$2} does not work (args to array) # a=( "​$@"​ ) ... ${a[1]} because ${$2} does not work (args to array)
 # http://​stackoverflow.com/​a/​18041780 + http://​stackoverflow.com/​a/​12711837 # http://​stackoverflow.com/​a/​18041780 + http://​stackoverflow.com/​a/​12711837
 function echof () { if [ "​$2"​ ] ; then a=( "​$@"​ ) ; echo -e "​\n${a[1]}=>​ $1${C_NC}\n"​ ; else echo -e "​\n${C_yellow}=>​ $1${C_NC}\n"​ ; fi } function echof () { if [ "​$2"​ ] ; then a=( "​$@"​ ) ; echo -e "​\n${a[1]}=>​ $1${C_NC}\n"​ ; else echo -e "​\n${C_yellow}=>​ $1${C_NC}\n"​ ; fi }
-  + 
-  + 
-##############################​ PROTECT DATA #############################​ +##############################​ PROTECT DATA #############################​ 
- +
 LUC_MNT=~/​tmp/​mnt LUC_MNT=~/​tmp/​mnt
- +
 # If we give arg1 it will become DEV # If we give arg1 it will become DEV
 if [ "​$1"​ ] ; then if [ "​$1"​ ] ; then
-    ​DEV=$1+ DEV=$1
 fi fi
- +
 # If we give arg2 it will become ISO # If we give arg2 it will become ISO
 if [ "​$2"​ ] ; then if [ "​$2"​ ] ; then
-    ​ISO="​$2"​+ ISO="​$2"​
 fi fi
- +
 # Get DISK part of DEV, so /dev/sde gives sde # Get DISK part of DEV, so /dev/sde gives sde
 DISK=`echo $DEV |sed "​s/​.*\/​\([a-z]*\)$/​\1/"​` DISK=`echo $DEV |sed "​s/​.*\/​\([a-z]*\)$/​\1/"​`
- +
 # If DEV is not a real device disk # If DEV is not a real device disk
 IS_DISK=`lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT |grep ^$DISK` IS_DISK=`lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT |grep ^$DISK`
 if [ ! "​$IS_DISK"​ ] ; then if [ ! "​$IS_DISK"​ ] ; then
-    ​echo "Error : $DEV is not a valid disk !" + echo "Error : $DEV is not a valid disk !" 
-    exit 1+ exit 1
 fi fi
-  + 
-# If ISO file does not exit+# If ISO file does not exist
 if [ ! -f "​$ISO"​ ] ; then if [ ! -f "​$ISO"​ ] ; then
-    ​echo "Error : $ISO ISO file does not exist !" + echo "Error : $ISO ISO file does not exist !" 
-    exit 2+ exit 2
 fi fi
- +
 # Infos about selected device # Infos about selected device
 echo -e "​\n${C_yellow}Block device of ${C_blue}$DEV${C_NC} :" echo -e "​\n${C_yellow}Block device of ${C_blue}$DEV${C_NC} :"
 RES=`lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT |sed "​1p;/​$DISK/​!d"​` RES=`lsblk -o NAME,​TYPE,​FSTYPE,​LABEL,​SIZE,​MOUNTPOINT |sed "​1p;/​$DISK/​!d"​`
 echo -e "​${C_green}$RES${C_NC}"​ echo -e "​${C_green}$RES${C_NC}"​
- +
 mkdir -p $LUC_MNT mkdir -p $LUC_MNT
-  + 
-# For each partition we display the content+# For each partition we display the partial ​content
 for X in `echo $DEV`* for X in `echo $DEV`*
 do do
-    ​if [ $X != $DEV ] ; then + if [ $X != $DEV ] ; then 
-        echo -e "​\n${C_yellow}Partial content of ${C_blue}$X${C_NC} :" + echo -e "​\n${C_yellow}Partial content of ${C_blue}$X${C_NC} :" 
-  + 
-        if [ "​`mount |grep $X`" ] ; then + if [ "​`mount |grep $X`" ] ; then 
-            FOLDER=`mount |grep $X |cut -f 3 -d " "` + FOLDER=`mount |grep $X |cut -f 3 -d " "` 
-            CONTENT=`ls -alF $FOLDER | head` + CONTENT=`ls -alF $FOLDER | head` 
-        else + else 
-            mount $X $LUC_MNT + mount $X $LUC_MNT 
-            CONTENT=`ls -alF $LUC_MNT | head` + CONTENT=`ls -alF $LUC_MNT | head` 
-            umount -l $LUC_MNT + umount -l $LUC_MNT 
-        fi + fi 
-  + 
-        echo -e "​$CONTENT"​ + echo -e "​$CONTENT"​ 
-    fi+ fi
 done done
- +
 rmdir $LUC_MNT rmdir $LUC_MNT
-  + 
-# Confirm or not : http://​stackoverflow.com/​a/​1885534+# Confirm or not : http://​stackoverflow.com/​a/​1885534
 MSG="​\n${C_red}You are about destroying all data from ${C_blue}$DEV${C_red}"​ MSG="​\n${C_red}You are about destroying all data from ${C_blue}$DEV${C_red}"​
 echo -e "$MSG (no return is possible) !${C_NC}"​ echo -e "$MSG (no return is possible) !${C_NC}"​
 read -p "Are you sure (y/[N]) ? " -r read -p "Are you sure (y/[N]) ? " -r
 echo echo
- +
 if [[ ! $REPLY =~ ^[y]$ ]] if [[ ! $REPLY =~ ^[y]$ ]]
 then then
-    ​exit 0+ exit 0
 fi fi
- +
 # do dangerous stuff # do dangerous stuff
 #echo Destroy en cours... #echo Destroy en cours...
-  + 
-  + 
-################################​ PREPARE ################################​ +################################​ PREPARE ################################​ 
- +
 # LUC paths # LUC paths
 LUC_PATH=~/​luc LUC_PATH=~/​luc
Ligne 839: Ligne 866:
 LUC_SQUASHFS_PATH=~/​luc/​squashfs LUC_SQUASHFS_PATH=~/​luc/​squashfs
 LUC_CUSTOM_SQUASHFS_PATH=~/​luc/​custom-squashfs LUC_CUSTOM_SQUASHFS_PATH=~/​luc/​custom-squashfs
- +
 # Scripts and other stuff paths # Scripts and other stuff paths
 SCRIPTS_PATH=$LUC_LIVEUSB_PATH/​scripts SCRIPTS_PATH=$LUC_LIVEUSB_PATH/​scripts
Ligne 848: Ligne 875:
 RESET_EXT_PATH=/​cdrom/​$RESET_ROOT_PATH RESET_EXT_PATH=/​cdrom/​$RESET_ROOT_PATH
 RUNMELAST_PATH=/​home/​runmelast.sh RUNMELAST_PATH=/​home/​runmelast.sh
- +
 # Escaped string path # Escaped string path
 RUNME1ST_EXT_PATH_ESC=${RUNME1ST_EXT_PATH//​\//​\\\/​} RUNME1ST_EXT_PATH_ESC=${RUNME1ST_EXT_PATH//​\//​\\\/​}
 RUNMELAST_PATH_ESC=${RUNMELAST_PATH//​\//​\\\/​} RUNMELAST_PATH_ESC=${RUNMELAST_PATH//​\//​\\\/​}
-  + 
-# Start / End of comment and exit command : let start here and move end and exit+debug : Start / End exit to let start here and move end and exit
 #:<<​COM #:<<​COM
 #COM #COM
 #exit #exit
- +
 echof "=== PREPARE LIVE USB ===" echof "=== PREPARE LIVE USB ==="
-  + 
-echof "​PREPARE > Download dependencies"​ +echof "​PREPARE > Download dependencies"​  
-apt-get install -y syslinux mtools parted +apt-get install -y syslinux mtools parted ​squashfs-tools 
-  + 
-echof "​PREPARE > Unmount all"+echof "​PREPARE > Unmount all" ​
 umount $DEV* umount $DEV*
 umount $LUC_ISO_PATH umount $LUC_ISO_PATH
Ligne 869: Ligne 896:
 umount $LUC_SQUASHFS_PATH umount $LUC_SQUASHFS_PATH
 rm -rf $LUC_PATH rm -rf $LUC_PATH
- +
 echof "​PREPARE > MBR + partitions"​ echof "​PREPARE > MBR + partitions"​
 # man parted : http://​linux.die.net/​man/​8/​parted # man parted : http://​linux.die.net/​man/​8/​parted
Ligne 886: Ligne 913:
 parted -a cylinder "​$DEV"​ mkpart primary ext4 $USB_PART1_SIZE $USB_PART2_SIZE parted -a cylinder "​$DEV"​ mkpart primary ext4 $USB_PART1_SIZE $USB_PART2_SIZE
 mkfs.ext4 -L '​casper-rw'​ "​$DEV"​2 mkfs.ext4 -L '​casper-rw'​ "​$DEV"​2
- +
 echof "​PREPARE > Live USB Building"​ echof "​PREPARE > Live USB Building"​
- +
 echof "​PREPARE > Live USB Building > Prepare working dir skeleton"​ echof "​PREPARE > Live USB Building > Prepare working dir skeleton"​
 rm -rf $LUC_PATH rm -rf $LUC_PATH
Ligne 896: Ligne 923:
 mkdir $LUC_SQUASHFS_PATH mkdir $LUC_SQUASHFS_PATH
 mkdir $LUC_CUSTOM_SQUASHFS_PATH mkdir $LUC_CUSTOM_SQUASHFS_PATH
- +
 echof "​PREPARE > Live USB Building > Mount of USB device"​ echof "​PREPARE > Live USB Building > Mount of USB device"​
-mount "​$DEV"​1 $LUC_LIVEUSB_PATH +mount "​$DEV"​1 $LUC_LIVEUSB_PATH  
- +
 echof "​PREPARE > Live USB Building > Mount of ISO file" echof "​PREPARE > Live USB Building > Mount of ISO file"
 mount -o loop $ISO $LUC_ISO_PATH mount -o loop $ISO $LUC_ISO_PATH
- +
 echof "​PREPARE > Live USB Building > Copy all file from ISO" echof "​PREPARE > Live USB Building > Copy all file from ISO"
-# 2 errors of symlink will occur, because we can not copy symlink in FAT32 FS+# 2 errors of symlink will occur, because we can not copy symlink in FAT32 FS
 rsync -aPv --exclude '​filesystem.squashfs'​ $LUC_ISO_PATH/​ $LUC_LIVEUSB_PATH/​ rsync -aPv --exclude '​filesystem.squashfs'​ $LUC_ISO_PATH/​ $LUC_LIVEUSB_PATH/​
- +
 echof "​PREPARE > Live USB Building > Copy of squashfs filesystem"​ echof "​PREPARE > Live USB Building > Copy of squashfs filesystem"​
 rsync -aPv $LUC_ISO_PATH/​casper/​filesystem.squashfs $LUC_PATH/ rsync -aPv $LUC_ISO_PATH/​casper/​filesystem.squashfs $LUC_PATH/
- +
 # Rename isolinux folder is mandatory because SYSLINUX searches in /syslinux folder (http://​www.syslinux.org/​wiki/​index.php/​SYSLINUX#​How_do_I_Configure_SYSLINUX.3F) # Rename isolinux folder is mandatory because SYSLINUX searches in /syslinux folder (http://​www.syslinux.org/​wiki/​index.php/​SYSLINUX#​How_do_I_Configure_SYSLINUX.3F)
 mv $LUC_LIVEUSB_PATH/​isolinux/​ $LUC_LIVEUSB_PATH/​syslinux mv $LUC_LIVEUSB_PATH/​isolinux/​ $LUC_LIVEUSB_PATH/​syslinux
- +
 echof "​PREPARE > Live USB Building > Create boot configuration"​ echof "​PREPARE > Live USB Building > Create boot configuration"​
-cat > "​$LUC_LIVEUSB_PATH/​syslinux/​syslinux.cfg"​ <<EOT+cat > "​$LUC_LIVEUSB_PATH/​syslinux/​syslinux.cfg"​ <<​EOT ​
 DEFAULT live DEFAULT live
 LABEL live LABEL live
Ligne 921: Ligne 948:
   ## casper config : http://​manpages.ubuntu.com/​manpages/​trusty/​man7/​casper.7.html   ## casper config : http://​manpages.ubuntu.com/​manpages/​trusty/​man7/​casper.7.html
   ## - NETWORK_MANAGER_ACTIVE : indicate whether NM or ifup is used to manage network   ## - NETWORK_MANAGER_ACTIVE : indicate whether NM or ifup is used to manage network
-  ##    [default : ip=frommedia] +  ##   [default : ip=frommedia] 
-  ## - persistent ​: make persistent the "​casper-rw"​ partition +  ## - persistent : make persistent the "​casper-rw"​ partition 
-  ## - LIVE_USB_BOOT_QUIET : display or not Lubuntu splash no verbose +  ## - LIVE_USB_BOOT_QUIET : display or not Lubuntu splash no verbose 
-  ##    [default : quiet splash]+  ##   [default : quiet splash]
   ## - LOCALE : embed locale for keyboard, live session boot and other stuff   ## - LOCALE : embed locale for keyboard, live session boot and other stuff
-  ##    [locale=fr_FR.UTF-8 console-setup/​layoutcode=fr]+  ##   [locale=fr_FR.UTF-8 console-setup/​layoutcode=fr]
   APPEND noprompt $NETWORK_MANAGER_ACTIVE \   APPEND noprompt $NETWORK_MANAGER_ACTIVE \
    ​persistent boot=casper initrd=/​casper/​initrd.lz \    ​persistent boot=casper initrd=/​casper/​initrd.lz \
    ​$LIVE_USB_BOOT_QUIET $LOCALE    ​$LIVE_USB_BOOT_QUIET $LOCALE
 EOT EOT
- +
 # Files not used # Files not used
 rm $LUC_LIVEUSB_PATH/​syslinux/​isolinux.cfg rm $LUC_LIVEUSB_PATH/​syslinux/​isolinux.cfg
- +
 echof "​PREPARE > Live USB Building > Make `echo $DEV`1 bootable"​ echof "​PREPARE > Live USB Building > Make `echo $DEV`1 bootable"​
- +
 # We must use gfxboot.c32 file's host (https://​bugs.launchpad.net/​ubuntu/​+source/​usb-creator/​+bug/​1325801/​comments/​11) # We must use gfxboot.c32 file's host (https://​bugs.launchpad.net/​ubuntu/​+source/​usb-creator/​+bug/​1325801/​comments/​11)
 rsync -aPv /​usr/​lib/​syslinux/​gfxboot.c32 $LUC_LIVEUSB_PATH/​syslinux/​ rsync -aPv /​usr/​lib/​syslinux/​gfxboot.c32 $LUC_LIVEUSB_PATH/​syslinux/​
- +
 # Last step to make the USB bootable (`syslinux -i dev` run too) # Last step to make the USB bootable (`syslinux -i dev` run too)
 syslinux "​$DEV"​1 syslinux "​$DEV"​1
-  + 
-################################​ CUSTOMIZE ################################​ +################################​ CUSTOMIZE ################################​ 
- +
 echof "=== CUSTOMIZE LIVE USB ===" echof "=== CUSTOMIZE LIVE USB ==="
- +
 echof "​CUSTOMIZE > Extract SQUASHFS filesystem"​ echof "​CUSTOMIZE > Extract SQUASHFS filesystem"​
 mount -t squashfs -o loop $LUC_PATH/​filesystem.squashfs $LUC_SQUASHFS_PATH mount -t squashfs -o loop $LUC_PATH/​filesystem.squashfs $LUC_SQUASHFS_PATH
 rsync -aPv $LUC_SQUASHFS_PATH/​ $LUC_CUSTOM_SQUASHFS_PATH/​ rsync -aPv $LUC_SQUASHFS_PATH/​ $LUC_CUSTOM_SQUASHFS_PATH/​
- +
 echof "​CUSTOMIZE > Adding auto-trigger script on reboot"​ echof "​CUSTOMIZE > Adding auto-trigger script on reboot"​
 # Entry point to execute an external script and following the execution in a terminal # Entry point to execute an external script and following the execution in a terminal
 echo sudo lxterminal -t "'"​$WAITING_REBOOT_TITLE"'"​ \ echo sudo lxterminal -t "'"​$WAITING_REBOOT_TITLE"'"​ \
-    ​-e "bash -c \"​$RUNME1ST_EXT_PATH\"​ &" \ + -e "bash -c \"​$RUNME1ST_EXT_PATH\"​ &" \ 
-    >> $LUC_CUSTOM_SQUASHFS_PATH/​etc/​profile + >> $LUC_CUSTOM_SQUASHFS_PATH/​etc/​profile 
- +
 # Folder in which we are storing external scripts of live system # Folder in which we are storing external scripts of live system
 mkdir $SCRIPTS_PATH mkdir $SCRIPTS_PATH
- +
 echof "​CUSTOMIZE > Building off auto triggered script"​ echof "​CUSTOMIZE > Building off auto triggered script"​
 bash -c "cat > $LUC_LIVEUSB_PATH/​$RUNME1ST_ROOT_PATH"​ <<​EOF1 bash -c "cat > $LUC_LIVEUSB_PATH/​$RUNME1ST_ROOT_PATH"​ <<​EOF1
 #!/bin/bash #!/bin/bash
 ## Hint : alter this file in Live USB context only ## Hint : alter this file in Live USB context only
-  + 
-## PRE-CONFIGURED SWITCH VARS FROM PARENT+##​ PRE-CONFIGURED SWITCH VARS FROM PARENT
 EMBED_VNC=$EMBED_VNC EMBED_VNC=$EMBED_VNC
 UPDATE_OS=$UPDATE_OS UPDATE_OS=$UPDATE_OS
 INSTALL_APP_LANG=$INSTALL_APP_LANG INSTALL_APP_LANG=$INSTALL_APP_LANG
-  + 
-## Modifying network configuration,​ auto-start in boot and apply changes+##​ Modifying network configuration,​ auto-start in boot and apply changes
 ## nota : due to Network Manager removing, network will not auto-start ## nota : due to Network Manager removing, network will not auto-start
 bash -c "cat > /​etc/​network/​interfaces"​ <<​EOF1_1 bash -c "cat > /​etc/​network/​interfaces"​ <<​EOF1_1
 auto lo auto lo
 iface lo inet loopback iface lo inet loopback
- +
 iface eth0 inet static iface eth0 inet static
         address $NET_ADDRESS         address $NET_ADDRESS
Ligne 985: Ligne 1012:
 ifdown eth0 ifdown eth0
 ifup eth0 ifup eth0
- +
 # Update is asked # Update is asked
 if [ \$UPDATE_OS -eq 1 ] ; then if [ \$UPDATE_OS -eq 1 ] ; then
-    ​apt-get -y update+ apt-get -y update
 fi fi
-  + 
-## Install SSH and other asked packets+## Install SSH and other asked packets
 apt-get -y install $EMBED_PACKETS apt-get -y install $EMBED_PACKETS
- +
 ## All apps with LANGUAGE_SUPPORT is asked ## All apps with LANGUAGE_SUPPORT is asked
 ## http://​askubuntu.com/​questions/​149876/​how-can-i-install-one-language-by-command-line ## http://​askubuntu.com/​questions/​149876/​how-can-i-install-one-language-by-command-line
 if [ \$INSTALL_APP_LANG -eq 1 ] ; then if [ \$INSTALL_APP_LANG -eq 1 ] ; then
-    ​apt-get -y install \`check-language-support -l $LANGUAGE_SUPPORT\`+ apt-get -y install \`check-language-support -l $LANGUAGE_SUPPORT\`
 fi fi
-  + 
-## Date & Time Zone+## Date & Time Zone
 timedatectl set-timezone $DATE_TIME_ZONE timedatectl set-timezone $DATE_TIME_ZONE
-  + 
-## Add ME, join SUDOERS, AUTO LOGON and set DEFAULT PASSWORD+## Add ME, join SUDOERS, AUTO LOGON and set DEFAULT PASSWORD
 addgroup $ME addgroup $ME
 adduser --ingroup $ME --home /home/$ME --disabled-password -gecos "​$ME_FULL"​ $ME adduser --ingroup $ME --home /home/$ME --disabled-password -gecos "​$ME_FULL"​ $ME
Ligne 1009: Ligne 1036:
 ## Auto-logon : http://​doc.ubuntu-fr.org/​lightdm#​connexion_automatique ## Auto-logon : http://​doc.ubuntu-fr.org/​lightdm#​connexion_automatique
 sed -i "​s/​^\(autologin-user=\)$DEFAULT_LIVE_USB_USER$/​\1$ME/​g"​ \ sed -i "​s/​^\(autologin-user=\)$DEFAULT_LIVE_USB_USER$/​\1$ME/​g"​ \
-    ​/​etc/​lightdm/​lightdm.conf+ /​etc/​lightdm/​lightdm.conf
 bash -c "echo $ME:​$ME_DEFAULT_PASSWORD | /​usr/​sbin/​chpasswd"​ bash -c "echo $ME:​$ME_DEFAULT_PASSWORD | /​usr/​sbin/​chpasswd"​
- +
 # Embed VNC stuff # Embed VNC stuff
 if [ \$EMBED_VNC -eq 1 ] ; then if [ \$EMBED_VNC -eq 1 ] ; then
-  + 
-    # VNC : auto enable server desktop sharing + # VNC : auto enable server desktop sharing 
-    # http://​askubuntu.com/​a/​530196 + # http://​askubuntu.com/​a/​530196 
-    gsettings set org.gnome.Vino enabled true + gsettings set org.gnome.Vino enabled true 
-    gsettings set org.gnome.Vino prompt-enabled false + gsettings set org.gnome.Vino prompt-enabled false 
-    gsettings set org.gnome.Vino require-encryption false + gsettings set org.gnome.Vino require-encryption false 
- +
 bash -c "cat >> /​home/​$ME/​.profile"​ <<​EOF1_2 bash -c "cat >> /​home/​$ME/​.profile"​ <<​EOF1_2
- +
 # VNC : Activate distant desktop sharing # VNC : Activate distant desktop sharing
 # src : http://​adept1formatique.unblog.fr/​2013/​08/​12/​bureau-a-distance-avec-lubuntu/​ # src : http://​adept1formatique.unblog.fr/​2013/​08/​12/​bureau-a-distance-avec-lubuntu/​
Ligne 1031: Ligne 1058:
 x11vnc -rfbauth ~/​.vnc/​passwd -forever -repeat -display :0 & x11vnc -rfbauth ~/​.vnc/​passwd -forever -repeat -display :0 &
 EOF1_2 EOF1_2
- +
 fi fi
- +
 ## Useful aliases ## Useful aliases
 bash -c "cat >> /​home/​$ME/​.bashrc"​ <<​EOF1_3 bash -c "cat >> /​home/​$ME/​.bashrc"​ <<​EOF1_3
- +
 alias luc_edit_runme1st="​sudo nano $RUNME1ST_EXT_PATH"​ alias luc_edit_runme1st="​sudo nano $RUNME1ST_EXT_PATH"​
 alias luc_edit_syslinux="​sudo nano $SYSLINUX_EXT_PATH"​ alias luc_edit_syslinux="​sudo nano $SYSLINUX_EXT_PATH"​
 alias luc_reset="​sudo $RESET_EXT_PATH"​ alias luc_reset="​sudo $RESET_EXT_PATH"​
 EOF1_3 EOF1_3
- +
 ## Delete first trigger ## Delete first trigger
 sed -i "/​^sudo lxterminal -t/d" /​etc/​profile sed -i "/​^sudo lxterminal -t/d" /​etc/​profile
- +
 ## Adding last trigger ## Adding last trigger
 sed -i ":​a;​N;​s/​\nexit 0/​\n$RUNMELAST_PATH_ESC&/;​Ta"​ /​etc/​rc.local sed -i ":​a;​N;​s/​\nexit 0/​\n$RUNMELAST_PATH_ESC&/;​Ta"​ /​etc/​rc.local
-  + 
-## Last actions in session ME+## Last actions in session ME
 ## warning : this script auto delete itself in the end ## warning : this script auto delete itself in the end
 bash -c "cat > $RUNMELAST_PATH"​ <<​EOF1_4 bash -c "cat > $RUNMELAST_PATH"​ <<​EOF1_4
 #!/bin/bash #!/bin/bash
 ### Hint : alter this file in Live USB context only ### Hint : alter this file in Live USB context only
- +
 ### Definitively remove $DEFAULT_LIVE_USB_USER user/​group/​home/​sudoers/​persistance ### Definitively remove $DEFAULT_LIVE_USB_USER user/​group/​home/​sudoers/​persistance
 ### nota : usermod -g ... temporarily move user into my group, so I can remove it ### nota : usermod -g ... temporarily move user into my group, so I can remove it
Ligne 1063: Ligne 1090:
 sed -i "/​^$DEFAULT_LIVE_USB_USER:/​d"​ /etc/passwd sed -i "/​^$DEFAULT_LIVE_USB_USER:/​d"​ /etc/passwd
 sed -i "/​^$DEFAULT_LIVE_USB_USER:/​d"​ /etc/shadow sed -i "/​^$DEFAULT_LIVE_USB_USER:/​d"​ /etc/shadow
- +
 ### Delete my RUNMELAST trigger ### Delete my RUNMELAST trigger
 sed -i "/​^$RUNMELAST_PATH_ESC/​d"​ /​etc/​rc.local sed -i "/​^$RUNMELAST_PATH_ESC/​d"​ /​etc/​rc.local
- +
 ### Delete me ### Delete me
 rm -f \\\$0 rm -f \\\$0
 EOF1_4 EOF1_4
- +
 chmod +x $RUNMELAST_PATH chmod +x $RUNMELAST_PATH
- +
 reboot reboot
 EOF1 EOF1
- +
 chmod +x $LUC_LIVEUSB_PATH/​$RUNME1ST_ROOT_PATH chmod +x $LUC_LIVEUSB_PATH/​$RUNME1ST_ROOT_PATH
- +
 echof "​CUSTOMIZE > Building of 'reset all' script"​ echof "​CUSTOMIZE > Building of 'reset all' script"​
 bash -c "cat > $LUC_LIVEUSB_PATH/​$RESET_ROOT_PATH"​ <<​EOF4 bash -c "cat > $LUC_LIVEUSB_PATH/​$RESET_ROOT_PATH"​ <<​EOF4
Ligne 1089: Ligne 1116:
 echo "To reboot : sudo reboot + give password"​ echo "To reboot : sudo reboot + give password"​
 EOF4 EOF4
- +
 chmod +x $LUC_LIVEUSB_PATH/​$RESET_ROOT_PATH chmod +x $LUC_LIVEUSB_PATH/​$RESET_ROOT_PATH
- +
 echof "​CUSTOMIZE > Restore SQUASHFS filesystem"​ echof "​CUSTOMIZE > Restore SQUASHFS filesystem"​
 mksquashfs $LUC_CUSTOM_SQUASHFS_PATH \ mksquashfs $LUC_CUSTOM_SQUASHFS_PATH \
-    ​$LUC_LIVEUSB_PATH/​casper/​filesystem.squashfs -info + $LUC_LIVEUSB_PATH/​casper/​filesystem.squashfs -info 
-  + 
-  + 
-################################​ FINALIZE ################################​ +################################​ FINALIZE ################################​ 
- +
 echof "=== FINALIZE LIVE USB ===" echof "=== FINALIZE LIVE USB ==="
- +
 echof "​FINALIZE > Unmount and cleaning"​ echof "​FINALIZE > Unmount and cleaning"​
 umount $LUC_SQUASHFS_PATH umount $LUC_SQUASHFS_PATH
Ligne 1106: Ligne 1133:
 umount $LUC_ISO_PATH umount $LUC_ISO_PATH
 rm -rf $LUC_PATH rm -rf $LUC_PATH
-echof "~~~ SUCCESS ! YOUR LIVE USB IS READY TO RUN ! ~~~" $C_green+echof "​~~~ SUCCESS ! YOUR LIVE USB IS READY TO RUN ! ~~~" $C_green
 unset -f echof unset -f echof
 </​code>​ </​code>​
Ligne 1123: Ligne 1150:
   * Avoir ou pas tous les messages au démarrage : supprimer / ajouter les paramètres "quiet splash"​ dans le fichier **{/​cdrom|<​racine_live_usb>​}/​syslinux/​syslinux.cfg** (selon si le Live USB est démarré ou non) ; (re)démarrer pour prendre en compte.   * Avoir ou pas tous les messages au démarrage : supprimer / ajouter les paramètres "quiet splash"​ dans le fichier **{/​cdrom|<​racine_live_usb>​}/​syslinux/​syslinux.cfg** (selon si le Live USB est démarré ou non) ; (re)démarrer pour prendre en compte.
   * Utiliser ou pas le Network Manager au lieu de ifup : supprimer / ajouter le paramètre **"​ip=frommedia"​** dans le fichier **{/​cdrom|<​racine_live_usb>​}/​syslinux/​syslinux.cfg** (selon si le Live USB est démarré ou non) ; (re)démarrer pour prendre en compte.   * Utiliser ou pas le Network Manager au lieu de ifup : supprimer / ajouter le paramètre **"​ip=frommedia"​** dans le fichier **{/​cdrom|<​racine_live_usb>​}/​syslinux/​syslinux.cfg** (selon si le Live USB est démarré ou non) ; (re)démarrer pour prendre en compte.
-  * Modifier le script d'​installation du Live_PC ​: modifier le fichier **{/​cdrom|<​racine_live_usb>​}/​scripts/​runme1st_from_ext.sh** (selon si le Live USB est démarré ou non) ; ne pas oublier de réinitialiser (par défaut le script n'est plus déclenché après la première installation) et à (re)démarrer.+  * Modifier le script d'​installation du PC-LIVE ​: modifier le fichier **{/​cdrom|<​racine_live_usb>​}/​scripts/​runme1st_from_ext.sh** (selon si le Live USB est démarré ou non) ; ne pas oublier de réinitialiser (par défaut le script n'est plus déclenché après la première installation) et à (re)démarrer.
   * Réinitialiser (attention : contenu de la persistance perdu) : Live USB éteint il suffit de monter et de supprimer le contenu de la partition **casper-rw**,​ si le Live USB est démarré et a été construit avec L.U.C., il suffit d'​exécuter le script **sudo /​cdrom/​scripts/​reset.sh** (redémarrage nécessaire avec le mot de passe configuré dans **ME_DEFAULT_PASSWORD**)   * Réinitialiser (attention : contenu de la persistance perdu) : Live USB éteint il suffit de monter et de supprimer le contenu de la partition **casper-rw**,​ si le Live USB est démarré et a été construit avec L.U.C., il suffit d'​exécuter le script **sudo /​cdrom/​scripts/​reset.sh** (redémarrage nécessaire avec le mot de passe configuré dans **ME_DEFAULT_PASSWORD**)
  
Ligne 1136: Ligne 1163:
 Donc, là je n'ai testé que Lubuntu. Il faudra vérifier / adapter les scripts runme1st_from_ext.sh et reset.sh qui sont dédiés à Lubuntu. Donc, là je n'ai testé que Lubuntu. Il faudra vérifier / adapter les scripts runme1st_from_ext.sh et reset.sh qui sont dédiés à Lubuntu.
  
-==== PC-Builder ​autre que Ubuntu ==== +==== PC-BUILDER ​autre que Ubuntu ==== 
-Si PC-Builder ​n'est par Debian like, je pense qu'il faudra tout adapter. En particulier,​ toutes les commandes apt-get.+Si PC-BUILDER ​n'est par Debian like, je pense qu'il faudra tout adapter. En particulier,​ toutes les commandes apt-get.
  
-==== PC-Builder ​sous Windows ====+==== PC-BUILDER ​sous Windows ====
 Alors là tout est à faire :-D, mais peut être qu'en Power Shell ce n'est pas si compliqué et ça permettrait de tout scripter. Alors là tout est à faire :-D, mais peut être qu'en Power Shell ce n'est pas si compliqué et ça permettrait de tout scripter.
  
Ligne 1163: Ligne 1190:
  
 ==== Pistes à suivre (ou pas :) ) ? ==== ==== Pistes à suivre (ou pas :) ) ? ====
-  * Tester sous la dernière version LTS 
   * Résoudre les problèmes connus   * Résoudre les problèmes connus
   * Etudier le processus de boot du système Live ou système normal   * Etudier le processus de boot du système Live ou système normal
-  * Comprendre pourquoi il faut copier gfxboot.c32 de PC-Builder+  * Comprendre pourquoi il faut copier gfxboot.c32 de PC-BUILDER
   * Epurer tous les fichiers dont on n'a pas besoin pour le boot, pour créér un système minimal   * Epurer tous les fichiers dont on n'a pas besoin pour le boot, pour créér un système minimal
   * Que se passe-t-il lors d'une mise à jour du système ? Du noyau ?   * Que se passe-t-il lors d'une mise à jour du système ? Du noyau ?
Ligne 1186: Ligne 1212:
  
 Voilou, merci de m'​avoir lu et j'​espère que mon travail vous sera utile. Voilou, merci de m'​avoir lu et j'​espère que mon travail vous sera utile.
 +
 +===== Historique =====
 +
 +  * v_1_2 (22/04/15) :
 +    * modifications mineures
 +  * v_1_1 (17/04/15) :
 +    * modifications mineures, ​
 +    * test actualisé Ubuntu 14.04 LTS 64 bits, 
 +    * ajout de la rubrique "​Systèmes supportés"​
 +  * v_1_0 (14/04/15) : début de l'​aventure ;-)
  
 ---- ----
-//​Contributeurs principaux : [[:​utilisateurs:​lenainjaune]].//​+//​Contributeurs principaux : [[:​utilisateurs:​lenainjaune|lenainjaune]].//​ 
 + 
 +Version : 1.2
  
-Version : 1.0 +Date de version : 22/04/15
-Date de version : 14/04/15+