答案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
首先你有一个物理硬盘,例如sda
或sdb
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%VG
60% ,则可以使用
创建逻辑卷后,您可以创建文件系统,例如 ext4mkfs.ext4 /dev/VGName/home