Возможно ли конвертировать Linux box в LVM после свершившегося факта?

17

Мой сервер Linux использует LVM, потому что год назад я заменил машину и установил ее с нуля. LVM был спасителем жизни, и я люблю его гибкость. Однако мой ноутбук с Linux в последний раз был полностью установлен три года назад и поэтому использует прямые разделы.

Можно ли - без переустановки - преобразовать существующую систему в LVM? Если да, то какие инструменты могут выполнять эту работу?

Я ожидаю, что любые файловые системы для совместного использования с Windows в системе с двойной загрузкой не могут быть LVM. Если я ошибаюсь, пожалуйста, дайте мне знать, но я был бы удивлен.

Эдди
источник

Ответы:

11

Да, это можно сделать.

Да, вы можете использовать его для системы с двойной загрузкой Windows, если вы сделаете Windows первым разделом, а это основной раздел (не расширенный внутри логического раздела ). Мои инструкции здесь не охватывают эту ситуацию, которая требует от вас некоторого опыта работы с двойной загрузкой. Если вам нужна двойная загрузка Windows / Linux, не следуйте советам ниже этого пункта.


Я пойду лучше: за несколькими исключениями вы сможете перенести весь ноутбук в режиме реального времени , если вы используете внешний диск с достаточной емкостью.

Предупреждение! Эта процедура ЧРЕЗВЫЧАЙНО ОПАСНА! Предполагается, что вы обладаете глубокими знаниями о процессе разбиения, у вас есть отдельный раздел / boot, и вы знаете, что неудачная попытка может оставить вас с поврежденной мозговой установкой, ЧТО НЕ ЗАГРУЗИТЬ! ВЫ БЫЛИ ПРЕДУПРЕЖДЕНЫ!

Тебе понадобиться:

  • / boot находится в отдельном разделе. Если у вас есть объединенная корневая файловая система (все вставлено в /), тогда это не будет работать.
  • Возможность загрузки с жесткого диска USB.
  • внешний диск, достаточно большой, чтобы вместить все данные и программы в существующей системе. Обязательно запустите "du /" и дождитесь конечного результата, чтобы по-настоящему почувствовать, какое пространство вам понадобится.

Общая процедура (простите за отсутствие нескольких команд, я пишу это очень быстро):

  1. Подключите внешний диск и найдите его имя устройства. Давайте представим, что вы видите его как / dev / sdb.
  2. Создайте два раздела на вашем внешнем диске. В нашем примере это будет отображаться как / dev / sdb1 и / dev / sdb2.

    расстались / dev / sdb

  3. Отформатируйте первый раздел как ext2 или ext3 с пометкой «boot». Отформатируйте второй раздел на внешнем диске как «Linux LVM».

  4. Получите новоиспеченный том LVM, распознаваемый системой с помощью

    pvscan; vgscan

  5. Вырежьте достаточно большой кусок внешнего тома LVM, чтобы вместить весь жесткий диск ноутбука. Если сомневаетесь, просто используйте все доступное пространство.

  6. Отформатируйте свой том на основе LVM как ext3 или любую файловую систему, которая вам нравится.

    mke3fs / dev / ExternalUSBVolume / ExternalRoot

  7. Для каждого нестандартного монтирования файловой системы создайте каталог на внешнем диске и скопируйте (с атрибутами) все свои файлы в каждом монтировании на этот диск. Игнорируйте копии точек монтирования, таких как / proc и т. Д., Поскольку они являются «особыми».

  8. создайте специальные точки монтирования вручную, чтобы они существовали на вашем внешнем диске. Не заполняйте их, просто убедитесь, что имена и разрешения совпадают.
  9. (Очень осторожно) используйте ваш загрузчик для установки загрузочного образа на внешний диск в раздел / boot. Этот процесс немного сложен, поэтому я оставлю это вам, чтобы найти информацию в другом месте. Это также опасно, если вы его испортите - вы можете попытаться перезаписать ваш загрузчик на вашем ноутбуке. Быть осторожен.
  10. Перезагрузите свой ноутбук. Когда он проходит POST, не забудьте указать внешний диск в качестве загрузочного диска. На данный момент у вас должна быть (более-менее) точная копия диска вашего ноутбука. (другим администраторам: да, я знаю, что файлы журналов и другие файлы не копируются на 100%, но здесь это не главное ... речь идет о перемещении данных и инструментов ...)
  11. После того, как вы сможете загрузиться с внешнего диска, вы сможете использовать его для очистки диска вашего ноутбука. В этот момент вы «живете» вне своего внешнего диска. Имейте это в виду.
  12. Затем используйте редактор разделов - gparted или любой другой - чтобы удалить исходные разделы ноутбука (пока данные ...), затем пометьте свою новоиспеченную область как "LVM". Пройдите процесс распознавания, разбивки на разделы, форматирования вашего тома LVM и т. Д.
  13. Используя процесс зеркалирования LVM, отразите вашу действующую систему (которая в данный момент находится на внешнем диске) обратно на диск ноутбука. Для этого сделайте перерыв на обед (или два), так как это займет время.
  14. Переустановите работающую файловую систему, переместив / filesystem с внешнего диска на том LVM вашего ноутбука.
  15. Перезапустите процесс установки загрузчика. Это очень важно, поскольку текущий ramdisk не будет иметь правильных настроек и не будет знать, что вы переместили вещи. Невыполнение этого требования приведет к не загружаемой системе и посещению аварийного диска. Если ничего не помогает, вы можете снова загрузиться с внешнего диска (ничего не потеряно ...)
  16. Перезагрузите ноутбук без подключенного внешнего диска и укажите вместо него внутренний диск ноутбука. Должно загрузиться нормально. Отметьте все, что кажется или выглядит обиженным или сломанным (ничего не должно быть), и исправьте это.
  17. Расслабьтесь и наслаждайтесь напитком для хорошо выполненной работы.
