如何挂载LVM卷?


36

我正在尝试在Linux中挂载LVM2卷,但是我在网上看到的所有说明都说要挂载卷组,例如:

mkdir -p /mnt/VolGroup00/LogVol00

但我不知道该如何命名。我在Palimpsest中看到了驱动器,这就是我所知道的所有信息。


我很惊讶没有人提到findmnt命令。您只要做一个findmnt -l,就可以得到想要的东西。为了获得更好的版本,请尝试以下操作:findmnt -l | grep ' /dev/\S\+'
C0deDaedalus

遗憾的是,答案中没有从dd / raw映像中看到LVM卷挂载的任何解决方案。非常高兴看到某些解决方案是否也适用于此用例。
gies0r

Answers:


52

这是我用来从Fedora 17访问LVM的步骤,它应该适用于大多数形式的Linux。

启动Fedora 17。

确保已安装lvm2:

$ sudo yum install lvm2

以root身份加载必要的模块:

$ sudo modprobe dm-mod

扫描系统以查找LVM卷,并在输出中标识具有您的Fedora卷的卷组名称(证明是VolGroup00):

$ sudo vgscan

激活音量:

$ sudo vgchange -ay VolGroup00

找到具有您的Fedora根文件系统的逻辑卷(证明是LogVol00):

$ sudo lvs

为该卷创建安装点:

$ sudo mkdir /mnt/fcroot

挂载它:

$ sudo mount /dev/VolGroup00/LogVol00 /mnt/fcroot -o ro,user

完成后,导航至/ mnt / fcroot并复制文件并将其粘贴到其他位置。


1
很容易做到这一点,并且在ubuntu中为我工作(将yum换成apt-get)。特别是没有其他答案涵盖的激活非常重要。如果您有一个带有LVM的旧驱动器并将其连接到另一个工作系统,则可以采用这种方法。
紫色先生

3
这个答案应该被接受。vgscan,然后vgchange -a y'是必要的步骤。
丹尼尔·丹妮斯

1
确实,激活部分对于使其起作用至关重要。
Zitrax '16

在RedHat 7中,我首先必须运行pvscan --cache。否则,vgscan甚至看不到新的卷组。
凯文·基恩

25

不久前面对这个问题,我已将其发布在我的博客上

列出所有分区,键入

linux:/ # lvmdiskscan

您将获得类似这样的列表

File descriptor 3 left open
File descriptor 4 left open
/dev/dm-0 [ 9.67 GB]
/dev/sda1 [ 78.41 MB]
/dev/dm-1 [ 6.44 GB]
/dev/sda2 [ 115.52 GB]
/dev/dm-2 [ 2.00 GB]
/dev/sda3 [ 18.11 GB] LVM physical volume
/dev/sda5 [ 15.33 GB]

注意/dev/dm-x,这些是与LVM分区相对应的设备。还要注意尺寸。

接下来,键入lvdisplay以显示所有可用逻辑卷的详细列表。

lvdisplay |more

LV Name /dev/system/home
VG Name system
LV UUID 1QP9XM-vlKi-umNO-CXvV-TnZN-RCLk-e1FDIr
LV Write Access read/write
LV Status available
# open 1
LV Size 9.67 GB
Current LE 2475
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

— Logical volume —
LV Name /dev/system/root
VG Name system
LV UUID D1fKUJ-uU1C-jlVB-4imh-rrgy-FQu0-TC2Ssm
LV Write Access read/write
LV Status available
# open 1

LV Size 6.44 GB
Current LE 1649
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

— Logical volume —
LV Name /dev/system/swap
VG Name system
LV UUID w5LqIb-xvcr-Xsbk-y3wg-lT3i-LqdN-GFK8Mi
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

现在,从以上数据集中,我们可以推断出我/home的大小为9.67 GB的分区可以作为LV组/dev/system/home使用/dev/dm-0

现在我们知道了分区的可用位置,我们可以使用mount命令继续安装,如下所示:

mount /dev/dm-0 /home

然后,您的LV分区已挂载!


7

您可以通过运行获取卷名列表lvscan。输出看起来像

/dev/VG1/LV1
/dev/VG1/LV2
/dev/VG2/LV3

即,卷组名位于中间,逻辑卷位于末尾。查看它们是否与Palimpsest Disk Utility中的信息相对应。

另外,将磁盘与已安装的磁盘列表进行比较(mount),然后查看其中不存在的磁盘。它可能看起来有些不同,例如:

$ mount
/dev/mapper/VG1-LV1 is mounted on /usr
/dev/mapper/VG1-LV2 is mounted on /home

您可以看到卷组和逻辑卷的末尾位置。

找到正确的驱动器后,以通常的方式安装它:

mount /dev/VG2/LV3 /mnt

3

我发现guestmount(1)是最简单的方法。

# guestmount -m /invalid/path  -a /path/to/block/device /mnt/
guestmount: '/invalid/path' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
(...)
guestmount:     /dev/vg0/root (ext4)
(...)

# guestmount -m /dev/vg0/root -a /path/to/block/device /mnt

另请参见http://libguestfs.org/guestmount.1.html

guestmount在ubuntu,libguestfs-toolsRHEL及其衍生版本上打包。


2

这是我发现很方便的另一种安装方式:

DISK=mydisk

lvdisplay | grep $DISK | grep "LV Path" | sed 's/.* //g'
LV_DISK=$(lvdisplay | grep $DISK | grep "LV Path" | sed 's/.* //g')

fdisk -l $LV_DISK
fdisk -lu $LV_DISK | sed -n '/lv[0-9]p[1-3]/ p' | grep p1 | awk '{print $2}'

OFFSET=$(fdisk -lu $LV_DISK | sed -n '/lv[0-9]p[1-3]/ p' | grep p1 | awk '{print $2}')
OFFSET=$((OFFSET * 512))

MOUNT=/mnt/$DISK
mkdir -p $MOUNT
mount -o loop,offset=$OFFSET $LV_DISK $MOUNT

1

您可以使用以下命令查看lvm的名称

lsblk

那么您可以在/ dev / mapper /目录下找到该名称,例如,我可以通过以下方式挂载旧的主目录:

mount /dev/mapper/rhel-home /mnt

0

这可以通过带有KVPM的UI来完成。

只需选择要挂载的组,然后单击“挂载fs”选项。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.