Восстановление данных с LVM разделов в ОС Linux
Хотите узнать, как пользоваться технологией LVM в Linux? Как создать LVM том, настроить и смонтировать его в систему, как добавлять и удалять диски, а также восстановить случайно удаленную с него информацию? Далее в нашей статье мы расскажем об этом поподробнее.
- Что такое LVM?
- Как установить LVM в систему?
- Как разметить физический диск
- Теперь создаем группу разделов
- Чтобы использовать LVM создаем логически том
- Как отформатировать и смонтировать логический том?
- Как изменить размер?
- Как восстановить удаленную информацию с логического тома LVM
- Заключение
- Вопросы и ответы
- Комментарии
Что такое LVM?
Logical Volume Management (менеджер логических томов) – это стандартная опция управления дисками, которая доступна в каждом дистрибутиве ОС Linux. Она обеспечивает уровень абстракции между вашей ОС и используемыми накопителями. При традиционном управлении, Linux сначала ищет доступные накопители, а затем смотрит, какие разделы доступны на этих устройствах.
С помощью LVM носители или разделы можно объединять в единое пространство. При таком построении операционная система не заметит разницы, а менеджер дисков будет отображать только нужные физические носители или группы томов.
На самом деле, LVM обладает несколькими весомыми плюсами:
- Она может создавать логический том на основе любого количества физических носителей, которые будут представлены в системе как единое пространство.
- Количество входящих носителей и размер самого тома можно изменять прямо в процессе работы.
- Также LVM технология позволяет на лету копировать нужные разделы, или полностью настроить функцию зеркала как в массивах RAID-1.
Как установить LVM в систему?
Если вы планируете первый раз воспользоваться функциями LVM сперва ее нужно установить. Для установки выполните следующую команду: sudo apt install lvm2
А затем введите пароль администратора, далее Yes для подтверждения.
В некоторых версиях Linux, эта опция установлена по умолчанию.
Это легко проверить, введите команду lvm в окне терминала.
Далее можно приступать к управлению дисками.
Как разметить физический диск
У меня есть три пустых не размеченных жестких диска по 320 Гб, без каких-либо разделов.
Проще всего разметку осуществить с помощью утилиты управления дисками. Жмем по нужному диску – и открываем дополнительные параметры – а затем форматировать.
Указываем имя и файловую систему – Далее и еще раз Форматировать для подтверждения.
Далее понадобится пароль от учетной записи администратора.
Диск размечен, повторяем операцию с каждым неразмеченным накопителем.
Также диск можно разметить через терминал с помощью fdisk.
Входим под рутом – sudo –i – вводим пароль.
А затем выполняем следующую команду: fdisk /dev/sdb – где sdb это неразмеченный диск.
Прежде чем продолжить убедитесь, что вы указали нужный диск, так как вся информация будет затерта.
Вводим n – новый раздел, p – основной, 1 – первый раздел, затем жмем два раза Enter.
Теперь нужно подготовить раздел для использования LVM. Пишем t – изменить тип раздела, а затем 8e – присваиваем тип LVM.
Проверяем настройки раздела – p, как видите все прошло успешно, появился размеченный раздел sdb1, записываем изменения – w. Делаем разметку всех неразмеченных накопителей.
Далее, чтобы создать LVM том на только что добавленном разделе, вводим: pvcreate /dev/sdb1.
Повторяем ее для каждого носителя pvcreate /dev/sdс1, pvcreate /dev/sdd1.
Теперь создаем группу разделов
Из подготовленных трех носителей соберем нужный LVM раздел. Поможет нам в этом следующая команда:
vgcreate vg1 /dev/sdb1 dev/sdc1 dev/sdd1
Где vg1 – это название (имя) новой группы. Называть можно как вам удобно, но рекомендуется поставить перед именем vg, чтобы знать в дальнейшем что это именно группа.
Чтобы использовать LVM создаем логически том
Когда диски объединены в группу, для ее использования нужно создавать новый логический раздел. Для этого вводим команду:
lvcreate -L 10G -n lv1 vg1
Где, -L определяет размер, я указал 10 ГБ, команда -n дает имя тому, а ссылка на vg1 указывает, с какого тома получить пространство.
Если на диске есть какие-то данные система предупредит об этом, вводим yes для подтверждения затереть их.
Как отформатировать и смонтировать логический том?
Осталось отформатировать том в управлении дисками и смонтировать его. Жмем по нему и отрываем дополнительные параметры, а затем форматировать, указываем имя и файловую систему – Далее – и еще раз Форматировать.
Вводим пароль root, а затем кликаем по клавише монтирования. Теперь новый раздел можно использовать.
Если нужно отформатировать его через терминал введите команду:
mkfs -t ext4 /dev/vg1/lv1
Указываем файловую систему Ext4, имя группы и имя тома.
Для монтирования введите: mkdir /mnt/lv1, а затем – mount -t ext4 /dev/vg1/lv1 /mnt/lv1.
Том смонтирован.
Как изменить размер?
Одним из преимуществ логических томов является возможность на лету добавить новый жесткий диск и расширить группу томов. А если в группе есть неиспользуемый жесткий диск, вы можете удалить из нее этот накопитель.
Существует три основных инструмента для увеличения или уменьшения логических, физических и группы томов.
- Resize – команда поможет сжать или расширить физические и логические тома, но не подходит для работы с группами;
- Extend – может увеличить логические разделы или группы томов;
- Reduce – может сокращать логические тома или группы томов.
Как добавить новый жесткий диск в группу
Первое что нужно сделать перед добавлением в группу – это разметить новый жесткий диск. Как выполнить эту операцию, мы рассказывали ранее в статье.
Далее выполняем следующую команду: vgextend vg1 /dev/sde1
Где vg1 – название группы, а sde1 – новый уже размеченный накопитель.
Как вывести подробную информацию об LVM
Для отображения детальной информации о составе LVM группы, выполните команду pvdisplay.
Здесь указан путь к физическому диску, имя виртуальной группы в которую он входит, информация о свободном и используемом пространстве ID диска и другое.
Как удалить логический том
Для удаления логического тома, сначала нужно убедиться, что он отключен (размонтирован), затем нужно выполнить команду lvremove, после чего раздел будет удален.
С помощью этой команды можно удалить группу томов, но перед этим необходимо размонтировать логический раздел, введите команду: umount /mnt/lv1
Далее для удаления, вводим команду: lvremove /dev/vg1/lv1, а также Yes для подтверждения операции.
После успешного удаления вы увидите следующее сообщение об успешном удалении
Теперь мы можем удалить нашу группу, для этого вводим команду: sudo vgremove vg1
Теперь осталось удалить все носители, которые составляли группу, для этого вводим команду: sudo pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1
Все метки на физическом носителе успешно удалены, они приняли первоначальны вид.
Как восстановить удаленную информацию с логического тома LVM
Если вы вдруг случайно удалили важную информацию с логического тома LVM, вернуть ее вам поможет программа Hetman Partition Recovery.
Утилита поддерживает LVM разделы, и обеспечивает восстановление данных с них. Она поддерживает большинство самых распространенных файловых систем под ОС Windows, Linux, Unix, а также MacOS. Программа будет игнорировать ошибки логической структуры накопителя, просканирует жесткий диск и вернет нужны файлы.
На данный момент нет дистрибутива программы Hetman Partition Recovery под ОС Linux. Запустить ее можно с помощью виртуальной машины на базе Windows, установив ее второй системой на ваш ПК, или подсоединить диски к другому компьютеру.
Запускаем программу, после инициализации она без труда определила логический том, и отобразила всю известную о нем информацию.
Сперва выполните Быстрое сканирование, жмем по диску правой кнопкой мыши – Открыть – Быстрое сканирование, по завершению процесса программа отобразит найденную информацию в правой части окна. Удаленные файлы помечены красным крестиком.
Если быстрое сканирование не нашло нужной информации выполните Полный анализ.
Далее отметьте файлы, которые нужно вернуть и нажмите Восстановить, выберите место куда их сохранить и еще раз Восстановить.
По завершению процесса все файлы будут лежать в указанной папке.
Заключение
В этой статье мы попытались рассказать, как пользоваться встроенной функцией Logical Volume Management под ОС Linux. Прошли все важные этапы: создание и настройка LVM раздела, добавление и монтирование новых жестких дисков, уменьшение и полное удаление. Функция LVM разрабатывалась как серверное решение. Но теперь вы сможете в полном объеме использовать ее даже на домашнем ПК.
После сбоя Raid контроллера и его замены, а также отказа новым контроллером импортировать конфигурацию с массива - была воссоздана конфигурация массива без инициализации дисков. После чего оказались побитой информация GPT всех разделов с LVM. Была восстановлена GPT информация о разделах с аналогичной машины путем экспорта с рабочей и импортом на проблемную через sgdisk. Единственная разница что физически, как оказалось, немного отличались диски размерами, хотя подозреваю вопрос в прошивке контроллера они были немного разные. На виртуальном диске LVM разделы дисков виртуальных машин. vgchange -ay - выдает ошибку Warning: Device /dev/sdd1 has size of 974606303 sectors which is smaller than corresponding PV size of 975697887 sectors. Was resized? Warning: One or more devices used as PVs in VG ssd have changed sizes. pvresize -v /dev/sdd1 - не помогает. Есть ли вариант как то вручную подогнать размер PV и соответственно VG к реальным размерам диска или каким либо альтернативным путем скопировать нужный lv, например через dd без активации группы томов?
Да, есть несколько вариантов для решения проблемы с размером PV и VG:
Вы можете воспользоваться утилитой pvresize с флагом --setphysicalvolumesize, чтобы задать новый размер PV вручную. Например, для увеличения размера PV до 975697887 секторов вы можете использовать следующую команду: pvresize --setphysicalvolumesize 975697887 /dev/sdd1.
Если утилита pvresize не помогает, вы можете создать новый PV на свободной части диска, затем добавить его в VG и переместить данные с помощью команды pvmove на новый PV.
Вы можете скопировать нужный LV с помощью команды dd на другой диск или сетевое хранилище без активации группы томов. Затем вы можете создать новый PV и VG на этом диске, добавить его в систему и смонтировать скопированный LV.
Возможно, вам потребуется восстановить LVM метаданные с помощью утилиты vgcfgrestore, если они были повреждены после сбоя Raid контроллера.
В любом случае, перед выполнением любых действий по восстановлению данных рекомендуется создать резервную копию всех важных файлов и данных, чтобы избежать их потери.
Использует ли LVM 2 формат, отличный от формата LVM 1, для представления на диске групп томов и логических томов?
Да. LVM 2 использует метаданные формата lvm 2. Этот формат гораздо более гибкий, чем метаданные формата LVM 1, устраняя или уменьшая большинство ограничений, которые были у LVM 1.
Какие команды и типы логических томов в настоящее время поддерживаются в LVM 2?
Если вы используете стабильный патч 2.4 device mapper patch из архива lvm2, все основные функции, которые вы ожидаете от использования lvm1, поддерживаются инструментами lvm2.
Если вы используете версию device mapper в из серии ядра 2.6 kernel.org, следующие команды и типы LV не поддерживаются:
- pvmove
- snapshots
Я получаю ошибки о /dev/mapper/control, когда пытаюсь использовать инструменты LVM 2. Что делать?
Основной причиной этого является отсутствие запуска «dmsetup mknodes» после перезагрузки в ядро с поддержкой dm. Этот сценарий создает узел управления для устройства сопоставления.
Если у вас нет "dmsetup mknodes", не отчаивайтесь! (Хотя вам, вероятно, следует обновиться до последней версии device-mapper.) Довольно легко создать файл /dev/mapper/control самостоятельно:
Убедитесь, что у вас загружен модуль device-mapper (если вы не встроили его в ядро).
Запускаем # cat /proc/misc | grep device-mapper | awk '{print $1}' и обратите внимание на напечатанное число. (Если вы не получили никакого результата, обратитесь к шагу 1.)
Запускаем # mkdir /dev/mapper - если вы получите сообщение об ошибке, говорящее, что /dev/mapper уже существует, убедитесь, что это каталог, и двигайтесь дальше.
Запускаем # mknod /dev/mapper/control c 10 $number где $number — это число, напечатанное на шаге 2.
Нужен ли мне специальный модуль ядра lvm2?
Нет. Вам нужен device-mapper. Инструменты lvm2 используют device-mapper для взаимодействия с ядром и выполняют сопоставление всех своих устройств (отсюда и название device-mapper). Пока у вас есть device-mapper, вы сможете использовать LVM2.
В моей системе установлен и работает LVM 1. Как использовать LVM 2?
- Начните с удаления всех моментальных снимков LV в системе. Они не обрабатываются LVM 2 и предотвратят активацию источника при запуске LVM 2.
- Убедитесь, что у вас есть способ загрузки системы, отличный от стандартного загрузочного раздела. Имейте на нем инструменты LVM 1, стандартные системные инструменты (монтирование) и ядро, совместимое с LVM 1, на случай, если вам понадобится вернуться и исправить некоторые вещи.
- Возьмите исходный код инструментов LVM 2 и исходный код устройства сопоставления и скомпилируйте их. Перед компиляцией инструментов LVM 2 вам необходимо установить библиотеку картографа устройств с помощью команды «make install». Также скопируйте скрипт dm/scripts/devmap_mknod.sh в /sbin. Я рекомендую пока устанавливать только двоичный файл lvm, чтобы у вас был доступ к инструментам LVM 1, если они вам понадобятся. Если у вас есть доступ к пакетам для LVM 2 и device-mapper, вы можете установить их, но опасайтесь, что они перезапишут ваш набор инструментов LVM 1.
- Получите ядро, совместимое с картографом устройств, либо встроенное, либо в виде модуля ядра.
- Выясните, где LVM 1 был активирован в ваших сценариях запуска. Убедитесь, что к этому моменту модуль отображения устройств загружен (если вы используете средство отображения устройств в качестве модуля), и добавьте '/sbin/devmap_mknod.sh; лвм вгскан; lvm vgchange -ay' потом.
- Установите ядро с поддержкой картографа устройств. Перезагрузить. Если все пойдет хорошо, вы должны работать с lvm2
Если у вас остались вопросы о том, как восстановить данные с LVM разделов в Linux, задавайте их в комментариях.