Восстановление данных · 3 min read · Dec 25, 2025
Восстановление данных из RAID1 LVM разделов с помощью Knoppix Linux LiveCD
Восстановление данных из RAID1 LVM разделов с помощью Knoppix Linux LiveCD
Версия 1.0
Автор: Тилл Брем
Последнее редактирование: 04/11/2007
Этот учебник описывает, как восстановить данные с одного жесткого диска, который был частью конфигурации LVM2 RAID1, созданной, например, установщиком Fedora Core. Почему так сложно восстановить данные? Каждый отдельный жесткий диск, который ранее был частью конфигурации LVM RAID1, содержит все данные, которые были сохранены в RAID, но жесткий диск нельзя просто смонтировать. Сначала необходимо настроить RAID для раздела(ов), а затем настроить LVM для использования этого(их) RAID раздела(ов), прежде чем вы сможете его смонтировать. Я буду использовать Knoppix Linux LiveCD для восстановления данных.
Предварительные требования
Я использовал Knoppix 5.1 LiveCD для этого учебника. Скачайте ISO-образ CD отсюда и запишите его на CD, затем подключите жесткий диск, который содержит RAID раздел(ы), к контроллеру IDE / ATA вашей материнской платы, вставьте CD Knoppix в привод и загрузитесь с CD.
Жесткий диск, который я использовал, является IDE-диском, подключенным к первому IDE-контроллеру (hda). В моем случае жесткий диск содержал только один раздел.
Восстановление RAID
После загрузки Knoppix откройте оболочку и выполните команду:
sudo suчтобы стать пользователем root.
Поскольку у меня нет файла mdadm.conf из оригинальной конфигурации, я создаю его с помощью этой команды:
mdadm --examine --scan /dev/hda1 >> /etc/mdadm/mdadm.confРезультат должен быть похож на этот:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a
Отредактируйте файл и добавьте devices=/dev/hda1,missing в конец строки, описывающей RAID массив.
vi /etc/mdadm/mdadm.confВ конечном итоге файл будет выглядеть так:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a devices=/dev/hda1,missing
Строка /dev/hda1 — это аппаратное устройство, а missing означает, что второй диск в этом RAID массиве в данный момент отсутствует.
Отредактируйте файл /etc/default/mdadm:
vi /etc/default/mdadmи измените строку:
AUTOSTART=falseна:
AUTOSTART=true
Теперь мы можем запустить нашу настройку RAID:
/etc/init.d/mdadm start
/etc/init.d/mdadm-raid start
Чтобы проверить, что наше RAID устройство в порядке, выполните команду:
cat /proc/mdstatВывод должен выглядеть так:
Личности : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : активный raid1 hda1[1]
293049600 блоков [2/1] [_U]
неиспользуемые устройства:
Восстановление конфигурации LVM
Файл конфигурации LVM нельзя создать простой командой, как mdadm.conf, но LVM хранит одну или несколько копий содержимого файла конфигурации в начале раздела. Я использую команду dd, чтобы извлечь первую часть раздела и записать ее в текстовый файл:
dd if=/dev/md0 bs=512 count=255 skip=1 of=/tmp/md0.txtОткройте файл с помощью текстового редактора:
vi /tmp/md0.txtВы найдете сначала некоторые двоичные данные, а затем часть файла конфигурации, похожую на эту:
VolGroup00 {
id = "evRkPK-aCjV-HiHY-oaaD-SwUO-zN7A-LyRhoj"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536 # 32 Мегабайта
max_lv = 0
max_pv = 0
physical_volumes {
pv0 {
id = "uMJ8uM-sfTJ-La9j-oIuy-W3NX-ObiT-n464Rv"
device = "/dev/md0" # Подсказка только
status = ["ALLOCATABLE"]
pe_start = 384
pe_count = 8943 # 279,469 Гигабайт
}
}
logical_volumes {
LogVol00 {
id = "ohesOX-VRSi-CsnK-PUoI-GjUE-0nT7-ltxWoy"
status = ["READ", "WRITE", "VISIBLE"]
segment_count = 1
segment1 {
start_extent = 0
extent_count = 8942 # 279,438 Гигабайт
type = "striped"
stripe_count = 1 # линейный
stripes = [
"pv0", 0
]
}
}
}
}Создайте файл /etc/lvm/backup/VolGroup00:
vi /etc/lvm/backup/VolGroup00и вставьте данные конфигурации, чтобы файл выглядел аналогично приведенному выше примеру.
Теперь мы можем запустить LVM:
/etc/init.d/lvm startСчитайте объем:
vgscanЧтение всех физических томов. Это может занять некоторое время…
Найдена группа томов “VolGroup00” с использованием типа метаданных lvm2
pvscanPV /dev/md0 VG VolGroup00 lvm2 [279,47 ГБ / 32,00 МБ свободно]
Всего: 1 [279,47 ГБ] / в использовании: 1 [279,47 ГБ] / в нет VG: 0 [0 ]
и активируйте объем:
vgchange VolGroup00 -a y 1 логический том(ов) в группе томов "VolGroup00" теперь активенТеперь мы можем смонтировать раздел в /mnt/data:
mkdir /mnt/data
mount /dev/VolGroup00/LogVol00 /mnt/data/
Если вы восстанавливаете данные с жесткого диска с именами файлов в формате UTF-8, может потребоваться преобразовать их в вашу текущую локаль, не поддерживающую UTF-8. В моем случае RAID жесткий диск из системы Fedora Core с именами файлов, закодированными в UTF-8. Моя целевая локаль — ISO-8859-1. В этом случае скрипт Perl convmv помогает преобразовать имена файлов в целевую локаль.
Установка convmv
cd /tmp
wget http://j3e.de/linux/convmv/convmv-1.10.tar.gz
tar xvfz convmv-1.10.tar.gz
cd convmv-1.10
cp convmv /usr/bin/convmv
Чтобы преобразовать все имена файлов в /mnt/data в локаль ISO-8859-1, выполните эту команду:
convmv -f UTF-8 -t ISO-8859-1 -r --notest /mnt/data/*Если вы хотите сначала протестировать преобразование, используйте:
convmv -f UTF-8 -t ISO-8859-1 -r /mnt/data/*Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.