Salut,
Vous êtes en quêtes du saint graal, autrement dit, pas là par hasard, je ne ferai donc pas l’amalgame de la persistance.
J’éviterai le blabla autant que possible, toutefois si vous avez des questions, des commentaires et/ou des retours (surtout), n’hésitez pas.
Les .iso que j’ai testé sont issus des dépôts officiels.
[ul][li]http://cdimage.debian.org/debian-cd/current-live/i386/iso-hybrid/[/li]
[li]http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/[/li][/ul]
Soit :
[13:23:05]:~$ ls -la /media/telecharge-iso/
total 24K
[...]
debian-live-7.6.0-i386-standard.iso
debian-live-7.6.0-i386-kde-desktop.iso
debian-live-7.6.0-i386-lxde-desktop.iso
debian-live-7.6.0-i386-xfce-desktop+nonfree.iso*
debian-live-7.6.0-i386-xfce-desktop.iso
[...]
[13:23:12]:~$
- Reportez vous à ce (très court) commentaire.
Entrons dans le vif du sujet.
Ces paquets sont requis.
# aptitude install p7zip-full gparted gksu parted mbr dosfstools syslinux squashfs-tools
Identifiez très clairement votre clé à l’aide de [mono]# fdisk -l[/mono] ou [mono]# parted -l[/mono] ou encore [mono]gparted[/mono].
Nous aurons besoin de deux partitions primaires.
[mono]/dev/sdb1 en fat32
/dev/sdb2 en ext4[/mono]
En option : [mono]/dev/sdb3[/mono] en [mono]swap[/mono], à vous de voir.
Le partitionnement s’effectuera depuis parted.
Bien évidemment , vous adapterez la taille des partitions en fonction de votre clé.
[code][11:16:55] ~ # parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
(parted) mkpart primary fat32 1 4096M
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4096MB 4095MB primary lba
(parted) mkpart primary ext4 4096M 6640M
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4096MB 4095MB primary lba
2 4096MB 6640MB 2544MB primary
(parted) mkpart primary linux-swap 6640M 7.28G
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4096MB 4095MB primary lba
2 4096MB 6640MB 2544MB primary
3 6640MB 7812MB 1172MB primary
(parted) set 1 boot on
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4096MB 4095MB primary boot, lba
2 4096MB 6640MB 2544MB primary
3 6640MB 7812MB 1172MB primary
(parted) quit
Information: You may need to update /etc/fstab.
[11:24:22] ~ #[/code]
Pour les utilisateurs de [mono]gparted[/mono], voyez sur la toile, toutefois n’oubliez pas la gestion des drapeaux.
Sélectionnez > [mono]/dev/sdb1[/mono] > [mono]Gérer les drapeaux[/mono] et cochez les cases [mono]boot[/mono] et [mono]lba[/mono].
[11:24:45] ~ # /sbin/mkdosfs -n live /dev/sdb1
mkdosfs 3.0.13 (30 Jun 2012)
[11:24:54] ~ #
[code][11:24:59] ~ # /sbin/mkfs.ext4 -L persistence /dev/sdb2
mke2fs 1.42.5 (29-Jul-2012)
Étiquette de système de fichiers=persistence
[…]
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912
Allocation des tables de groupe : complété
Écriture des tables d’i-noeuds : complété
Création du journal (16384 blocs) : complété
Écriture des superblocs et de l’information de comptabilité du système de
fichiers : complété
[11:25:34] ~ # [/code]
[11:26:09] ~ # mkswap /dev/sdb3
Setting up swapspace version 1, size = 1144828 KiB
no label, UUID=77258852-f78c-4efa-977d-fe66d445e735
[11:26:26] ~ #
[code][11:27:16] ~ # parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) print
Model: Verbatim (scsi)
Disk /dev/sdb: 7812MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4096MB 4095MB primary fat32 boot, lba
2 4096MB 6640MB 2544MB primary ext4
3 6640MB 7812MB 1172MB primary linux-swap(v1)
(parted) quit
[11:27:34] ~ #[/code]
N’ayant pas (plus) suffisamment d’espace sur ma machine, je me suis créé un espace de stockage et de travail sur un disque externe, ici [mono]/dev/sdc6[/mono].
[code]# mount -t ext4 /dev/sdc6 /media/
cd /media/
mkdir -p telecharge-iso/debian-live-7.6.0-i386-kde-desktop.iso/
mkdir squashfs-live-7.6.0-i386-kde-desktop/
mkdir -p filesystem-squashfs/live-7.6.0-i386-kde-desktop/[/code]
[13:08:54] ~ # ls -la /media/
total 36K
drwx------ 8 loreleil loreleil 4,0K 2014-08-05 16:36 telecharge-iso
drwx------ 5 root root 4,0K 2014-08-04 17:47 filesystem-squashfs
[...]
drwx------ 3 root root 4,0K 2014-08-03 12:31 squashfs-live-7.6.0-i386-lxde-desktop
drwxr-xr-x 21 root root 4,0K 2014-07-23 21:32 squashfs-live-7.6.0-i386-xfce-desktop+nonfree
drwxr-xr-x 21 root root 4,0K 2014-07-23 19:21 squashfs-live-7.6.0-i386-kde-desktop
drwxr-xr-x 21 root root 4,0K 2014-07-23 18:54 squashfs-live-7.6.0-i386-standard
[13:09:07] ~ #
Construction des répertoires en [mono]/mnt[/mono], montage des partitions [mono]sdb1[/mono] et [mono]sdb2[/mono] en lieu et place puis extraction de l’iso, via p7zip.
[code]# mkdir /mnt/live
mkdir /mnt/persistence[/code]
[13:37:28] ~ # mount /dev/sdb1 /mnt/live
[13:37:35] ~ # mount /dev/sdb2 /mnt/persistence
[13:37:42] ~ # cd /mnt/live
[13:37:48] /mnt/live #
[code][13:38:00] /mnt/live # 7z x /media/telecharge-iso/debian-live-7.6.0-i386-kde-desktop.iso/debian-live-7.6.0-i386-kde-desktop.iso
7-Zip 9.20 Copyright © 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=fr_FR.UTF-8,Utf16=on,HugeFiles=on,1 CPU)
Processing archive: /media/telecharge-iso/debian-live-7.6.0-i386-kde-desktop.iso/debian-live-7.6.0-i386-kde-desktop.iso
Extracting .disk
[…]
Everything is Ok
Folders: 247
Files: 421
Size: 1375292726
Compressed: 1378910208
[13:45:07] /mnt/live # [/code]
Modifications des options du noyau en [mono]live.cfg[/mono] et [mono]isolinux.cfg[/mono] afin de mettre en place la persistance et la francisation dès le premier boot.
N’oubliez pas la tabulation avant le paramètre [mono]append …[/mono]
[13:46:49] /mnt/live # nano -c isolinux/live.cfg
[code][13:49:19] /mnt/live # cat isolinux/live.cfg
label live-486
menu label ^Live (486)
menu default
linux /live/vmlinuz1
initrd /live/initrd1.img
append boot=live config quiet splash
append boot=live persistence noeject config quiet splash locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=latin9 timezone=Europe/Paris
label live-486-failsafe
menu label ^Live (486 failsafe)
linux /live/vmlinuz1
initrd /live/initrd1.img
append boot=live config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
label live-686-pae
menu label ^Live (686-pae)
linux /live/vmlinuz2
initrd /live/initrd2.img
append boot=live config quiet splash
append boot=live persistence noeject config quiet splash locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=latin9 timezone=Europe/Paris
label live-686-pae-failsafe
menu label ^Live (686-pae failsafe)
linux /live/vmlinuz2
initrd /live/initrd2.img
append boot=live config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
[13:49:31] /mnt/live #[/code]
Nous imposerons (à vous de voir) un [mono]timeout[/mono] d’une valeur de [mono]290[/mono], soit 29 secondes de battement avant la sélection par défaut.
[13:50:01] /mnt/live # nano -c isolinux/isolinux.cfg
[13:50:43] /mnt/live # cat isolinux/isolinux.cfg
include menu.cfg
default vesamenu.c32
prompt 0
timeout 290
[13:50:53] /mnt/live #
Montez le fichier [mono]filesystem.squashfs[/mono] en lecture seule (ici en [mono]/home/user/prépa_squashfs-live-7.6.0-i386-lxde-desktop/[/mono] … à vous de voir) dont vous ferez une copie à l’emplacement de votre choix. (ici en [mono]/media/squashfs-live-7.6.0-i386-kde-desktop/[/mono])
[13:56:52] /mnt/live # mount -t squashfs -o loop live/filesystem.squashfs /home/loreleil/prépa_squashfs-live-7.6.0-i386-lxde-desktop/
mount: warning: /home/loreleil/prépa_squashfs-live-7.6.0-i386-lxde-desktop/ seems to be mounted read-only.
[13:57:07] /mnt/live #
Prenez garde à la syntaxe (point et slash).
[14:06:11] /mnt/live # cp -a /home/loreleil/prépa_squashfs-live-7.6.0-i386-lxde-desktop/. /media/squashfs-live-7.6.0-i386-kde-desktop/
[14:19:42] /mnt/live #
À présent, vous pouvez supprimer le fichier [mono]filesystem.squashfs[/mono] en [mono]/mnt/live/live/[/mono].
Ceci dans le but de le reconstruire après avoir corrigé un bug réseau et porter quelques petites modifications personnels.
[14:22:28] /mnt/live # ls -la live/filesystem.squashfs
-rwxr-xr-x 1 root root 1187889152 juil. 23 19:30 live/filesystem.squashfs
[14:22:33] /mnt/live #
[14:22:38] /mnt/live # rm -i live/filesystem.squashfs
rm : supprimer fichier « live/filesystem.squashfs » ? y
[14:22:52] /mnt/live #
Nous allons à présent [mono]chrooter[/mono] le répertoire [mono]/media/squashfs-live-7.6.0-i386/[/mono] afin de corriger ce Bug#724605
Bug, que vous ne rencontrerez pas lors du premier boot de votre live-USB.
Un démarrage sur une autre machine et votre accès au réseau sera Hors Service, suite à ce dernier.
[14:27:58] /mnt/live # mount --bind /dev /media/squashfs-live-7.6.0-i386-kde-desktop/dev
[14:28:31] /mnt/live # mount --bind /dev/pts /media/squashfs-live-7.6.0-i386-kde-desktop/dev/pts
[14:28:38] /mnt/live # mount --bind /dev/shm /media/squashfs-live-7.6.0-i386-kde-desktop/dev/shm
[14:28:46] /mnt/live # mount --bind /sys /media/squashfs-live-7.6.0-i386-kde-desktop/sys
[14:28:53] /mnt/live # mount --bind /run /media/squashfs-live-7.6.0-i386-kde-desktop/run
[14:29:00] /mnt/live # mount -t proc /proc /media/squashfs-live-7.6.0-i386-kde-desktop/proc
[14:29:13] /mnt/live # chroot /media/squashfs-live-7.6.0-i386-kde-desktop/
root@pc-2-loreleil:/#
root@pc-2-loreleil:/#
root@pc-2-loreleil:/# ls -l /lib/live/boot
total 144
[...]
-rwxr-xr-x 1 root root 4562 Feb 14 2013 9990-networking.sh
[...]
root@pc-2-loreleil:/#
Correction de la coquille en ligne 57 [mono]DEVICE=${device##/}[/mono] que l’on corrige/remplace par [mono]ETHDEVICE=${device##/}[/mono]
Une fois de plus, respectez les tabulations.
root@pc-2-loreleil:~# nano -c /lib/live/boot/9990-networking.sh
Vous pouvez utiliser les raccourcis ([mono]nano[/mono]) suivants : [mono]^C + ^T[/mono] : 57
Notes : ci-dessous, des modif perso.
root@pc-2-loreleil:~# nano -c /etc/ssh/sshd_config
root@pc-2-loreleil:~# nano -c /etc/apt/sources.list
root@pc-2-loreleil:~# nano -c /etc/apt/apt.conf
À ce stade, évitez (recommander) d’installer et de lancer une mise à jour, faites cela après le premier boot.
En effet, la prise en compte des [mono]locales[/mono] nécessitent un premier démarrage.
Certes des erreurs non bloquantes, mais tant qu’a faire …
Démontez et quittez proprement le chroot.
root@pc-2-loreleil:~# mount
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=175443,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=141616k,mode=755)
/proc on /proc type proc (rw,relatime)
root@pc-2-loreleil:~#
root@pc-2-loreleil:~# umount /proc
root@pc-2-loreleil:~# umount /run
root@pc-2-loreleil:~# umount /sys
root@pc-2-loreleil:~# umount /dev/pts
root@pc-2-loreleil:~# umount /dev
root@pc-2-loreleil:~#
root@pc-2-loreleil:~# mount
root@pc-2-loreleil:~#
root@pc-2-loreleil:~# exit
exit
[14:42:34] /mnt/live #
Placez vous dans le répertoire où vous avez copié le fichier [mono]filesystem.squashfs[/mono].
[14:47:43] /mnt/live # cd /media/squashfs-live-7.6.0-i386-kde-desktop/
[14:47:49] /media/squashfs-live-7.6.0-i386-kde-desktop #
Nous allons reconstruire ce fichier, je le garde au chaud sur mon dd externe et le copierai en lieu et place.
Vous pouvez le reconstruire directement en [mono]/mnt/live/live/[/mono].
Il vous suffira de modifier le répertoire de destination comme ceci : [mono]# mksquashfs . /mnt/live/live/filesystem.squashfs[/mono]
Notes : vous avez la possibilité de rendre [mono]mksquashfs[/mono] plus bavard, avec l’option [mono]-info[/mono] ([mono]…/filesystem.squashfs -info[/mono]), par curiosité ?
[14:50:07] /media/squashfs-live-7.6.0-i386-kde-desktop # mksquashfs . /media/filesystem-squashfs/live-7.6.0-i386-kde-desktop/filesystem.squashfs
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /media/filesystem-squashfs/live-7.6.0-i386-kde-desktop/filesystem.squashfs, block size 131072.
[========== [...] ====================\] 108973/108973 100%
Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
[...]
Number of gids 25
[...]
haldaemon (114)
staff (50)
libuuid (101)
[15:34:31] /media/squashfs-live-7.6.0-i386-kde-desktop #
Je copie le fichier [mono]filesystem-squashfs[/mono] en /mnt/…
[15:35:02] ~ # cp -a /media/filesystem-squashfs/live-7.6.0-i386-kde-desktop/filesystem.squashfs /mnt/live/live/
[15:38:39] ~ # chmod 755 /mnt/live/live/filesystem.squashfs
Rendons la clé USB bootable et modifions l’appellation du répertoire et fichiers [mono]isolinux[/mono].
[15:39:01] /media/squashfs-live-7.6.0-i386-kde-desktop # cd -
/mnt/live
[15:39:05] /mnt/live #
[15:39:06] /mnt/live # /sbin/install-mbr /dev/sdb
[15:39:10] /mnt/live # syslinux -i /dev/sdb1
[15:39:17] /mnt/live # mv isolinux syslinux
[15:39:23] /mnt/live # mv syslinux/isolinux.cfg syslinux/syslinux.cfg
[15:39:31] /mnt/live # mv syslinux/isolinux.bin syslinux/syslinux.bin
Persistance du répertoire [mono]/home[/mono].
[15:40:38] /mnt/live # cd /mnt/persistence/
[15:40:45] /mnt/persistence #
[15:40:47] /mnt/persistence # echo / union > persistence.conf
[15:40:54] /mnt/persistence #
On démonte, proprement.
[15:45:14] /mnt/persistence # umount /home/loreleil/prépa_squashfs-live-7.6.0-i386-lxde-desktop
[15:45:22] /mnt/persistence # umount /media
[15:45:44] /mnt/persistence # cd
[15:45:47] ~ # umount /mnt/persistence
[15:45:58] ~ # umount /mnt/live
[15:46:04] ~ #
Au premier boot, aucun mot de passe ne vous est demandé.
Pour info, celui de l’utilisateur : [mono]user[/mono] est [mono]live[/mono].
La première chose à faire (à mon avis … ) et de changer celui-ci et d’en attribuer un à [mono]root[/mono].
user@debian ~:$ sudo -s
root@debian # passwd user
root@debian # passwd
root@debian # su - user
À présent, tester votre réseau.
user@debian ~:$ ping -c3 google.fr
Des mises à jour s’imposent.
user@debian ~:$ su -
root@debian # aptitude update && aptitude upgrade
Source :
vleeuwen.net/2014/01/create- … lash-drive
Bug#724605 osdir.com/ml/debian-live/2013-09/msg00077.html
Discussions :
debian-live-persistante-connexion-au-net-de-n-importe-ou-t49184.html
question-subsidiaire-sur-clef-usb-boutable-t49158-25.html
live-build-persistent-oui-mais-pour-une-seule-machine-t41724.html?hilit=live%20usb%20persistent
live-build-integration-d-une-partition-swap-realisable-t41716.html
Bon vent.