6 мая 2011 г.

LVM раздел из 2х флешек

Насмотревшись видео от Яндекса решил по извращаться с LVM. В принципе я до этого читал, даже когда-то приходилось добавлять новый диск в работающую систему, но особо как-то не вникал. В одной из лекций упоминался LVM, заинтересовало... Вообщем ничего лучше не придумал как объединить 2 флешки в один "диск"...

Собственно что имеется:
  • флешка на 1Гб
  • флешка на 2Гб
  • Система убунта

Чего хочется:
один раздел на 3Гб


В убунте мне понадобилось поставить пакет:
sudo aptitude install lvm2 && partprobe
Ниже пример как сделать 1 флешку в виде LVM, затем к полученному разделу добавить вторую флешку. начнем с первой. у меня флешка подмаунтилась как /dev/sdb1, соответственно помечаем её как PV (Physical Volume):
dip56245@dip56245-laptop:~$ sudo pvcreate /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created
dip56245@dip56245-laptop:~$ sudo pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb1       lvm2 a-   1,89g 1,89g
теперь получившийся раздел помечаем как VG(Volume Group) с нужным нам именем:
dip56245@dip56245-laptop:~$ sudo vgcreate dipVg0 /dev/sdb1 
  Volume group "dipVg0" successfully created
dip56245@dip56245-laptop:~$ sudo vgs
  VG     #PV #LV #SN Attr   VSize VFree
  dipVg0   1   0   0 wz--n- 1,89g 1,89g
Имя нашей группы будет dipVg0, желательно делать уникальным, особенно если планируете еще где-то использовать кроме как дома.

теперь можно создать LV(Logical Volume), т.е. то что можно отформатировать и подмаунтить:
dip56245@dip56245-laptop:~$ sudo lvcreate -n data -L 1890M dipVg0
  Rounding up size to full physical extent 1,85 GiB
  Logical volume "data" created

Дальше отформатируем как ext4 полученный раздел:
dip56245@dip56245-laptop:~$ sudo mkfs.ext4 /dev/dipVg0/data 
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
121200 inod'ов, 484352 блоков
24217 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=499122176
15 block groups
32768 blocks per group, 32768 fragments per group
8080 inod'ов в группе
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912

Сохранение таблицы inod'ов: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

теперь у нас есть раздел с которым уже можно работать, подмаунтить или через наутилус открыть, закинуть файлики в него и т.д.
теперь добавляем вторую флешку:
dip56245@dip56245-laptop:~$ sudo pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created

добавляем его к нашему существующему разделу:
dip56245@dip56245-laptop:~$ sudo vgextend dipVg0 /dev/sdc1 
  Volume group "dipVg0" successfully extended
dip56245@dip56245-laptop:~$ sudo pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sdb1  dipVg0 lvm2 a-     1,89g  40,00m
  /dev/sdc1  dipVg0 lvm2 a-   960,00m 960,00m
увеличивем раздел и увеличиваем файловую систему:
dip56245@dip56245-laptop:~$ sudo lvresize /dev/dipVg0/data -l100%VG
  Extending logical volume data to 2,82 GiB
  Logical volume data successfully resized
dip56245@dip56245-laptop:~$ sudo e2fsck -f /dev/dipVg0/data
....
dip56245@dip56245-laptop:~$ sudo resize2fs /dev/dipVg0/data 

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

В конце перед тем как флешки извлекать нужно отключить наш раздел руками или через наутилус:
dip56245@dip56245-laptop:~$ sudo lvscan
  ACTIVE            '/dev/dipVg0/data' [2,82 GiB] inherit
dip56245@dip56245-laptop:~$ sudo lvchange -an /dev/dipVg0/data 
dip56245@dip56245-laptop:~$ sudo lvscan
  inactive          '/dev/dipVg0/data' [2,82 GiB] inherit
dip56245@dip56245-laptop:~$ 
все, флешки можно извлекать, не боясь потери данных. После подключения 2х флешек нам снова доступен раздел.

Комментариев нет: