Projet

Général

Profil

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
Redmine Appliance - Powered by TurnKey Linux