J'ai un système fonctionnant en tant que serveur dont le disque dur est défaillant. Bien que toutes les données importantes se trouvent sur un RAID et soient sauvegardées, je n'ai pas d'image du système lui-même. Bien sûr, il n’ya pas de besoin spécifique car je peux effectuer l’installation, mais je veux tout de même essayer de faire une copie à chaud d’abord avant de descendre dans le chemin de restauration. Je sais que ce processus présente certains inconvénients, mais je ne pense pas qu'il y ait beaucoup d'inconvénients à l'essayer en premier recours.
Mon idée était de
Les questions que j'ai encore sont:
Quelle serait une bonne commande rsync? Je prévoyais:
rsync -aAXx / /mnt/somedir/
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}
(Je saute un peu plus de dir, par exemple mon raid monté, etc.)
Où les options sont:
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-x, --one-file-system don't cross filesystem boundaries
Je saute spécifiquement -H, -V et --progress pour accélérer le processus.
Cela fonctionnerait-il pour Ubuntu? Je ne sais pas si Ubuntu utilise des liens physiques, mais je ne pense pas avoir besoin de cette option, n'est-ce pas?
Après cette exécution, je pourrais redémarrer (peut-être avec un lecteur USB en direct) et réexécuter le processus rsync si l'ancien disque démarre toujours. Cela corrigerait tous les fichiers non lisibles/modifiés car le système fonctionnait, je suppose.
Comment réparer le démarrage?
Ensuite, mon plan serait de changer l’UUID pour /
dans mon fstab (il reste à rechercher Google comment trouver l’uuid) et de faire un peu de magie pour que le système s’amorce à partir du nouveau disque.
Ai-je oublié quelque chose ou ai-je prévu quelque chose de particulièrement stupide?
Vous pouvez récupérer l'UUID de tous les périphériques en mode bloc avec la commande blkid
. (Vous voulez celui qui dit simplement UUID, pas PARTUUID)
Les options de rsync que j'utilise sont -avhPHAXx.
Je ne pense pas que -v ou --progress accélérera quoi que ce soit, sauf si vous êtes sur une console/tty très lente.
L'utilisation de -x élimine le besoin de toutes vos exclusions en supposant qu'elles se trouvent toutes sur des systèmes de fichiers différents (sur mon système, à l'exception de lost + found).
Le seul programme fréquemment utilisé que je connaisse qui utilise des liens physiques (du moins sur mon système) est git
, c'est pourquoi j'ai ajouté l'option -H. Le seul problème que je pense que vous auriez si vous n’utilisiez pas -H, c’est que cela prendra un peu plus de place.
En ce qui concerne le chargeur de démarrage, si vous utilisez GRUB2 avec MBR, la commande que j’utilise est grub-install /dev/sda
(remplace sda par le lecteur correct pour vous). Cela devrait rendre le nouveau disque amorçable. Si vous utilisez un autre chargeur de démarrage ou un autre UEFI, je vérifierai dans Google comment faire en sorte que le nouveau lecteur démarre correctement. Rappelez-vous simplement que/boot sur le nouveau lecteur devra se trouver sur la même partition qu’aujourd’hui (en supposant que vous n’utilisez pas non plus d’UUID pour/boot), sinon vous devrez modifier fstab en conséquence.
Je viens de le faire avec succès (après quelques essais).
J'ai utilisé
Sudo rsync -ahPHAXx --delete --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} / /mnt
Ensuite, je réinitialise mon fichier /mnt/etc/fstab
pour la partition de démarrage et mon espace d'échange.
Ensuite, j'avais besoin de réinitialiser GRUB
for i in /dev /dev/pts /proc /sys /run; do Sudo mount -B $i /mnt$i; done
Sudo chroot /mnt
Sudo grub-install --recheck /dev/sdX
Sudo update-grub
N'essayez pas de réparer le démarrage avec ce lecteur; Ma recommandation:
rsync
vos fichiers non-système sur le nouveau disque.J'ai passé beaucoup de temps sur une distribution Centos freedbx vers rsync et sur un nouveau disque amorçable. Enfin, après la réparation de fstab et de grub UUID, cela ne fonctionne pas.
La dernière étape pour le faire fonctionner est
dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1
grub
Lorsque vous êtes dans la CLI de Grub (c'est-à-dire à l'invite grub>
):
device (hd0) /dev/sda
device (hd1) /dev/sdb
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Presse enter et vous pouvez maintenant éteindre, supprimer l’ancien disque et en démarrer un nouveau.