четверг, 22 мая 2014 г.

шпора по lvm

Как то раз я к чертям загадил MBR.
При нарезке разделов больше 4, неожиданно узнал, что MBR так не может.
На помощь пришел lvm2.

Готовимся

Грузимся с флехи ставим gparted и размечаем том под линь. У меня это выглядит так:
sdb1 - винда
sdb2 - логический диск
sdb5 - виндовые данные
sdb6 - том для linux
В 14 бубунте лвм вкючен в поставку, по этому к консоли проворачиваем следущее
sudo su
pvcreate /dev/sdb5            #запиливаем лвмный физический том 
vgcreate local /dev/sdb5      #и лвмную группу на этом томе с именем local
lvcreate -L 7G -n root local  #теперь пилим основные разделы
lvcreate -L 5G -n home local
lvcreate -L 1G -n swap local
lvcreate -L 10G -n data local
lvcreate -L 3G -n log local   #а логи я хочу в отдельный диск складывать
Создаем на разделах файловые системы и отключаем журналирование, где не требуется
sudo mkfs.ext4 /dev/local/root
mkfs.ext4 /dev/local/home
mkswap -f /dev/local/swap
mkfs.ext4 /dev/local/data
mkfs.ext4 /dev/local/log 
tune2fs -r 0 /dev/local/home
tune2fs -r 0 /dev/local/data
tune2fs -r 0 /dev/local/log
tune2fs -L Data /dev/local/data # бонус: отображение метки диска в файломененджере

Ставим систему

Тут все, как обычно, все делаем руками и не доверяем авторазбивке. Главное не форматировать лвмные разделы и не напутать что и куда монтируем. Я в как то с недосыпу поставил все на загрузочный внешний винт. Благо, резервных копий настрогал достаточно.

После установки

Если у вас LiveCD по древнее, то надо поставить lvm2 в свежеиспеченную систему, так как в поставке ее не было. А без этого пакета ничего не загрузится. Примонттируем установленную систему, переключимся в ее баш и поставим пакет.
sudo vgchange -a y
mount /dev/local/root /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash
apt-get install lvm2 

Где то налажали

Если все пошло по пизде, не отчаиваетесь. Если вы заговнили загрузочный сектор - восстановите, если косо встала система - ставьте по новой, после того как выпилите lvm разделы
sudo vgchange -a n
umount /dev/local/root
umount /dev/local/home
umount /dev/local/swap
umount /dev/local/data
umount /dev/local/log
lvremove /dev/local/root
lvremove /dev/local/home
lvremove /dev/local/swap
lvremove /dev/local/data
lvremove /dev/local/log
vgreduce local /dev/sdb5
vgremove local
pvremove /dev/sdb
А теперь можно попробовать скопировать что-нибудь. Если не выходит сложить что-нибудь в примонтированный раздел, то есть один метод. Заглянем в fstab и видим, что он примонтирован от рута и вообще ничто  ничего там кроме суперпользователя делать не может. Надо там прописать
/dev/mapper/local-data /data           ext4    defaults,user     0       2
что бы он начал монтироваться от вас.
Далее ребутимся, отмонтируем, примонтируем и chown'ом меняем владельца на себя.

По прошествии времени

Возможно вам захочется добавить свободного места из lvm тома в какой-нибудь раздел. Например в local. Не ссыте и добавляйте, после того каr убедитесь что место есть
pvdisplay #смотрим используется ли лог. томами используется физ. том 
vgchange -a y
vgdisplay local                 #изучаем
lvresize -L 15G /dev/local/data #просим стать величиной в 15гиов
resize2fs /dev/local/data       #говорим файлухе на разделе "растянуться"
df -h                           #смотрим что получилось
Возможно, захочется откусить от 200 гигов от ФС и перераспределить свободное пространство:
pvdisplay #смотрим используется ли лог. томами используется физ. том 
umount /dev/local/data         #отмонтируем    
resize2fs /dev/local/data 190G #ужимаем файлуху до 190
e2fsck -f /dev/local/data      #проверяем
resize2fs /dev/local/data 190G #ужимаем том
resize2fs /dev/local/data      #говорим файлухе на разделе "растянуться"
mount /dev/local/data          #примонтируем
df -h                          #смотрим что получилось

Наслаждаетесь.