Эйвери Пэйн
источник
3
Конечно, можно выполнить живую миграцию на внешнее хранилище (если вы достаточно смелы, вы можете даже развернуть работающую систему на внешний диск и обратно без перезагрузки: D); выполнение всего процесса с живого CD должно быть менее подвержено ошибкам (например, с помощью виртуальных ФС ...)
Лука Теттаманти,
2
И, кстати, LILO и новая версия GRUB (та, которая в конечном итоге станет 2.0) имеют встроенную поддержку LV - нет необходимости в отдельном / загрузочном разделе.
Лука Теттаманти
Я знаю. Но я понял, что «лучше, чем потом сожалеть». Наличие собственного раздела делает исправление немного проще. Возможно, OP должен использовать инструмент на основе Windows, который не понимает LVM (многие не понимают) - в этом случае, по крайней мере, он может изменять menu.lst с помощью grub и т. Д. По мере необходимости. Но спасибо за вклад! :)
Эйвери Пейн
6

Я недавно написал блоки (née lvmify), которые делают это преобразование на месте. Он занимает один раздел, сжимает файловую систему, если необходимо, перемещает начало файловой системы в конец раздела и копирует суперблок LVM (предварительно настроенный с нужным PV / LV / VG) на его место. Если у вас есть несколько разделов, объединение вновь созданных групп томов выполняется с помощью vgmerge. Он не может работать на смонтированных файловых системах.

Габриель
источник
2
Я только что перенес свои 2 раздела ext4 (общим объемом 120 ГБ) в LVM примерно за 2 минуты, используя блоки. Работал без нареканий.
Амр Мостафа
3

Самый простой способ перенести систему Linux на LVM - это использовать внешний диск (USB, eSATA) и систему на основе CD-ROM, такую ​​как grml, чтобы переместить все данные с ПК на внешний диск, а затем переразбить ПК с помощью LVM. Наконец, скопируйте все обратно, настройте и переустановите grub в MBR.

Эта процедура немного сложна, но у вас всегда есть данные на внешнем диске и компакт-диске для загрузки вашей системы.

Как вы и ожидаете, Windows не может получить доступ к любым томам LVM.

Дэвид Шмитт
источник
1

Начиная снизу: нет, окна не могут читать логические тома LVM (разделы).

Если у вас есть запасной диск, который можно использовать в качестве временного хранилища, это всего лишь вопрос загрузки с живого компакт-диска, копирования данных во временную папку, создания одного или нескольких LV-файлов и их восстановления. Непрактично (но возможно) выполнить преобразование на месте в LVM; вам в основном приходится сокращать старый раздел и изменять размер LV несколько раз (и конечный LV будет фрагментирован)

Лука Теттаманти
источник
1

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

Если вы не можете сделать это, потому что вы не знаете, где находятся ваши данные, у вас есть большая проблема, и это ваш шанс ее решить.

Карлито
источник
1

http://serialized.net/2006/04/migrating-live-filesystems-to-lvm/ имеет интересный способ миграции живого фс. Добавьте его как часть группы RAID-1, которую ОС затем отразит на другое устройство (которое может быть логическим томом LVM). Это немного устарело, так что я не знаю, будет ли это все еще работать.

Брайан Минтон
источник
0

Вам, вероятно, придется сделать резервную копию данных на другом диске или разделе (или iso?), Создать контейнер LVM, а затем восстановить данные в контейнер.

казарка
источник