web-dev-qa-db-fra.com

Est-il possible de dd le disque actuel que vous avez démarré?

J'ai une copie de FreeNAS fonctionnant sur un disque USB. Et j'aimerais en faire une copie de sauvegarde.

En essayant d'éviter de casser un système qui fonctionne parfaitement, serais-je capable de dd le disque lorsque le système d'exploitation est en cours d'exécution?

Ou devrais-je éteindre la machine et exécuter dd sur une autre machine?

22
stuartc

Vous pouvez exécuter dd sur le disque en cours d'exécution. Cela devrait être évité en cas de modifications importantes de la structure du disque. Aussi, vous devriez fschk la destination une fois que vous avez terminé. Plus le système est silencieux pendant la sauvegarde, mieux c'est.

Exécuter une sauvegarde à froid (système de fichiers non monté) est la meilleure option si vous voulez utiliser `dd '.

Il existe de meilleures options pour sauvegarder un système en cours d'exécution.

  • tar ou cpio lira les fichiers et traitera assez bien les fichiers ouverts. Certaines des modifications apportées lors de la sauvegarde vous manqueront probablement.
  • rsync se comporte comme tar en ce qui concerne les fichiers ouverts et les modifications manquantes lors de la sauvegarde. Il peut être utilisé pour effectuer la sauvegarde initiale et effectue très bien les sauvegardes incrémentielles. Lors de l'exécution d'une sauvegarde incrémentielle, il peut ignorer la copie de parties de fichier non modifiées.

Si vous sauvegardez un système de fichiers avec des fichiers de base de données, recherchez la prise en charge des sauvegardes à chaud.

15
BillThor

Il est techniquement possible (comme dans "se prendre soi-même au pied"), mais il est vivement déconseillé, en particulier si l'une des partitions du disque est en écriture.

Imaginez ce scénario:

  • dd commence à lire le disque au début et se dirige joyeusement vers la fin.
  • À mi-chemin, le système d'exploitation écrit un fichier sur le disque. Le fichier est cependant quelque peu fragmenté: une partie se trouve physiquement vers le début du disque et une autre vers la fin.
  • Pas de problème pour le système d'exploitation - il écrit parfaitement le fichier et le repousse hors de ses caches d'écriture; il est maintenant correctement écrit sur le disque.
  • Le problème vient de votre sauvegarde: dd est déjà passé et a copié la première partie du fichier. Il va donc capturer un état incohérent quand il arrivera à la deuxième partie - chaque partie proviendra d’une version différente!

Si vous êtes capable de remonter toutes les partitions du disque USB en lecture seule, ce problème ne devrait pas se produire (l'emphase sur " ne devrait pas " ) Cela nécessite toutefois une préparation initiale/hors ligne et une configuration de démarrage significatives pour la partition / - je ne pense pas que vous puissiez remonter le / à la volée, il y aura de nombreux problèmes qui nécessiteront/w accès.

Donc, exécuter la copie ne cassera probablement pas le système en cours d’exécution, mais ne vous donnera pas de sauvegarde réalisable, rendant la tâche inutile. Je recommande fortement de rendre la copie hors ligne, ce qui nécessiterait d'éteindre la machine.

15
Piskvor

Vous ne devriez jamais créer l'image d'une partition montée. Peu importe si vous avez démarré à partir de celle-ci ou non.

Mais vous aurez du mal à démonter la partition à partir de laquelle vous avez démarré.

4
Der Hochstapler

Pour cela, j'utilise dump(8) sur FreeBSD. Par exemple. dump -auLf /mnt/some-other-disk/root.dmp /

L'option -L permet de copier un système de fichiers réel en prenant un instantané.

Les vidages peuvent être restaurés à l'aide de restore(8).

Cela pourrait ne fonctionner qu'avec UFS; Je ne suis pas sûre à propos de ça.

4
maxelost

C'est incroyable le nombre de conseils de sauvegarde qui ne mentionnent pas ce qui suit:

Le système Linux (et la plupart des systèmes d’exploitation multi-threads) doivent généralement être au repos pendant la sauvegarde et la restauration.

Ceci s’obtient plus facilement en n’exécutant pas de système d’exploitation lorsque vous essayez de l’imaginer.

Pour la sauvegarde et la restauration, il peut être monté et en réalité probablement, mais pas par le système d'exploitation en cours d'exécution en tant que racine (/).


Reason: Dans tous les systèmes d'exploitation multitâches, y compris Linux, plusieurs threads de code exécutent simultanément des fichiers qui affectent les fichiers, ce qui rend impossible toute sauvegarde ou restauration précise des ensembles de fichiers à l'échelle du système.

En particulier, lors de la récupération de fichiers, il peut être nécessaire de créer ou de supprimer des fichiers pour que votre sauvegarde ne représente pas une image fidèle du système de fichiers à un moment donné. Si vous essayez de restaurer cette sauvegarde, vous subirez une corruption des données pouvant entraîner des pannes et d’autres anomalies.


Options: Les sauvegardes doivent être effectuées à l'aide d'un logiciel spécial et/ou de systèmes de disques (tels que Acronis sous Windows, par exemple, qui peut sauvegarder un système d'exploitation en cours d'exécution), ou par un système d'exploitation secondaire externe accédant au système d'exploitation non en cours d'exécution. les fichiers que vous essayez de sauvegarder ou de restaurer.

!!! Donc, lorsque vous voyez des pages Web vous dire d'utiliser Deja-dup par exemple pour faire vos sauvegardes, cela ne fonctionne que pour /home et ensuite UNIQUEMENT si vous ne l'êtes pas. exécuter tous les programmes affectant /home pendant que vous exécutez deja-dup. (Et même alors, vous voudrez peut-être croiser les doigts à moins de savoir vraiment ce qui pourrait toucher vos fichiers via un démon.)

0
Elliptical view