lvm和一个分区问题

lvm和一个分区问题

所以当我这样做时(作为根)

fdisk -l

我看到/dev/sda1并且/dev/sda2

现在我正在练习创建逻辑卷,当我尝试分区时

/dev/sda2

我有两个新/dev/sda2p1分区/dev/sda2p2

然后我跑

partprobe

但当我尝试创建光伏时

/dev/sda2p1 /dev/sda2p2

它说即使当我运行时也找不到这些设备

fdisk -l /dev/sda2

我确实看到它们列在那里(并且在创建这些分区 lvm 时我确实选择了类型 8e)

我究竟做错了什么 ?

在此输入图像描述

答案1

我究竟做错了什么?

左心室容量逻辑卷不是用创建的fdisk。你需要用它lvcreate来代替。

我在创建这些分区lvm时确实选择了类型8e

使用fdisk设置分区类型,让你提示某个分区可能包含LVM物理体积。与设置任何其他分区类型一样,这实际上并不格式化分区。将分区格式化为 LVM物理体积,你需要使用pvcreate.

你做pvcreate第一个。然后分配给LVM卷组,例如使用创建一个新的 VG vgcreate myvg /dev/sda2。然后就可以创建逻辑卷了。

您可以继续从手册页执行此操作,您不需要在这里设置任何非默认选项,但寻找满足这些标准的优秀教程可能更容易:-P。


那么你做了些什么?好吧,您实际上将分区/dev/sda2本身视为磁盘。您使用分区表对其进行格式化,并在其中创建分区。显然fdisk很高兴让您这样做而不认为这是一个问题:)。然而,这通常没有用处,也不是人们所做的事情。 PC 上的 BSD 安装程序执行的操作与此类似,但 Linux 安装程序则不然。我尝试自己创建类似 sda2p1 的东西。我的结论是 Linux 内核本身不支持这样的嵌套分区表,尽管如果您了解发生了什么,用户空间命令可以让您访问它们。

在我自己的测试中,partprobe /dev/sda8失败了。它似乎很困惑,认为分区已经被使用,并且报告的错误数量比我系统上任何地方都多。相反,kpartx -av /dev/sda8在我的例子中,使用有效的方法来检测和映射“sda8p1”。然而,Linux 内核似乎不支持这样的嵌套分区。[1]内核不知道块设备sda8p1。 (它没有出现在/sys/class/block该名称下)。相反,结果kpartx是创建一个名为 的“设备映射器”块设备dm-0。它的创建是为了cat /sys/block/dm-0/dm/name显示sda8p1

即使在kpartx命令之后,我的系统也没有在 处创建设备节点/dev/sda8p1。相反,设备节点可以作为 访问/dev/mapper/sda8p1

(或者直接作为/dev/dm-0. ls -l /dev/mapper显示文件有符号链接/dev/dm-*)。

[1] 额外事实:sda1等的设备节点有预分配的设备号。没有预先分配的号码sda2p1等。

答案2

首先你有一个物理硬盘,例如sdasdb A 物理硬盘包含分区表。

您可以将整个磁盘添加到您的lvm,那么您不需要分区表。例如:

pvcreate /dev/sda

或者您创建一个分区表,fdisk或者cfdisk在此之后您必须创建物理范围,例如:

pvcreate /dev/sda5

命令pvcreate创建物理范围现在您必须创建一个卷组,一个卷组包含许多物理盘区,一个卷组可以包含来自一个或多个设备的物理盘区。

vgcreate VGName /dev/sda5
#          ^the name of your new volume group
#                    ^the partition or device

您可以查看vgs卷组的可用空间。

lvcreate -L 100G -n home VGName
#           ^size of your new logical volume
#                    ^with -n you can set a name e.g. home
#                          ^at the end the name of your VolumeGroup

lvcreate -l 100%FREE如果您愿意使用整个卷组或lvcreate -l60%VG60% ,则可以使用

创建逻辑卷后,您可以创建文件系统,例如 ext4mkfs.ext4 /dev/VGName/home

相关内容