URL: https://linuxfr.org/users/andrianarivony/journaux/installer-linux-en-copiant Title: Installer Linux en copiant Authors: ZeroHeure Date: 2017年09月27日T20:37:29+02:00 License: CC By-SA Tags: uuid Score: 33 On n'a pas toujours une distribution sous la main pour réinstaller Linux (ou tout autre Unix, comme la famille BSD) sur un nouveau disque dur. Or c'est très facile et très rapide d'installer un système Unix en se contentant de copier les fichiers d'une autre installation. Ça doit faire 25 ans que je ne l'avais pas fait, c'est l'occasion d'écrire un mémo pour le retrouver dans Google ! Branchons le nouveau disque et démarrons sur l'ancien ! Pour faire simple ici, je partitionne le nouveau disque en deux : une partition de swap et tout dans le même système de fichier. Je place [la partition de swap à la fin du disque](http://zeroheure.info/quelques-usages-du-swap-et-leurs-besoins/) et j'active la partition du système de fichier (on la rend bootable). # Copier les fichiers - Créer le système de fichier et le swap sans oublier de vérifier l'état du disque (noter les UUID ou les obtenir plus tard avec `lsblk -f` ou `blkid`). Monter le système de fichiers dans /mnt. - Tout copier, sauf /proc /sys /dev /run et /mnt, avec `~# cp -a source /mnt/` ou bien `~# cp -a -t /mnt/ source` qui est plus pratique (ou avec `rsync` qui a beaucoup d'avantages). - Créer /mnt/proc /mnt/sys /mnt/dev /mnt/run et /mnt/mnt (vides) - Voir [la doc Linux From Scratch](http://www.fr.linuxfromscratch.org/view/lfs-systemd-stable/chapter06/kernfs.html) pour le remplissage de /dev : ```bash ~# mknod -m 600 /mnt/dev/console c 5 1 ~# mknod -m 666 /mnt/dev/null c 1 3 ~# mount -v --bind /dev /mnt/dev ``` - Refaire `/mnt/etc/fstab` avec les UUID, il vaut mieux éviter les /dev parce que l'ordre des périphérique pourrait schanger quand on enlèvera l'ancien disque. # Installer le chargeur de démarrage (bootloader) J'installe GRUB, la procédure est identique avec les autres. Il faut le faire depuis le nouveau système de fichier, en changeant la racine pour /mnt (chroot). - Monter les systèmes de fichiers virtuels : ```bash ~# mount -vt devpts devpts /mnt/dev/pts -o gid=5,mode=620 ~# mount -vt proc proc /mnt/proc ~# mount -vt sysfs sysfs /mnt/sys ~# mount -vt tmpfs tmpfs /mnt/run ``` - Changer la racine `~# chroot /mnt` ; la racine / devient /mnt, toutes les opérations suivantes se font dans le chroot (/etc est en fait /mnt/etc, c'est transparent). - Modifier `/etc/initramfs.d/.../resume` (partition de swap pour l'hibernation) et refaire l'initramfs `mkinitramfs`. - Modifier `/boot/grub/grub.cfg` ou utiliser `~# grub-mkconfig` (avec `grub-mkconfig -o` et le nom du fichier de sortie, sinon ça n'en créera pas). Comme on a plusieurs disques, il vaut mieux utiliser des UUIDs plutôt que des noms de périphériques qui pourraient changer (de toute façon, GRUB ne nomme pas les périphériques comme sous Linux). - Installer GRUB `~# grub-install /dev/[nouveau disque]` - Sortir du chroot, éteindre et redémarrer sur le nouveau disque. Temps passé : 10 minutes.

AltStyle によって変換されたページ (->オリジナル) /