Je dois sauvegarder mon disque dur. Je veux utiliser dd
et mettre l'image sur un disque dur externe.
- Puis-je le faire en utilisant
dd
le système d'exploitation qui réside sur le disque dur lui-même ou dois-je démarrer à partir d'un autre appareil, par exemple un LiveCD? - Est-il sûr, en général, de prendre l'image d'un appareil, si l'appareil est monté et fonctionne?
- Que faire si le périphérique est monté, mais je suis sûr qu'il n'y a pas d'autre opération d'E / S pendant qu'il
dd
fonctionne?
Je suis sûr que rsync
c'est le meilleur outil à utiliser pour les sauvegardes, en particulier les incrémentales.
Mais cela m'intéresse dd
, car je veux également sauvegarder d'autres périphériques de stockage, et il copie également les données stockées sur un espace non partitionné. Par exemple, mon lecteur de livre électronique utilise un espace non partitionné pour stocker le démarrage, le noyau et d'autres données.
backup
dd
disk-image
Marco Sulla
la source
la source
Réponses:
En général, ce n'est pas sûr. Le FS suppose que les opérations sont écrites dans un certain ordre afin qu'il puisse écrire de nouvelles données de fichier et ensuite faire un pointeur vers lui à partir d'autres données, les détails exacts dépendent du système de fichiers. Imaginez si ce qui suit se produit:
dd
lit à partir de l'emplacement X qui contient des ordures ou des donnéesdd
lit de l'emplacement X + 1 lien vers l'emplacement XDu point de vue de la sauvegarde, vous obtenez des données inutiles. Cependant, il existe plusieurs façons de le contourner:
xfs_freeze
est un et je n'en connais pas d'autre - mais une telle option existe au moins en théorie)Enfin,
dd
ce n'est peut-être pas le meilleur moyen de sauvegarde. Il copie un disque complet, ce qui est souvent inutile car vous copiez également les «déchets». Si vous avez besoin d'images disque, quelque chose comme partimage pourrait être mieux. Si vous n'avez pas de meilleure option, utilisez soit rsync, tar en mode différentiel / incrémentiel, etc., soit un système de sauvegarde complet tel que bacula , tarsnap ou l'un des nombreux autres. La déduplication des données peut faire des merveilles pour les tailles des sauvegardes.la source
Cela dépend à quoi sert exactement la partition et à quoi sert la copie. Cependant, je dirai qu'en général,
dd
c'est un outil inapproprié pour sauvegarder des systèmes de fichiers . Ce n'est pas non plus ce à quoi il était destiné.Cela vous fera perdre beaucoup de temps à copier des sections vides de la partition.
Cela peut entraîner des incohérences si le système de fichiers est actuellement monté, en partie parce que c'est une entité de niveau OS et peut être désynchronisé avec le périphérique de bloc sous-jacent. Appeler au
sync
départ n'aidera pas beaucoup à cela, car le processus n'est pas instantané.Utilisez
cp -a
ou à larsync
place. Vous devez ensuite créer la partition de destination, bien sûr, donc ce n'est pas aussi simple que de tomber, mais c'est beaucoup plus sûr et plus flexible. Si vous devez créer une image de système de fichiers , voir ci-dessous.Si vous avez l'intention de copier le système de fichiers racine, ne l'utilisez absolument pas
dd
. Vous devez utiliser quelque chose commersync -ax
(oucp -ax
sur des répertoires individuels de haut niveau), car il y a un tas de choses qui ne doivent PAS être dans la copie . Sous Linux, cela comprend:Certains d'entre eux sont en fait des interfaces du noyau et non de vrais répertoires sur le disque. Si vous les copiez, vous copiez un tas d'informations qui ne s'appliqueront pas dans la copie; si vous essayez de faire fonctionner un système avec lui, cela équivaudra à un espace gaspillé puisque la véritable interface sera montée sur le dessus. D'autres contiennent des informations temporaires utilisées par les processus en cours d'exécution et celles-ci sont plus problématiques, car le système ne pourra pas trier les ordures si vous les copiez.
Si vous souhaitez créer un fichier image du système de fichiers racine (ou tout système de fichiers), créez un fichier image vide - c'est une utilisation appropriée pour
dd
:C'est une image de 1024 Mo (1000000 * 1024). Ajustez
count
si vous le souhaitez une autre taille. Créez, par exemple, unext
système de fichiers dans le fichier :Il vous avertira que ce n'est pas un véritable périphérique de bloc. Procéder. Montez maintenant le fichier image:
/mnt/img
doit exister mais pourrait tout. Vous pouvez maintenantrsync
(oucp -a
) entrer/mnt/img
. Le contenu restera à l'intérieurwhatever.img
lorsque vous le démonterez.Pourtant...
Pour être clair, utilisez uniquement la méthode d'image du système de fichiers décrite ci-dessus si vous avez absolument besoin d'un fichier image pour une raison quelconque. Si votre objectif est de copier la partition sur un autre disque dur, vous n'avez pas besoin d'une image : créez une nouvelle partition avec un système de fichiers vide sur ce lecteur, montez-le et copiez-y. Vous pouvez à la place simplement placer le contenu du système de fichiers dans un répertoire vide et l'archiver:
Vous pouvez ensuite le déployer dans une partition existante (vide ou non) en la plaçant dans le niveau supérieur et en utilisant:
Attention, cela écrasera les fichiers existants si leurs chemins correspondent à quelque chose dans l'archive. Sinon, la hiérarchie de répertoires existante restera inchangée.
la source
cp
et rsync ont la possibilité-x
d'éviter la récursivité dans d'autres systèmes de fichiers. La réponse de Maciej explique le mieux pourquoidd
est absolument inapproprié ici (il est presque garanti de produire une copie inutilisable à moins que vous ne preniez les précautions énumérées par Mark , en raison des écritures qui se produiraient autrement pendant la copie).dd
ne copiera pas les choses qui ne sont pas de vrais répertoires sur le disque, donc je ne sais pas d'où vient votre premier point. Par exemple, les périphériques montés dans/mnt
, les nœuds dans/proc
, etc. ne feraient pas partie des donnéesdd
récupérées car elles ne sont pas sur le disque. Pour les systèmes de fichiers non montésdd
est parfaitement valide; vous vous retrouvez avec un double exact. La seule raison pour laquelle cela n'est pas approprié pour les systèmes de fichiers montés est que les données du système peuvent changer / être partiellement écrites pendant la longue période de temps nécessairedd
pour fonctionner.rsync est l'outil de choix pour sauvegarder un système de fichiers, et il peut faire une sauvegarde de démarrage du système d'exploitation en cours d'exécution.
Quelques mises en garde:
Quelques avantages de rsync par rapport à d'autres méthodes comme tar:
Les sauvegardes d'images ont leur place, mais elles copient le lecteur exactement tel quel, y compris tout problème que vous pourriez avoir. Une sauvegarde de fichiers crée un nouveau répertoire et a pour effet secondaire de linéariser (défragmenter) votre lecteur dans le processus. Si vous souhaitez faire 10 copies identiques de votre système d'exploitation actuel, j'utiliserais rsync pour le maître de copie, puis dd (ou similaire) pour le reste.
la source
Cela dépend de ce que vous entendez par «système de travail actuel». Si vous voulez simplement éviter d'utiliser un disque de démarrage et ne vous souciez pas de la perturbation des services exécutés sur l'ordinateur, il est possible:
sync
mount -o ro /
./etc/mtab
; ignorez-le).J'utilise cette méthode pour créer une archive d'un ordinateur que je viens de mettre à niveau et je ne m'attends pas à en utiliser beaucoup plus. Ce n'est pas une très bonne méthode pour un système en utilisation active: c'est lent (prenant des heures ou des jours), les sauvegardes sont énormes (donc vous ne pouvez pas en garder plus que quelques-unes), et c'est incroyablement perturbateur pour l'utilisation du système sauvegardé vers le haut. Pour les sauvegardes quotidiennes, je recommande quelque chose qui fonctionne au niveau du système de fichiers, comme
rsnapshot
.la source
/etc/mtab
vers/proc/self/mount
- qui fonctionnera même lorsque vous avez des choses comme des chroots ou des espaces de noms fs.mount -o remount,ro /
peut écrire. Mais une fois cette commande revenue, dans quelle situation les écritures suivantes se produiraient-elles?Utilisez Clonezilla , sérieusement. C'est le meilleur utilitaire open-source, basé sur Linux, semblable à Norton Ghost. Il effectuera à la fois la partition et le clonage complet du disque, soit de disque à disque ou de disque à système de fichiers (enregistré en tant que fichier). Il prend en charge la plupart des systèmes de fichiers Linux, NTFS, FAT32 et plus. Il peut enregistrer sur un disque interne, un lecteur externe ou même sur le réseau sur des partages SMB ou NFS.
Il est très facile à utiliser et vous fera gagner beaucoup de temps.
Modifier: pour répondre à la question, non, vous ne pouvez pas
dd
utiliser la plupart des systèmes de fichiers lorsqu'ils sont montés, car vous risquez de vous retrouver avec une copie incohérente de votre système de fichiers car la lecture à partir d'un périphérique de bloc n'est pas atomique. Par exemple, si vous copiez 100 blocs, le système peut avoir mis à jour le premier bloc et le dernier bloc alors que vous n'étiez qu'à mi-chemin, ce qui signifie que votre copie inclura le dernier bloc modifié mais pas le premier.la source