Forum Linux.général copie du systeme sur une autre partition

Posté par  .
Étiquettes : aucune
0
6
nov.
2004
Bonjour,

Mon système devenant bien trop à l'étroit sur sa partition root, j'ai décidé de la copier sur une plus grosse partition sur le 2ème disque dur, où il sera bien plus à l'aise :-) Mais j'ai du faire une boulette quelque part car le boot se bloque sur un "kernel panic - cannot open /dev/console"

Voici comment j'ai procédé (après un petit tour sur google) :
- passage en init 1
- préparation du nouveau root sur /dev/hdb5 avec fdisk et mkfs.ext3
- montage de la partition dans /mnt/temp
- copie des fichiers avec la commande "cp -ax / /mnt/temp"
- ajout d'une entrée dans /boot/grub/menu.lst pour pouvoir booter sur la nouvelle partition

Apparemment, le problème vient du fait qu'il faudrait copier les fichiers spéciaux de /dev/ ? Comment dois-je procéder pour bien le faire (j'utilise udev) ? Y a-t-il d'autres répertoires spéciaux à prendre en compte ?

Merci pour votre aide, je suis vraiment perdu, là.
  • # rsync ?

    Posté par  . Évalué à 1.

    Tu peux essayer rsync, ça devrait vraiment faire une copie exacte.

    Pour passer de l'ext3 sur hdb1 à du reiserfs sur hdb5, j'avais d'abord monté hdb1 sur /mnt/hdb1 en plus de / (pas pensé à -x, donc ça permettait d'être sûr de copier uniquement les fichiers de cette partition) et fait :

    rsync -a /mnt/hdb1/ /mnt/hdb5

    Sinon... tu as aussi mis à jour fstab ?
    • [^] # Re: rsync ?

      Posté par  . Évalué à 2.

      Merci déjà de te pencher sur mon problème. Mais mes fichiers sont déjà copiés :-), il ne me reste "que" /dev qui pose un problème. J'ai cru comprendre que /dev ne contient aucun vrai fichier. C'est peut-être pour ça que cp -ax n'a pas dupliqué ce qui se trouvait dedans ? Comment faire pour recréer tous les devices dans /mnt/temp/dev ?

      Sinon, j'ai effectivement pensé à mettre à jour fstab, mais pour avoir déjà fait des erreurs de typo dedans, je sais que ce n'est pas ça qui va empêcher le système de booter :-)
      • [^] # Re: rsync ?

        Posté par  . Évalué à 1.

        C'est bien pour ça que je dis que rsync fait une copie exacte. Y compris les fichiers spéciaux, alors que cp ne les copie pas.
        • [^] # Re: rsync ?

          Posté par  . Évalué à 1.

          Si si ...
          cp -a les copie tres bien. Garanti. Avec les fifos les dates et tout et tout.

          Normalement meme les sparse (blocs plein de zeros qui ne prennent pas de place sur le disque) mais ca j'ai pas verifie. Et puis --sparse=always le fait.

          Sinon sur le sujet:

          Si tu copies un /dev/ en etat de marche ca passera.

          Mais est-ce que udev effacera plus tard les devices qu'il n'utilise pas ?
          Vu qu'il ne les aura pas cree, vu qu'ils l'ont deja ete par ta copie et pas par lui ?

          Je ne connais pas encore assez udev pour te repondre. Si tu veux tu peux rebooter avec init=/bin/sh et copier uniquement les devices presents a ce moment. Tu n'auras que ceux necessaires (/dev/console en fait partie).
          • [^] # Re: rsync ?

            Posté par  . Évalué à 1.

            Toutes mes excuses, c'est vrai :)
            Je me rappelle plus très bien pourquoi j'avais lu que rsync était mieux que cp pour faire un truc comme ça, alors. (-S pour les sparses avec rsync, en passant).

            Pour udev... je n'en ai aucune idée mais je ne pense pas que ce soit un problème.
  • # ma procédure

    Posté par  . Évalué à 0.

    mkdir /mnt/root
    mount --bind / /mnt/root
    mkdir /mnt/new
    mount -t auto /dev/??? /mnt/new
    cd /mnt/root
    export LANG=C
    find . -depth -print0 | cpio -pv --null -a -m -d ../new
  • # cp -a

    Posté par  (site web personnel) . Évalué à 0.

    j ai copie plusieur fois des systems avec cp -a ...

    en generale je fais :

    for i in 'ls / | grep -v mnt | grep -v proc'; do cp -a /$i /mnt/dest; done

    sans oublier de creer proc et mnt ...

    mais dans ton cas, retente juste d ecraser le /dev ... genre avec juste :

    cp -a /dev/* /mnt/tmp/dev
    • [^] # Re: cp -a

      Posté par  . Évalué à 2.

      Merci à tous pour vos contributions :-)

      Il suffisait en effet de copier le contenu de /dev, mais une fois udev arrêté. Malgré le passage en mode "init 1", ce service tourne toujours. Il convient de l'arrêter avant de copier /dev.

      Voilà, ca fonctionne très bien maintenant :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.