Неделя восстановления: Работа с образами дисков |
24.12.2007 | |
При восстановлении системы иногда полезно создать образ диска, с которым можно будет работать в другой системе. Это особенно полезно, например, когда диск «сыпется» (быстро появляются новые сбойные сектора). Можно создать образ диска по сети, использую команду: # ssh -C user@remotehost "cat >disk1.img" </dev/sda
Опция -C обозначает компрессию. Ее использовать нужно, если в вас медленное сетевое соединение, а процессоры на удаленном и вашем компьютерах довольно мощные. Полученный файл (disk1.img) — это точная копия данных на оригинальном диске. Файл такого же типа используется в Xen и KVM виртуальных средах. Команда file выводит информацию о файле: # file disk1.img
Можно также вывести таблицу разделов диска, с которого снят образ, использую команду fdisk -l. Однако, для доступа к какому-либо из разделов образа, сначала нужно организовать доступ к файлу как к блочному устройству. Для этого используется команда losetup: # losetup -f -v disk1.img
Теперь содержимое файла disk1.img доступно через блочное устройство /dev/loop0. Опция -f означает, что нужно использовать первое доступное устройство вида /dev/loopN, а опция -v означает включение режима подробного выполнения команды, что позволит увидеть имя этого устройства. Теперь можно воспользоваться kpartx для создания блочного устройства для каждого раздела образа: # kpartx -a -v /dev/loop0
Файлы блочных устройств появятся в директории /dev/mapper. Имена их будут начинаться с имени блочного устройства всего диска (loop0), буквы p и номера раздела. Команда file -s проанализирует содержимое каждого раздела: # file -s /dev/mapper/loop0p*
В этом примере первый раздел содержит файловую систему, которая может быть немедленно примонтированна (mkdir /mnt/x1 ; mount /dev/mapper/loop0p1 /mnt/x1). Второй раздел — это swap-раздел (раздел подкачки), который нам не интересен. Третий раздел содержит таблицу LVM. Для организации доступа к логическим дискам этого раздела можно использовать vgscan и vgchange: # vgscan # vgchange -ay # file -s /dev/mapper/zephyr-*
При сканировании обноружено имя группы — zephyr. После выполнения всех этих команд логические разделы группы zephyr могут быть подмонтированны. Примечание: Если имя группы образа диска конфликтует с именем группы в системе, то необходимо переименовать имя группы системы. Однако это непростая задача. Поэтому рекомендуется давать уникальные имена группам сразу при их создании. Использовать для имени главной группы имя хоста системы является неплохим решением. Когда вы закончите работать с образом диска, нужно отключить его: # vgchange -an zephyr |