找不到设备/ dev / sdb1(或被过滤忽略)


10

我试图添加一个物理卷以用于添加卷组,从而在其中添加LV。不幸的是,我收到以下错误。

[root@server ~]# pvcreate /dev/sdb1
Device /dev/sdb1 not found (or ignored by filtering).

[root@server ~]# fdisk -l /dev/sdb

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 19966.2 GB, 19966213488640 bytes
255 heads, 63 sectors/track, 2427420 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267350  2147483647+  ee  GPT

我会很感激您能提供的任何帮助。这将是我第一次必须添加PV,而在研究此问题时,我发现并没有任何帮助的方法。

操作系统是centos 6-64bit

筛选器

# By default we accept every block device:
filter = [ "a/.*/" ]

# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]

# When testing I like to work with just loopback devices:
# filter = [ "a/loop/", "r/.*/" ]

# Or maybe all loops and ide drives except hdc:
# filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]

# Use anchors if you want to be really specific
# filter = [ "a|^/dev/hda8$|", "r/.*/" ]

分手:

parted /dev/sdb "unit s" "print"
Model: Adaptec AdaptecRAID5 (scsi)
Disk /dev/sdb: 38996510720s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

确定,那么您拥有什么过滤器/etc/lvm.conf?当您使用它时,请向我们展示您的分区表。
迈克尔·汉普顿

使用grep filter /etc/lvm.confparted /dev/sdb "unit s" "print"
suprjami


Answers:


7

MBR中的分区类型设置为“ ee”,这意味着磁盘上应该有一个GPT分区表,但是如图parted所示,根本没有GPT表。

您需要:
a)使用parted创建GPT分区,并将该分区用作PV
b)完全从MBR中删除分区表,而仅使用块设备/dev/sdb作为PV


我用parted做一个GPT分区。然后,我对其进行格式化:mkfs.ext4 / dev / sdb1 mke2fs 1.41.12(2010年5月17日)mkfs.ext4:设备/ dev / sdb1的大小太大,无法使用4096的块大小以32位表示。
awmusic12635

@ awmusic12635您将不格式化该分区,将使用pvcreate将其转换为物理卷,使用lvcreate从中创建逻辑卷,然后使用文件系统格式化逻辑卷。
2013年

您正在使用EL6。ext4文件系统的最大可能大小限制为16Tb,因为EL6 mkfs不知道64bit文件系统标志。如果您有EL7,则可以制作19Tb ext4文件系统。请使用另一个文件系统(例如XFS),或执行@DerfK所说的并创建较小的LVM逻辑卷。
suprjami 2014年

3

块设备类型也可能是一个问题。如果运行pvcreate-vvvv并且看到诸如“跳过:无法识别的LVM设备类型251”之类的错误,则必须将幻数添加到允许的设备列表中。

只需在其中查找编号的设备类型,/proc/devices然后将其添加到deviceslvm config 的部分/etc/lvm/lvm.conf,例如:

types = [ "bcache", 251 ]

就是这样,您现在可以pvcreate按预期使用。


-vvvv帮助我发现在脚本中pvcreate紧随其后的位置parted /dev/nvme0n1 set 1 lvm on是一个短暂但引人注目的时刻,其中设备/dev/nvme0n1p1是由重新创建的udev。因此,在给定错误进行归档的同时,在shell中成功发布同一命令时,pvcreate 确实找不到它。
Timur Bakeyev '16

@TimurBakeyev好的,是一个很好的方法;-)
Phillipp

2

您分开的输出显示您没有任何分区,因此/dev/sdb1不存在。您需要首先创建分区。


奇怪的是,似乎fdisk和parted提供了不同的输出。谢谢
awmusic12635

2

我发现我要么需要重新启动服务器,要么运行“ partprobe / dev / sdaX”,以便正确地将分区通知给pvcreate。

另外,fdisk不能识别lvm,因此它散发了有关分区的错误,这让我觉得如果不是这种情况,那就是一个更大的问题。


2

请在pvcreate之前运行以下命令

partprobe
partprobe /dev/sdb

然后运行您的命令

pvcreate /dev/sdb1

注意:有时您需要手动更新内核。这就是为什么需要上述命令的原因。

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.