It:HOWTO: Mount LVM

From Sabayon Wiki
Jump to: navigation, search

Mounting LVMs

Procedura manuale

Montare una partizione LVM può sembrare tosto, ma non lo è. In realtà, nonostante la lunghezza di questa guida, dovrai solo eseguire una manciata di comandi, e la maggior parte di essi giusto per ottenere delle informazioni. Non disperare, la farò meno dolorosa possibile. Tutti questi comandi dovranno essere eseguiti come root all'interno di un terminale (l'accesso root si ottiene col comando su). Mi raccomando, dai un'occhio ai nomi dei volumi, che potrebbero differire da questa guida.

 # pvs 

dovrebbe mostrare qualcosa di simile a:

sabayonx86 sabayonuser # pvs
  PV         VG         Fmt  Attr PSize PFree 
  /dev/sda2  VolGroup00 lvm2 a-   7.88G 32.00M

Guardando da vicino possiamo capire che esiste un disco in posizione /dev/sda2 che ha LVM e che è grande 7.88GB. In questo caso è di certo quello che vogliamo, anche perché è l'unico. Notare che in questo caso il nome è VolGroup00, ma potrebbe (dovrebbe!) essere diverso nella vostra installazione.

Bene, ora vediamo cosa contiene questo LVM

 # lvdisplay /dev/VolGroup00 
sabayonx86 sabayonuser # lvdisplay /dev/VolGroup00
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                SWp2V0-1xPU-0tOP-UnPs-snxF-THUl-pZMKb2
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                6.88 GB
  Current LE             220
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           251:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                MGBeJP-ohrX-KLju-5V78-iJOi-pP3w-huaOmC
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                992.00 MB
  Current LE             31
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           251:1
  

Ci servono due cose di questa lista: LV name e LV Size. Abbiamo una partizione di 6.88GB ed una di 992MB. Possiamo assumere con una certa tranquillità che la più piccola delle due sia il nostro swap, quindi la più grande è il filesystem che ci interessa. Il suo nome è /dev/VolGroup00/LogVol00, ma potrebbe essere diverso nella vostra installazione.

OK, sappiamo tutto quello che ci serve. Ora dobbiamo creare una cartella che faccia da punto di montaggio per il nostro volume e montarcelo sopra.

# cd /mnt
# mkdir lvm
# vgscan --mknodes
# lvchange -ay /dev/VolGroup00/LogVol00
# mount /dev/VolGroup00/LogVol00 /mnt/lvm

Ovviamente sostituite /dev/VolGroup00/LogVol00 con la stringa propria della vostra installazione, che vi sarete segnati seguendo la parte precedente della guida.


Procedura automatica mediante uno script

Il seguente script farà tutto il lavoro sporco per voi, in un modo appena differente. Devi solo copiare e incollare il testo sotto in un file di testo sul tuo sistema. Una volta copiato e incollato, salva il file ed eseguirlo come root, oppure scaricarlo direttamente da questa discussione nei forum. Se scarichi dai forum, non dimenticare di rinominare il file lvm-mount.sh. In qualunque modo tu lo faccia, dopo che il file è pronto, come root esegui i seguenti comandi:

# chmod a+x lvm-mount.sh
# sh lvm-mount.sh 

Ora lo script verrà eseguito e ti farà sapere dove ha montato i tuoi LVM per te. Ti stamperà anche alcune istruzioni su schermo, come ad esempio quelle per aprire un chroot nel tuo LVM, nel caso ne avessi bisogno.

File: lvm-mount.sh
#! /bin/bash
## This script is released under the GPL version 2
## copyright (2009) James Cook
## Thanks goes to Klaus Knopper who reminded me of something
## very simple that I had forgotten at the time, thanks bud.
## the author may be contacted at:
## azerthoth (at) gmail.com

## Check for user is root
## Thanks to micia for the suggestion
if [ $UID -ne 0 ]; then
   echo "You need to be root to run this script!"
   exit 1
fi

## get them all into /dev/mapper
modprobe dm-mod 2> /dev/null || :
vgscan --ignorelockingfailure --mknodes || :
vgchange -aly --ignorelockingfailure || return 2
clear
mkdir /LVM
cd /dev/mapper

## Create directories and mount
for FILE in *; do
test -b "$FILE" && mkdir /LVM/$FILE && mount /dev/mapper/$FILE /LVM/$FILE 2>/dev/null
done

## List good partitions
echo "Cleaning up LVMs that were swap partitions or with unsupported"
echo "File Systems from the list. This will not effect those partitions"
echo "There is just no need to list or parse them"
rmdir /LVM/Vol* 2>/dev/null"
echo " "
echo "The following LVM(s) were mounted for you and are ready to use"
echo " "
ls /LVM
echo " "
echo "You can find them in /LVM"
echo " "

## chroot instructions
echo "If you are rescuing/fixing a previous installation please issue"
echo "the following commands"
echo "cp -L /etc/resolv.conf /LVM/<your_lvm_name>/etc/resolv.conf"
echo "mount -t proc none /LVM/<your_lvm_name>/proc"
echo "mount -o bind /dev /LVM/<your_lvm_name>/dev"
echo "chroot /LVM/<your_lvm_name> /bin/bash"
echo "env-update"
echo "source /etc/profile"
## this process may also be interactively automated in the future
## more coffee and ambition is needed

Conclusione

Non è stato così duro come sembrava, vero?

~Az

~Tradotto da DanySK