USB Live¶
- Créer les partitions:
- 1ere partition de type fat32 amorçable
- 2° partition de type ext2/3 ayant comme label "home-rw"
- Copie des données sur la 1ere partition:
cd /media/disk rsync -avP /cdrom/* .
- installer syslinux sur la partition de la clé, créer son fichier de conf et copier les fichiers isolinux/syslinux
cp isolinux/* . syslinux -f -s /dev/sdb1
et si la clé n'est toujours pas bootable, installer le mbr:
install-mbr /dev/sdb
Home persistant¶
- Si on créé sur la clé usb une 2° partition "home-rw" celle-ci se retrouve montée automatiquement en /home !
- Modifier le fichier text.cfg et/ou syslinux.cfg pour ajouter l'option "persistent" au boot
default live label live menu label ^Démarrer le système sur la CleUSB kernel /casper/vmlinuz append file=/cdrom/preseed/ubuntu.seed boot=casper persistent initrd=/casper/initrd.gz quiet splash --
Et c'est tout, le /home sera monté avant la création des comptes utilisateurs et de ce fait les adduser se font sur la partie persistante de la clé.
#######
Ajout Stéphane HAYS :
Souci d'écriture sous Linux des clefs en fat32,
Solution => avec Windows, vérifier le disque et réparer automatiquement, puis défragmenter la clef.
je ne sait pas pourquoi mais ça règle les problèmes d'écriture sur la clef en Fat depuis Linux.
cf : http://doc.ubuntu-fr.org/usb-creator
Automatisation "serveur de déploiement usb"¶
Il est possible à partir d'un poste ubuntu 10.04 LTS (et pas suivantes, le syslinux n'est pas compatible) de faire ceci. Il suffit ensuite de connecter une clé USB et hop la duplication se lance et ouvre une popup sur l'interface graphique si on a fait un xhost + pour permettre aux scripts root d'ouvrir une console graphique:
- /etc/udev/rules.d/90-local.rules
ACTION=="add",SUBSYSTEM=="block", ENV{ID_MODEL}=="Flash_Disk", RUN+="/home/moi/abuledusb_duplicator.sh %k", ENV{GENERATED}="1"
- /home/moi/abuledusb_duplicator.sh
#!/bin/bash # abuledusb duplicator #image=/home/moi/abuledusb.iso #nom_usb=«abuledusb» #umount /media/USB* #for disk in $(ls -d /dev/sd* |grep -v sda |grep -v sda1 |grep -v sda2 |grep -v sda3 |grep -v sdb1) #do #sudo dd if=$image of=$disk #done # Renommer les cles USB Attention il faut le paquet mtools #for lect in $(ls -d /dev/sd*) #do #sudo mlabel -i $lect ::$nom_usb #umount $lect #done partclone=/home/moi/partclone.restore parttable=/home/moi/cle-usb-live/sfdisk.dump_stgermain imageA=/home/moi/cle-usb-live/sdd1.img imageB=/home/moi/cle-usb-live/sdd2.img periph="${1}" log=/tmp/ryxeo.log export DISPLAY=:0.0 #on a le signal sur une partition on cherche si ca se termine par 1...9 TESTPART=`echo ${periph} | grep -E '[0-9]$'` if [ -n "${TESTPART}" ]; then echo "On a le signal sur une partition ${periph}" >> ${log} umount /dev/${periph} else echo "${periph} : On a le signal sur un peripherique ${periph}" >> ${log}-${periph} #on a le signal sur le peripherique sfdisk /dev/${periph} < ${parttable} echo "${periph} : sfdisk termine" >> ${log}-${periph} if [ -e /dev/${periph}1 ]; then echo "${periph} : partclone (1) lance ... regardez le ficher log ${log}-${periph} ..." >> ${log}-${periph} echo "" >> ${log}-${periph} /usr/bin/xterm -e "tail -f ${log}-${periph}" & ${partclone} -s ${imageA} -O /dev/${periph}1 2>>${log}-${periph} umount /dev/${periph}1 syslinux /dev/${periph}1 echo "${periph} : partclone (1) termine" >> ${log}-${periph} else echo "${periph} : erreur partclone (1) non fait" >> ${log}-${periph} fi if [ -e /dev/${periph}2 ]; then echo "${periph} : partclone (2) lance ... regardez le ficher log ${log}-${periph} ..." >> ${log}-${periph} ${partclone} -s ${imageB} -O /dev/${periph}2 2>>${log}-${periph} umount /dev/${periph}2 echo "${periph} : partclone (2) termine" >> ${log}-${periph} else echo "${periph} : erreur partclone (2) non fait" >> ${log}-${periph} fi echo "${periph} : termine" >> ${log}-${periph} #ding dong eject fi