menu

mount lvm

  • date_range 27/11/2020 17:57
    点击量:
    info
    sort
    linux
    label
    linux

文章出自个人博客https://applelin8.github.io/2020/11/27/mount-lvm,转载请申明


content


vgscan

~$ sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "centos" using metadata type lvm2
  

vgchange

~$ sudo vgchange -a y centos
  3 logical volume(s) in volume group "centos" now active

ls /dev/centos

~$ ls -ahl  /dev/centos/
总用量 0
drwxr-xr-x  2 root root  100 11月 27 10:55 .
drwxr-xr-x 20 root root 4.9K 11月 27 16:46 ..
lrwxrwxrwx  1 root root    7 11月 27 10:55 home -> ../dm-1
lrwxrwxrwx  1 root root    7 11月 27 10:55 root -> ../dm-2
lrwxrwxrwx  1 root root    7 11月 27 10:55 swap -> ../dm-0

mount lvm

mount_lvm.sh

#!/bin/bash                                                                                                                               
#set -xve
 
declare -a volume_groups
 
function get_volume_groups()
{
    id=0
    i=0 
    for line in $(sudo vgscan)
    do  
        eval result[$i]='$line'
        let i++ 
    done
 
    len=${#result[@]}
    for (( i=0;i<$len;i++))
    do  
        if [ ${result[$i]} == 'Found' ]
        then
            volume_groups[$id]=`echo ${result[$i+3]}|sed 's/\"//g'`
            let id++
            let i+=3
        fi  
    done
}
 
function mount_dir()
{
    volume_group=$1
    NR=$2
 
    dir=$(ls /dev/$volume_group/|awk "NR==$NR")
    echo mount dir : /opt/mnt/$volume_group/$dir
    sudo mkdir -p /opt/mnt/$volume_group/$dir
    sudo mount /dev/$volume_group/$dir /opt/mnt/$volume_group/$dir
}

function umount_dir()
{   
    volume_group=$1
    NR=$2
    
    dir=$(ls /dev/$volume_group/|awk "NR==$NR")
    echo umount dir : /opt/mnt/$volume_group/$dir
    sudo umount /opt/mnt/$volume_group/$dir
}   
    
function mount_volume_groups()
{   
    bool=$1
    for (( i=0;i<${#volume_groups[@]};i++ ))
    do
        echo $i: ${volume_groups[$i]}
        volume_group=${volume_groups[$i]}
        sudo vgchange -a y $volume_group
    
        dir_count=`ls /dev/$volume_group|sed -n '$='`
        for((j=1;j<$dir_count;j++))
        do
            if [ ${bool} == "y" ];then
                mount_dir $volume_group $j
            else
                umount_dir $volume_group $j
            fi
        done
    done
}   

function main()
{    
    get_volume_groups
    mount_volume_groups $1
}    
     
main $@

mount

mount_lvm.sh y

ls

:~$ ls /opt/mnt/centos/home/
apple
:~$ ls /opt/mnt/centos/root/
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var

tree

:~$ tree -L 2 /opt/mnt/centos/
/opt/mnt/centos/
├── home
│   └── apple
└── root
    ├── bin -> usr/bin
    ├── boot
    ├── dev
    ├── etc
    ├── home
    ├── lib -> usr/lib
    ├── lib64 -> usr/lib64
    ├── media
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── sbin -> usr/sbin
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var

22 directories, 0 files

umount

mount_lvm.sh n

ls

:~$ ls /opt/mnt/centos/home
:~$ ls /opt/mnt/centos/root

tree

:~$ tree -L 2 /opt/mnt/centos/
/opt/mnt/centos/
├── home
└── root

2 directories, 0 files

评论:


技术文章推送

手机、电脑实用软件分享

微信搜索公众号: farmer in city
wechat 微信公众号:farmer in city