Linux root on lvm

Installing Arch Linux with /root on an LVM

This post is aimed at simplifying the process of installing Arch on Logical Volume Manager (LVM). The info in this post came mostly from this excellent Wiki article, with a couple of additions later on of my own. Why LVM? You can create a snapshot (see my blog post for these) then install some OS updates and if something broke you can just roll back like nothing happened. Neat.

Installing Arch on LVM

These steps are performed during the partitioning phase of installation. Once you’ve finished here continue installation as normal but checking back to this page when you run into issues (which you will with grub for example).

fdisk -l # use this to find your installation medium fdisk /dev/sdX # launches fdisk pointed at your drive

Now we have a 25G partition inside which we’ll create the root physical volume, volume group and logical volumes. This partition should ideally be big enough for a base Arch install (about 10-15G with plenty of breathing room afterwards) and enough room for a snapshot too (usually around 10G), for me I go to 25G.

Create physical volume

pvcreate /dev/sdXX # mine was /dev/sda1 pvcreate --dataalignment 1m /dev/sdXX # this step for SSDs ONLY

Create volume group

Create logical volume

lvcreate -L 15G vgName -n lvName # creates an LV of 15G lvcreate -l +100%FREE vgName -n lvName # fills all free space with an LV

Create filesystems and mount logical volumes

modprobe dm-mod vgscan vgchange -ay

Now create your filesystem of choice, I use ext4 but you can use whatever. Note the file path is /dev/mapper not /dev/sdX . You should refer to your LVM in this manner throughout the installation.

mkfs.ext4 /dev/mapper/vgName-lvName mount /dev/mapper/vgName-lvName /mnt

Continue base installation

You can now continue with the base install. Make sure to pay attention when you get to the mkinitcpio steps, come back here.

Edit mkinitcpio.conf

You’re halfway through your install at this point I hope, and are at the very least running in chroot. Edit this file and insert lvm2 between block and filesystem.

nano /etc/mkinitcpio.conf HOOKS="base udev . block lvm2 filesystems"

Edit lvm.conf

Ctrl + W search: lvmetad = use_lvmetad = 0 and change this from 1 to 0 Ctrl + X to save: y / don’t change filename Then run

Читайте также:  Сброс до заводских настроек linux ubuntu

Complete

You can go back to the main installation instructions now, you should be able to reboot once you’ve finished the other stuff and be good to go!

Источник

unixforum.org

Раздел root под lvm2 (При загрузке не может смонтировать / под lvm2)

Раздел root под lvm2

Сообщение ujinv » 06.11.2008 14:28

Доброго времени суток!

«Всегда сначала читай маны. »
Незвестный мудрец.
«Никогда не чините то, что ещё не поломано.»
Народная мудрость.

Преамбула
Все описанное ниже производилось с: компьютер с 1-м IDE-винчестером 40GB — /dev/sda1 — /boot, /dev/VolGroup00/LogVol00 — /; ОС Fedora 9.
После очередного бездумного апдейта своего домашнего сервера, выяснилось что GRUB перестал работать, а именно после сообщения

система висла и никак не реагировала на мое вмешательство. Было постановлено — «Систему восстановить!» и я начал работать.
Процесс
Первым делом, загрузившись с LiveUSB Fedora 9 (cdrom на данной машине не установлен) было решено восстановить загрузчик:

#grub-install /dev/sda1 #reboot

Лучше не стало — вместо зависшего «GRUB_» моему вниманию был представлен не единожды заполненный этими же словами экран. Итого дальше GRUB_ не продвинулись.
Следующим этапом было монтирование из-под LiveDVD раздела /boot (/dev/sda1) и просмотр его содержимого. В ходе осмотра ничего неожиданного не было обнаружено. Я решил что в логах искать не было смысла, так как всё самое интересное зависало до начало их записи.
Далее начинаются не очень обоснованные действия: из раздела /boot всё было удалено и записаны файлы из соотвествующего раздела LiveDVD, а именно каталог /boot/grub и файлы vmlinuz, system.map и initrd. GRUB был снова переустановлен коммандами:

#grub grub>root (hd0,0) *ля-ля-ля всё ок - ext2fs - наше все grub>setup (hd0,0) *тра-та-та stage1 . no остальное всё ок* grub>quit
title Fedora 9 root (hd0,0) kernel /vmlinuz root=/dev/VolGroup00/LogVol00 ro initrd /initrd

После перезагрузки GRUB сработал как надо, пошла загрузка системы, но дальше initrd дело не пошло — вывалилось с Kernel Panic — к сожалению не скажу точно что за ошибка была дословно, но как я понял проблема была с монтированием /
На третьем этапе было принято решение не использовать kernel и initrd из комплекта LiveDVD. Для этого был очищен /boot и выполнены следующие команды:

# mkdir /media/old #mount -t ext3 /dev/sda2 /media/old /dev/sda2 file system is already mounted or /media/old is busy. #mount -t ext3 /dev/VolGroup00/LogVol00 /media/old /dev/VolGroup00/LogVol00 file system is already mounted or /media/old is busy. #vgscan #vgchange -ay Phisical volume /dev/VolGroup00 is now active. #mount -t ext3 /dev/VolGroup00/LogVol00 /media/old #mount -t ext3 /dev/sda1 /media/old/boot #chroot /media/old yum remove kernel -y #chroot /media/old yum install kernel -y

