Si vous cherchez un tutoriel sur l'usb live, veuillez vous reporter à https://doc.ubuntu-fr.org/live_usb.
Si vous cherchez un tutoriel sur l'installation véritable sur disque externe (ou sur clef usb ou sur carte mémoire), veuillez vous reporter à https://doc.ubuntu-fr.org/tutoriel/installation_sur_disque_usb.
Si vous désirez confectionner une live personnalisée sur la base de votre système installé, veuillez vous reporter à https://doc.ubuntu-fr.org/remastersys.
L'objectif de cette page est de vous permettre de construire un système linux/ubuntu complet qui est l'image du système que vous utilisez actuellement sur votre ordinateur principal. Ce système sera installé sur un disque dur connecté via un port USB. Il est possible de trouver des disques USB taille 2"1/2 auto-alimentés. Ces disques sont pour les plus petits d'un cout inférieur à 50-60E et permettent de construire un environnement Linux portable sur tout ordinateur tout comme les CD dits live. Cette configuration avec un disque dur permet :
Les contraintes à l'utilisation :
La fabrication du système Live USB Disk passe par :
grub-install
,/etc/fstab
), en utilisant uniquement les ID des partitions (commande vol_id
). Ce système permet de monter les partitions sans encombre, quelque soit les disques existants sur le système hote.Pour le reste toute latitude est laissée :
/home
pour les données utilisateurs,data
) en NTFS pour échanges de fichier avec le monde Windows.Voici les commandes de base :
fdisk
pour le partitionnement,grub-install –recheck –root-directory=/mnt/live-linux/ /dev/hdb
: mise en place du MBR sur le disque USB,chroot /mnt/live-usb
: pour aller modifier votre système Linux,mount –bind /dev /mnt/live-usb/dev/
; permet de monter les pseudo filesystemes nécessaire a certains type d'opération ; on peut l'utiliser pour /proc, /dev, /sys …vol_id /dev/sdb1
: permet d'afficher les ID des partitions ; ce seront ces ID qui seront mis en place dans le fichiers des points de montage ( /etc/fstab), sur le disque USB ; attention de ne pas vous tromper …Il faudra aussi agir sur les fichiers de configuration du système live :
/boot/grub/menu.lst
, /boot/grub/device.map
/etc/initramfs-tools/conf.d/resume
: permet de décrire l'emplacement ou le système met en place l'hibernation ; mettre l'ID de la partition de swap ; suivi de update-initramfs -u
pour regénérer l'image initramfs.Les plus expérimentés n'auront pas besoin de plus d'éléments, pour les autres, je vais mettre en place une procédure plus complète. Ceci nécessite de refaire complètement la procédure, ce qui prend pas mal de temps. A planifier …
Le système contiendra :
fdisk
et de type ext3
.attention ; cette procédure doit être validée (et revalidée) ; le principe général est bon, mais nécessite probablement des adaptations.
src=/dev/sda5 src_home=/dev/sda7 dst=/dev/sdb # disque destination dst_root=/dev/sdb1 # partition racine dst_data=/dev/sdb7 # partition de données (FAT32) ; optionnelle dst_home=/dev/sdb6 # parition /home ; optionnelle dst_swap=/dev/sdb5 # swap ; optionnel src_swap=/dev/sda6 # swap source ; optionnel
* lister les partitions du disque destination :
root@ubuntu-intrepid:~# fdisk -l $dst Disque /dev/sdb: 160.0 Go, 160041885696 octets 255 heads, 63 sectors/track, 19457 cylinders Units = cylindres of 16065 * 512 = 8225280 bytes Identifiant disque: 0x46383580 Périphérique Amorce Début Fin Blocs Id Système /dev/sdb1 * 1 1216 9767488+ 83 Linux # / /dev/sdb2 1217 1824 4883760 83 Linux # autre système /dev/sdb4 1825 19457 141637072+ 5 Extended # partition étendue /dev/sdb5 1825 2067 1951866 82 Linux swap / Solaris # swap /dev/sdb6 2068 9362 58597056 83 Linux # /home /dev/sdb7 9363 19457 81088056 c W95 FAT32 (LBA) # /data (pour windows et linux)
root@ubuntu-intrepid:~# mount | grep $dst /dev/sdb5 on /media/disk type ext3 (rw,nosuid,nodev,uhelper=hal) /dev/sdb1 on /media/disk-1 type ext3 (rw,nosuid,nodev,uhelper=hal)
mkfs.ext3 ${dst_root} # racine1 mkfs.ext3 ${dst}2 # racine2 mkfs.ext3 ${dst_home} # /home mkswap ${dst_swap} # le swap mkfs.vfat $dst_data # partition FAT32 pour échange données windows - linux
mount ${src} /mnt/src mount $dst_root /mnt/dst cp -rp /mnt/src/* /mnt/dst/
id_dst=`vol_id --uuid $dst_root` id_src=`vol_id --uuid $src` sed --in-place=.sav -e "s#$id_src#$id_dst#" "-es#${src}#${dst_root}#" /mnt/dst/etc/fstab
id_dst=`vol_id --uuid $dst_home` id_src=`vol_id --uuid $src_home` sed --in-place=.sav -e "s#$id_src#$id_dst#" "-es#${src_home}#${dst_home}#" /mnt/dst/etc/fstab * swap
id_dst=`vol_id --uuid $dst_swap` id_src=`vol_id --uuid $src_swap` sed --in-place=.sav -e "s#$id_src#$id_dst#" "-es#${src_swap}#${dst_swap}#" /mnt/dst/etc/fstab
sed --in-place=.sav -e "s#$id_src#$id_dst#" /mnt/dst/etc/initramfs-tools/conf.d/resume mount --bind /proc /mnt/dst/proc mount --bind /dev /mnt/dst/dev mount --bind /sys /mnt/dst/sys chroot /mnt/dst/ update-initramfs -u mount $dst_home /mnt/dst/home cp -rp /home /mnt/dst/home
grub-install --recheck --root-directory=/mnt/dst/ $dst Probing devices to guess BIOS drives. This may take a long time. Due to a bug in xfs_freeze, the following command might produce a segmentation fault when /mnt/dst//boot/grub is not in an XFS filesystem. This error is harmless and can be ignored. xfs_freeze: specified file ["/mnt/dst//boot/grub"] is not on an XFS filesystem Installing GRUB to /dev/sdb as (hd1)... Installation finished. No error reported. This is the contents of the device map /mnt/dst//boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb
root@ubuntu-intrepid:/mnt/dst# cat /mnt/dst/boot/grub/device.map (fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb
# probablement pas une très bonnée idée ; voir commentaires ci-dessous. # sed --in-place=.sav -e "s#(hd0,#(hd1,#g" /mnt/dst/boot/grub/menu.lst
id_dst=`vol_id --uuid $dst_root` sed --in-place=.sav -e"s#root=.* #root=UUID=${id_dst} #" /mnt/dst/boot/grub/menu.lst
cd / umount /mnt/src /mnt/dst/home /mnt/dst/sys /mnt/dst/proc /mnt/dst/dev /mnt/dst
$dst_*
sont positionnées et déclencher les actions associées si nécessaire,à la place de vol-id il faut utiliser blkid pour les vouveaux systèmes. est ce que tu peux afficher la configuration de ta machine linux.