В Linux, как я могу создать / восстановить снимок всего диска?

14

Я слишком избалован утилитами Windows, которые делают цифровой снимок всего вашего диска, который затем можно восстановить в случае сбоя диска. (например, как Time Machine для Mac OS X).

Есть ли подобный способ сделать это в Linux?

user35997
источник
1
Я полагаю, что вы испорчены в Windows так же, как пользователи Linux избалованы наличием системных утилит. :)

Ответы:

13

Инструмент, который вы хотите (который больше всего напоминает Time Machine), называется rsnapshot . В отличие от обычных инструментов резервного копирования, он копирует только те вещи, которые изменились, и позволяет легко перемещаться во многие моменты времени. Вы можете указать, сколько дискового пространства ему разрешено, и настроить количество снимков, сохраняемых в пределах этого предела. Очень хороший инструмент.

Норман Рэмси
источник
6

PartImage запускается из командной строки или как текстовый графический интерфейс. Это имеет одно важное преимущество перед dd:

Partimage будет копировать данные только из используемых частей раздела. Для скорости и эффективности свободные блоки не записываются в файл изображения. Это не похоже на команду 'dd', которая также копирует пустые блоки.

StuffMaster
источник
6

Вы можете просто сделать " dd if=/dev/sda of=/path/to/target/backup", если вы знаете, что у вас есть комната, где вы пытаетесь ее поставить. Вы также можете сделать " dd if=/dev/sda | bzip2 > /path/to/target/backup", чтобы сжать на лету. Это может занять некоторое время, хотя.

Или вы можете сделать " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" как пользователь, который имеет все необходимые разрешения на чтение. Выбирайте.

Приложение: я недавно купил новый ноутбук, предустановленный с Vista. Я решил, что хочу сохранить Vista где-нибудь, на случай, если я захочу попробовать его в какой-то момент, поэтому в первый раз, когда я загрузил компьютер (с linux livecd), я сделал это:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Это было в быстрой локальной сети, конечно. В противном случае было бы более целесообразно сжимать перед передачей:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Надеюсь, вы найдете это полезным.

Редактировать: Ой. Изменено bbна dd...

Pianosaurus
источник
1
Это тоже не будет включать загрузочный сектор? Это всегда мешало мне при использовании partimage для резервного копирования диска Windows.
Грег, это будет включать в себя все, включая любую таблицу разделов и mbr
Йоханнес Шауб - litb
4

Я использую двойную стратегию: № 1 - это снимки LVM, а номер два - rsnapshot , который я использую для резервного копирования на определенный момент времени на выделенный внешний жесткий диск. Внешний жесткий диск размещен так, чтобы я мог легко вытащить его на выходе, если что-то случится. Я (пока) не использую сторонний механизм, за исключением периодической записи снимка на серию зашифрованных DVD-дисков и отправки его другу на хранение в другой город для хранения.

Я настоятельно рекомендую rsnapshot из-за того, как он делает снимки, используя жесткие ссылки на вещи, которые не изменились. Если ваш домашний каталог сходит с ума, вы можете просто взять копию rsnapshot и tarpipe или rsync вернуть ее в новый домашний раздел после переустановки или восстановления после сбоя диска.

Майкл Трауш
источник
3

Несколько. Есть старомодный dd (1) , который немного загадочен; есть дамп (8) и восстановление (8) ; вокруг есть несколько продуктов с открытым исходным кодом, таких как Аманда ; и если вы хотите, вы можете установить ZFS и использовать cron-скрипт для периодических снимков, что дает вам нечто, практически идентичное Time Machine (см. блог Тима Фостера).

В Википедии есть статья со списком множества вариантов .

Чарли Мартин
источник
2

Если вам нужна резервная копия на уровне файлов, такая как машина времени, тогда я настоятельно рекомендую rsnapshot, как предложил Норман .

Если вам нужно полное решение для резервного копирования и восстановления образа, например Norton Ghost , то я обнаружил, что CloneZilla работает достаточно хорошо. Я загружаю live CD, а затем использую другую машину в качестве SSH-сервера для резервного копирования / восстановления образа в / из.

(Мне даже удалось заставить живую версию работать через PXE-загрузку для старого планшетного ноутбука, который у меня был без CD-привода и без загрузки USB, но это было очень сложно.)

И вы можете использовать его для Windows, машин тоже.

Evan
источник
1

Я всегда беспокоился об использовании dd, когда диски были разного размера. Или имел различное количество голов / секторов / дорожек / и т.д.

dd очень полезен при создании снимков и перепрошивке одного и того же диска. Особенно USB-накопители или Windows разделы. Но при переходе с 500Meg на 1500Meg накопитель меня беспокоит.

Кроме того, когда мой диск выходит из строя, мне нравится использовать его в качестве предлога для перехода на более новую ОС.


Все, что сказал, старый добрый смолка делает хорошую работу! GNU-tar включает в себя параметры diff-tar-против-файлов , только -файлы -обновления-которые-изменились и только-архив-файлы-новее, чем дата .

(Я должен упомянуть: несколько лет назад я столкнулся с ошибкой, которая требовала от меня загрузки и установки более новой версии GNU-tar . (Что-то связанное с очень длинными путями и несколькими томами). Ничего страшного. Просто знайте это всегда вариант.)

Вероятно, вы должны исключить / proc , / sys и, возможно, / var / log / lastlog или / mnt . (Я обычно делаю резервную копию на внешний диск, смонтированный в / mnt . Резервное копирование резервной копии - не очень хорошо!)

Включение / dev может стоить. GNU-TAR будет правильно обрабатывать устройства ( MKNOD ). Хотя вы, вероятно, не будете использовать резервную копию / dev во время восстановления. (Иногда приятно видеть, какие разрешения или ссылки вы установили ранее.)

Кроме того , вы можете сбросить FDisk и оборотов в минуту данные , прежде чем резервное копирование. Например

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

А также монтирование любых «необязательных» пользовательских файловых систем.


источник
1

Вот полные шаги для другого метода, работающего для перехода с одного жесткого диска на другой, и даже клонирования машины, если аппаратное обеспечение схоже.

Сначала создайте образ хорошо работающей системы. Сделайте это как root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Резервное копирование образов ядра

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Загрузите компьютер, на котором вы хотите развернуть образ, с помощью live cd / gentoo cd. Смонтируйте этот жесткий диск и разбейте его соответствующим образом:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Добавить файловые системы

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Крепление дисков:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Скопируйте файл hostname.tgz на этот компьютер.

Распакуйте его в корень новой машины / mnt / new_root

# tar -xzf hostname.tgz

Chroot в новую среду.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Проверьте /boot/grub/grub.conf и / etc / fstab

Настройка grub на жесткий диск:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Выйдите и размонтируйте диски, перезагрузите машину.

глубокая скважина
источник
0

Вы можете делать снимки в Linux, используя LVM, менеджер логических томов.


источник
1
Если вы используете LVM, это не обязательно так. Если это так, то да, это был бы хороший вариант howtoforge.com/linux_lvm_snapshots
Гэвин Х