В результате мы получаем в /boot рабочий набор vmlinuz+initrd для нашего текущего ядра.
На всякий пожарный также сделаем собственный initrd

#cd /media/old/boot #chroot /media/old mkinitrd --force-lvm-mod initrd-custom 2.6.26.5-45.fc9.i686

После перезагрузки как я ни пытался с различными параметрами и разными initrd запустить систему, ничего не выходило — загрузка продолжалась до момента, когда должен быть смонтирован / и тут выходил конфуз, из под lvm почему-то не получалось смонтировать этот раздел и boot failed.
Развязка
«А теперь, внимание, вопрос.»
Проштудировав множество форумов, в которых решалась похожая проблема, удалось выяснить несколько интересных моментов:
1. Такие проблемы как правило возникали на FC3-5.
2. Такие проблемы как правило возникали у людей использующих RAID-массивы.
3. За что эта проблема досталась мне? (см. вступление)

Читайте также:  Alt linux ssh сервер

Возможные решения проблемы:
1. Ещё раз посмотреть, быть может я где-нибудь ошибся в индексах
2. Попробовать сделать новый initrd изменив скрипт его создания в /etc/mkinitrd и вручную добавить модули ответственные за работу с LVM.
3. Использовать опцию загрузки ядра break=premount и вручную вводить vgchange -ay.

А теперь, собственно вопрос: как быть и что делать?

PS: тред начат с работы, поэтому могут присутствовать некоторые ошибки, так как написано по памяти.

Re: Раздел root под lvm2

Сообщение abbris » 06.11.2008 15:53

Вот уж действительно, много судорожных и не обдуманных действий.
Для подобных манипуляций стоит пользоваться не Live, а rescue режимом установочного диска, потому как initrd, используемый в Live-системах весьма отличается от используемых в обычных.
Предлагать решения по ремонту вашей системы непросто, но как «обходной вариант», коли у вас разделы на lvm (что хорошо и правильно), думаю лучше и проще поступить так:
1. Загрузитесь с установочного носителя в rescue режим.
2. С помощью parted выделите место под новую установку системы, где-то 2-3ГБ. Таким образом, у вас должны быть как минимум разделы: для /boot — тот, что использовался прежней системой, новый раздел для нового корня и прежние разделы, в том числе и корень прежней системы.
3. Перезагружаемся с установочного носителя в режим инсталляции и устанавливаем систему заново, используя /boot и новый(!) корень. Устанавливаем минимальный набор приложений.
4. По окончании установки перезагружаемся в новую минимальную систему и в ней в меню grub’а добавляем еще одну запись для загрузки прежней системы, указав ядру параметр root=/dev/VolGroup00/LogVol00, т.е. прежний корень. Также указываем метку для меню загрузки, чтобы знать что грузим.
5. Перезагружаемся и выбираем в меню grub’а вариант с прежним корнем.

Читайте также:  Чем отличается юникс от линукс

Если кроме grub’а и ядра ничего не было повреждено, то все должно загрузиться, если же были повреждены еще какие-либо пакеты, то вы должны увидеть эти проблемы.
Из «второй» («спасательной») системы можно выполнять все необходимые манипуляции с пакетами, используя опцию yum’а —installroot, в которой указать точку монтирования корня прежней системы. Переустановив поврежденные пакеты, вероятно, можно вернуть систему к полноценной жизни.

Re: Раздел root под lvm2

Сообщение Ali1 » 06.11.2008 16:04

Постарайтесь правильно описать таблицу разделов диска.
Видимо :
/dev/sda1 — /boot
/dev/sdaN — /LVM
Попробуйте с DVD:
boot: linux rescue
chroot /mnt/sysimage
grub-install /dev/sda в MBR ставить загрузчик надо.
Это надо было сделать сразу.
После сноса /boot и имея Live CD
выполнить правильно chroot в старый корень, смонтировать /boot,
удалить ядро, установить ядро, установить grub.

Re: Раздел root под lvm2

Сообщение ujinv » 06.11.2008 18:44

После сноса /boot и имея Live CD
выполнить правильно chroot в старый корень, смонтировать /boot,
удалить ядро, установить ядро, установить grub.

#mount -t ext3 /dev/VolGroup00/LogVol00 /media/old
#mount -t ext3 /dev/sda1 /media/old/boot
#chroot /media/old yum remove kernel -y
#chroot /media/old yum install kernel -y

abbris
Спасибо за ответ!
А вот с установкой на ещё однин раздел такой же системы — это оч. интересная идея! Сегодня вечером обязательно попробую!
А если я не буду для неё (новой установки) создавать LVM (а просто сделаю её /dev/sda5 напимер), будет ли в initrd поддержка /dev/mapper? Меня терзают смутные сомнения, что именно из-за отсутствия оного у меня все проблемы в жизни.

Re: Раздел root под lvm2

Сообщение Ali1 » 06.11.2008 19:32

.
А если я не буду для неё (новой установки) создавать LVM (а просто сделаю её /dev/sda5 напимер), будет ли в initrd поддержка /dev/mapper? Меня терзают смутные сомнения, что именно из-за отсутствия оного у меня все проблемы в жизни.

#mount -t ext3 /dev/VolGroup00/LogVol00 /media/old
#mount -t ext3 /dev/sda1 /media/old/boot
#chroot /media/old yum remove kernel -y
#chroot /media/old yum install kernel -y

Источник

Оцените статью
Adblock
detector