alkabary Asked: 2017-12-06 10:20:44 +0800 CST2017-12-06 10:20:44 +0800 CST 2017-12-06 10:20:44 +0800 CST lvm 和一个分区问题 772 所以当我这样做时(作为根) fdisk -l 我看到/dev/sda1并且/dev/sda2 现在我正在练习创建逻辑卷,当我尝试分区时 /dev/sda2 我有两个新分区/dev/sda2p1和/dev/sda2p2 然后我跑 partprobe 但是当我尝试创建 pv 时 /dev/sda2p1 /dev/sda2p2 它说即使我运行时也找不到这些设备 fdisk -l /dev/sda2 我确实看到它们在那里列出(并且在创建这些分区 lvm 时我确实选择了 8e 类型) 我究竟做错了什么 ? partition lvm 2 个回答 Voted Best Answer sourcejedi 2017-12-06T10:32:23+08:002017-12-06T10:32:23+08:00 我究竟做错了什么? LVM逻辑卷不是用fdisk. 你需要lvcreate改用。 创建这些分区lvm时我确实选择了8e类型 使用 fdisk 设置分区类型,让您提示分区可能包含 LVM物理卷。与设置任何其他分区类型一样,这实际上并不格式化分区。要将分区格式化为 LVM物理卷,您需要使用pvcreate. 你做第pvcreate一个。然后将其分配给 LVM卷组,例如使用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等。 FaxMax 2017-12-06T12:19:41+08:002017-12-06T12:19:41+08:00 首先,您有一个物理硬盘,例如sda或sdb 一个物理硬盘可以包含一个分区表。 您可以将整个磁盘添加到您的lvm.,然后您不需要分区表。例如: pvcreate /dev/sda 或者您创建一个分区表fdisk或cfdisk在此之后您必须创建物理范围,例如: pvcreate /dev/sda5 命令pvcreatecreate physical extents 现在您必须创建一个卷组,一个卷组包含许多物理范围,一个卷组可以包含来自一个或多个设备的物理范围。 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
LVM逻辑卷不是用
fdisk
. 你需要lvcreate
改用。使用 fdisk 设置分区类型,让您提示分区可能包含 LVM物理卷。与设置任何其他分区类型一样,这实际上并不格式化分区。要将分区格式化为 LVM物理卷,您需要使用
pvcreate
.你做第
pvcreate
一个。然后将其分配给 LVM卷组,例如使用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
等。首先,您有一个物理硬盘,例如
sda
或sdb
一个物理硬盘可以包含一个分区表。您可以将整个磁盘添加到您的
lvm
.,然后您不需要分区表。例如:或者您创建一个分区表
fdisk
或cfdisk
在此之后您必须创建物理范围,例如:命令
pvcreate
create physical extents 现在您必须创建一个卷组,一个卷组包含许多物理范围,一个卷组可以包含来自一个或多个设备的物理范围。您可以查看
vgs
卷组的可用空间。lvcreate -l 100%FREE
如果您喜欢使用整个卷组或lvcreate -l60%VG
60%,则可以使用创建逻辑卷后,您可以创建文件系统,例如 ext4
mkfs.ext4 /dev/VGName/home