GNU/Linux >> Tutoriels Linux >  >> Debian

Debian/grub2 :déplacer la partition racine vers un nouveau lecteur ?

Quelqu'un a-t-il une suggestion sur la façon de déplacer la partition racine vers un nouveau lecteur et de configurer grub2 pour qu'il démarre sur ce lecteur ? Je semble n'avoir aucune chance d'indiquer à grub-mkconfig ce que je veux faire (par exemple, chroot'int dans ma nouvelle racine confond tous les scripts).

Contexte J'utilise Debian Squeeze sur un NAS basse consommation sans tête. Ma configuration actuelle est / sur sda0 et /boot sur sde0 (une carte CF) :j'avais besoin du /boot séparé parce que sd[a-d] besoin de faire un spin-up retardé. Maintenant, j'ai trouvé un ancien disque IDE 2.5″ à utiliser comme / y compris /boot pour me permettre de faire tourner tous les gros disques.

Ce que j'ai essayé En gros j'y suis allé

mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot

Puis j'ai essayé

chroot /mnt/newroot
update-grub

Mais cela a échoué avec grub demandant si root était monté.
Ensuite, j'ai tenté sans enthousiasme de configurer /mnt/newroot/grub/grub.cfg pour trouver l'image du noyau sur sdf5 , suivi d'un grub-install --root-directory=/mnt/newroot /dev/sdf . Mais cela vient de m'envoyer une invite de secours grub lorsque j'ai essayé de démarrer à partir de sdf .

Mon plan de sauvegarde consiste simplement à réinstaller, donc une question bonus (pas de coche pour celle-ci) :que dois-je faire pour obtenir ma configuration lvm2 et mdadm ? Est-ce que tout est stocké dans les systèmes de fichiers (et sera-t-il automatiquement découvert), ou dois-je m'en occuper moi-même ?

Solution (merci à Maciej Piechotka):Comme le souligne Maciej, j'ai besoin d'un chroot approprié pour que tous les outils grub fonctionnent. Pour référence, voici comment j'ai procédé :

[email protected]:/mnt/newroot$ sudo cp -ax / /mnt/newroot
[email protected]:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

Tous les fichiers sont maintenant copiés (voir ici pour une discussion sur les stratégies de copie). Corrigez le nouveau etc/fstab pour pointer vers la nouvelle racine :

[email protected]:/mnt/newroot$ diff -u etc/fstab.old  etc/fstab
    -UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 /     ext3 errors=remount-ro         0 1
    -UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults                  0 2
    +UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 /     ext3 noatime,errors=remount-ro 0 1

Enfin, montez dev ,sys et proc à la nouvelle racine et chroot :

[email protected]:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
[email protected]:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
[email protected]:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
[email protected]:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
[email protected]:/mnt/newroot$ sudo chroot .

Nous sommes maintenant chrootés à la future racine exactement comme elle apparaîtra. Selon Maciej, il devrait suffire d'appeler grub-install , mais j'ai fait un update-grub d'abord jeter un œil au /boot/grub/grub.cfg généré avant d'installer le bootloader. Je ne suis pas sûr qu'il sera automatiquement mis à jour ?

[email protected]:/# update-grub
[email protected]:/# grub-install /dev/sdb

Réponse acceptée :

Montez les systèmes de fichiers de base et copiez/modifiez les fichiers tout en chrootant comme :

  • /dev (mount -o bind /dev/ /path/to/chroot/dev )
  • /proc (mount -t proc none /path/to/chroot/proc )
  • /sys (mount -t sysfs none /path/to/chroot/sys )

IIRC qui a fonctionné pour moi lors de l'installation de Grub 2 dans arch et de nombreuses fois sur Gentoo. Puis après chroot vers /path/to/chroot la commande était simplement :

grub-install /dev/<boot_disk>

Depuis lvm2 (et je crois que madm mais je ne l'ai pas utilisé), la configuration est stockée sur le disque. Il y a une configuration qui doit être lue pour découvrir les appareils. En supposant que vos appareils se trouvent dans des emplacements standard (/dev/sd* ou /dev/hd* ) il ne devrait pas y avoir de problème.

En relation :Créer un fichier en tant qu'utilisateur et groupe différents ?

PS. Je ne ferais pas confiance au simple cp du système live car il y a plusieurs endroits où cela peut mal tourner :

  • J'ai oublié de modifier /etc/fstab et d'autres fichiers utiles
  • Fichiers modifiés lors de l'accès
  • Copier les ordures (/tmp etc.)

Debian
  1. Sortie de Debian 10 (Buster) – Nouvelles fonctionnalités

  2. Sortie de Debian 8 Jessie – Quoi de neuf ?

  3. Réinitialiser un mot de passe root oublié dans Debian 10 / Debian 11

  4. Comment installer TYPO3 sur Debian 9

  5. Debian – Déplacer /var, /home vers une partition séparée ?

Comment démarrer le fichier ISO Debian à partir du disque dur avec GRUB2

Comment installer Joomla sur Debian 8

Comment installer osCommerce sur Debian 8

Comment installer Joomla sur Debian 9

Comment installer Textpattern sur Debian 9

Quoi de neuf dans Debian 11 « Bullseye »