web-dev-qa-db-fra.com

compression de la sauvegarde dd à la volée

Peut-être que cela ressemblera à une question stupide, mais la façon dont j'essaie de le faire ne fonctionne pas.

Je suis sur livecd, le lecteur n'est pas monté, etc.

Quand je sauvegarde de cette façon

Sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

... normalement, cela fonctionnerait, mais je n'ai pas assez d'espace sur le disque dur externe sur lequel je copie (il correspond presque à lui). Je voulais donc compresser de cette façon

 Sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

... mais j'ai obtenu des autorisations refusées. Je ne comprends pas.

25
Phil

Avez-vous accès au fichier sda2-backup ... gz? Sudo ne fonctionne qu'avec la commande qui suit, et ne s'applique pas à la redirection. Si vous souhaitez qu'il s'applique à la redirection, exécutez le shell en tant que root pour que tous les processus enfants soient également root:

Sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

Alternativement, vous pouvez monter le disque avec les options de montage uid/gid (en supposant ext3) de sorte que vous ayez des autorisations d'écriture quel que soit l'utilisateur que vous êtes. Ou, utilisez root pour créer un dossier dans/media/disk pour lequel vous avez des autorisations.

Autres informations qui pourraient vous aider:

  • La taille des blocs n'a vraiment d'importance que pour la vitesse. La valeur par défaut est 512 octets que vous souhaitez conserver pour le MBR et les disquettes. Des tailles plus grandes jusqu'à un point devraient accélérer les opérations, pensez-y comme analogue à un tampon. Voici un lien vers quelqu'un qui a fait des tests de vitesse avec différentes tailles de blocs. Mais vous devez faire vos propres tests, car les performances sont influencées par de nombreux facteurs. Jetez également un œil à l'autre réponse d'andreas
  • Si vous voulez accomplir cela sur le réseau avec ssh et netcat afin que l'espace ne soit pas aussi important, voyez cette question de défaut de serveur .
  • Avez-vous vraiment besoin d'une image de la partition, il pourrait y avoir de meilleures stratégies de sauvegarde?
  • dd est une commande très dangereuse, utilisez of au lieu de if et vous finissez par écraser ce que vous essayez de faire !! Remarquez comment les clés o et i sont côte à côte? Soyez donc très très très attention.
41
Kyle Brandt

Dans le premier cas, le dd s'exécute en tant que root.

Dans le second cas, le dd s'exécute en tant que root mais le gzip s'exécute en tant que vous.

Modifiez les autorisations sur/media/disk, offrez-vous un shell root ou exécutez le gzip en tant que root également.

6
chris

De plus, vous pouvez remplacer gzip par bzip2 --best pour une bien meilleure compression:

Sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2
3
dmityugov