LVM 入门
Table of Contents
引用 Wikipedia:Logical Volume Manager 的解释
LVM 是一种可用在 Linux 内核 的 逻辑分卷 管理器,可用于管理磁盘驱动器或其他类似的大容量存储设备
LVM基本组成
LVM利用Linux内核的 device-mapper 功能来实现 存储系统的虚拟化 (系统分区独立于底层硬件)
通过LVM: 可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions) 可以更简便地扩大和缩小分区 可以增删分区时无需担心某个硬盘上没有足够的连续空间 避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便
LVM的基本组成部分如下:
- 物理卷 ( PV ):一个可供存储LVM的块设备,,它包含一个 特殊的LVM头
例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt)
- 卷组 ( VG ) : 物理卷 的一个 组 ,作为 存放 逻辑卷 的 容器
- 逻辑卷 ( LV ): 逻辑卷存放在一个 卷组 中并由物理块组成
一个类似于物理设备的块设备 例如,可以直接在它上面创建一个文件系统文件系统
- 物理块 ( PE ):一个 卷组 中 最小的连续区域 (默认为 4 MiB ),多个物理块将被分配给一个逻辑卷
可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷
示例:
'''物理硬盘''' 硬盘1 (/dev/sda): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |分区1 50GB (物理卷) |分区2 80GB (物理卷) | |/dev/sda1 |/dev/sda2 | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ __| 硬盘2 (/dev/sdb): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |分区1 120GB (物理卷) | |/dev/sdb1 | | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | '''LVM逻辑卷''' 卷组(Volume Group1) (/dev/MyVolGroup/ = /dev/sda1 + /dev/sda2 + /dev/sdb1): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ |逻辑卷1 15GB |逻辑卷2 35GB |逻辑卷3 200GB | |/dev/MyVolGroup/rootvol |/dev/MyVolGroup/homevol |/dev/MyVolGroup/mediavol | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ __|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
优点
比起普通的硬盘分区管理方式,LVM更富于灵活性:
- 将多块硬盘看作一块大硬盘
- 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
- 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小
- 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
- 可以在线对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作
不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作
- 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线/动态迁移至别的硬盘上
- 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间降低到最小
- 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据
这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统 使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦
缺点
- 在系统设置时需要更复杂的额外步骤
- Windows系统并不支持LVM,若使用双系统,将无法在Windows上访问LVM分区
准备
确保已安装 lvm2 软件包
在LVM上安装 Linux
应该在 linux安装过程 中的的分区和创建文件系统这一步中创建LVM卷。 不要直接格式化 一个分区作为根文件系统(/),而应将其 创建 在一个 逻辑卷 (LV)中 。快速导览:
- 创建物理卷(PV)所在的分区
- 创建物理卷(PV):
- 如果只有一个硬盘,那么最好只创建一个分区一个物理卷
- 如果你有多个硬盘,可以创建多个分区,在每个分区上分别创建一个物理卷
- 创建卷组(VG),并把所有物理卷加进卷组
- 在卷组(VG)上创建逻辑卷(LV)
- 继续格式化分区步骤
- 当做到的“Initramfs”步骤时,把 lvm2加入到 mkinitcpio.conf 文件中(这一步只是Arch有效, 实际上要获得的效果是启动Linux的适合能找到编译好的 lvm2 模块)
警告: 若使用不支持LVM的引导程序,/boot不能置于LVM中 必须创建一个独立的/boot分区并直接格式化它,已知支持LVM的引导程序只有GRUB
创建分区
在继续配置LVM前,必须对设备进行分区。创建分区:
- 若使用 MBR ,设置 分区类型为 8e
在"fdisk"中为Linux LVM
- 若使用 GPT , 设置分区类型为 E6D6D379-F507-44C2-A23C-238F2A3DF928
在"fdisk"中为Linux LVM 在"gdisk"中为8e00
创建物理卷
可通过以下命令列出可被用作物理卷的设备:
$ lvmdiskscan
警告: 请确认对正确的设备进行操作,否则会导致文件丢失!
在列出的设备上创建物理卷:
# pvcreate DEVICE
该命令在各个设备上创建LVM头。如#LVM基本组成所示, DEVICE可以是:
- 磁盘(如/dev/sda)
- 分区(如/dev/sda2)
- 环回设备
$ pvcreate /dev/sda2
可以用以下命令查看已创建好的物理卷:
$ pvdisplay
注意: 如果用的是未格式化过且擦除块(erase block)大小 小于1M 的SSD,请采用以下命令pvcreate --dataalignment 1m /dev/sda来设置对齐(alignment)
创建卷组
创建完成物理卷(PV)之后,下一步就是在该物理卷创建卷组(VG)了。 首先必须先在其中一个物理卷(PV)创建一个卷组:
# vgcreate <volume_group> <physical_volume>
可用作字符卷组的名称可在lvm(8)中查到。例如:
$ vgcreate VolGroup00 /dev/sda2
然后让该卷组扩大到其他所有的物理卷:
# vgextend <卷组名> <物理卷> # vgextend <卷组名> <其它物理卷> # ...
例如:
$ vgextend VolGroup00 /dev/sdb1 $ vgextend VolGroup00 /dev/sdc
其中,“VolGroup00”名字换成自己起的名字即可。 接下来可以用以下命令查看卷组:
$ vgdisplay
注意: 可以创建多个的卷组,但这将使你的硬盘空间分布在不同(逻辑)磁盘上
一步创建卷组
LVM支持将卷组与物理卷的创建聚合在一个命令中。例如,为了在前文提到的三个设备中创建名为VolGroup00的卷组,可以执行如下命令:
$ vgcreate VolGroup00 /dev/sda2 /dev/sdb1 /dev/sdc
该命令首先会在分区上创建物理卷(如果之前没有创建过),再创建一个包含三个物理卷的卷组
如果设备上已经存在文件系统,命令会提出警告
创建逻辑卷
创建完卷组(VG)之后,就可以开始创建逻辑卷(LV)了。输入下面命令以指定新逻辑卷的名字、大小及其所在的卷组:
# lvcreate -L <卷大小> <"卷组名> -n <卷名>
例如:
$ lvcreate -L 10G VolGroup00 -n lvolhome
该逻辑卷创建完后,就可以通过 /dev/mapper/Volgroup00-lvolhome 或 /dev/VolGroup00/lvolhome 来访问它
与卷组命名类似,你可以按你的需要将逻辑卷命名
可以指定一个或多个物理卷来限制LVM分配数据空间的位置。比如希望在较小的SSD硬盘上创建根文件系统,并在较慢的机械硬盘上创建家目录卷,仅需把物理卷设备加入到命令中
$ lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1
如果想让要创建的逻辑卷拥有卷组(VG)的所有未使用空间,请使用以下命令:
$ lvcreate -l +100%FREE <volume_group> -n <logical_volume>
可以通过以下命令来查看逻辑卷:
$ lvdisplay
提示: 一开始可以创建小一点的逻辑卷,在卷组里留下一部分未使用空间,以后就可以根据需要再作扩展了
建立文件系统与挂载逻辑卷
现在的逻辑卷应该已经在 dev/mapper 和 /dev/YourVolumeGroupName 中了。如果无法在以上位置找到它,请使用以下命令来加载模块、并扫描与激活卷组:
$ modprobe dm-mod $ vgscan $ vgchange -ay
现在可以在逻辑卷上创建文件系统并像普通分区一样挂载它了:
# mkfs.<类型> /dev/mapper/<卷组名>-<卷名> # mount /dev/mapper/<卷组名>-<卷名> <挂载点>
例如:
$ mkfs.ext4 /dev/mapper/VolGroup00-lvolhome $ mount /dev/mapper/VolGroup00-lvolhome /home
警告: 挂载点请选择所新建的逻辑卷(例如:/dev/mapper/Volgroup00-lvolhome) 不要使用逻辑卷所在的实际分区设备(即不要使用:/dev/sda2)
配置 mkinitcpio.conf
如果根文件系统基于LVM,需要启用适当的mkinitcpio钩子,否则系统可能无法启动:
- 若使用基于busybox的initramfs,请启用 udev 和 lvm2
- 若使用基于systemd的initramfs,请启用 systemd 和 sd-lvm2
busybox
udev默认已经预设好,不必手动启用了。只需要编辑/etc/mkinitcpio.conf文件,在block与filesystem这两项中间插入lvm2:
基于busybox的initramfs: /etc/mkinitcpio.conf
HOOKS="base udev ... block lvm2 filesystems"
systemd
基于systemd的initramfs: /etc/mkinitcpio.conf
HOOKS=(base systemd ... block sd-lvm2 filesystems)
提示:lvm2和sd-lvm2钩子被lvm2安装,而不是mkinitcpio 如果你在"arch-chroot"中新安装的Arch Linux中运行"mkinitcpio",必须在环境中安装lvm2以使mkinitcpio找到lvm2或sd-lvm2钩子 如果lvm2未安装, mkinitcpio将报错:Error: Hook 'lvm2' cannot be found. 若根文件系统在LVM + RAID上,请参见#为RAID配置mkinitcpioZ
内核启动参数
如果根文件系统位于逻辑分卷,则root= 内核参数必须指向一个映射设备,比如/dev/mapper/vg-name-lv-name
配置
高级选项
可以通过修改 /etc/lvm/lvm.conf 文件中的 auto_activation_volume_list 参数 限制 自动激活的卷
如果存在问题,可以将此选项注释掉
调整卷
物理卷
对于存在物理卷的设备,在扩增其容量之后或缩小其容量之前,必须使用 pvresize 命令对应地增加或减少物理卷的大小
扩增
增大分区 /dev/sda1 的容量之后,需要执行以下命令扩展物理卷的大小:
$ pvresize /dev/sda1
命令将自动探测设备当前大小并将物理卷扩展到其最大容量
注意: 该命令可在卷在线(on-line)时运行
缩小
在减少某个物理卷所在设备大小之前,需要通过指定 –setphysicalvolumesize 大小参数缩小物理卷大小,例如:
$ pvresize --setphysicalvolumesize 40G /dev/sda1
该命令可能会提示以下错误:
/dev/sda1: cannot resize to 25599 extents as later ones are allocated. 0 physical volume(s) resized / 1 physical volume(s) not resized
即该物理卷已分配物理区域超过了命令指定的新大小边界,pvresize会拒绝将物理卷缩小
若磁盘空间足够,可通过pvmove将物理区域重新分配至别的卷组来解决这个问题
- 移动物理区域
在移动空闲的物理区域到卷尾部之前,需要先查看物理分段。如下例所示,仅有一个物理卷/dev/sdd1, 一个卷组vg1和一个逻辑卷backup:
$ pvdisplay -v -m Finding all volume groups. Using physical volume(s) on command line. --- Physical volume --- PV Name /dev/sdd1 VG Name vg1 PV Size 1.52 TiB / not usable 1.97 MiB Allocatable yes PE Size 4.00 MiB Total PE 399669 Free PE 153600 Allocated PE 246069 PV UUID MR9J0X-zQB4-wi3k-EnaV-5ksf-hN1P-Jkm5mW --- Physical Segments --- Physical extent 0 to 153600: FREE Physical extent 153601 to 307199: Logical volume /dev/vg1/backup Logical extents 1 to 153599 Physical extent 307200 to 307200: FREE Physical extent 307201 to 399668: Logical volume /dev/vg1/backup Logical extents 153601 to 246068
可用空间在卷中段。为了减小物理卷大小,首先必须把所有的已用分段移到前部
此例中,第一个可用空间在第0至第153600分段共153601个可用区域。可以从最后的分段中移动相同数目的物理区域来填补这段空间
$ pvmove --alloc anywhere /dev/sdd1:307201-399668 /dev/sdd1:0-92466 /dev/sdd1: Moved: 0.1 % /dev/sdd1: Moved: 0.2 % ... /dev/sdd1: Moved: 99.9 % /dev/sdd1: Moved: 100,0%
- 命令将92467 (399668-307201)个物理区域从最后一个分段移动到第一个分段:由于第一个分段共有153600个空闲的物理区域,可以容纳92467个物理区域,命令可以成功执行
- 参数–alloc anywhere可以用于在同一个分区中移动物理区域的
若要在不同分区中移动,命令形式应该是# pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999
- 当操作的数据较多时,移动操作将持续很久(一到两个小时)
最好在Tmux或GNU Screen会话中执行此过程 任何形式的意外中断都可能会导致致命错误
- 当操作完成后,可运行Fsck保证文件系统完整性
- 调整物理卷大小
当所有空闲分段都移动到最后的物理区域时,运行$ vgdisplay查看。之后可以再次运行命令:
$ pvresize --setphysicalvolumesize size PhysicalVolume
结果类似:
$ pvs PV VG Fmt Attr PSize PFree /dev/sdd1 vg1 lvm2 a-- 1t 500g
- 调整分区大小
最后,可以用你喜欢的分区工具来缩小该分区
逻辑卷
lvresize(8)提供一些与lvextend(8)和lvreduce(8)相同的命令与选项,并同时允许两种类型的操作。然而,这几个命令都提供一个-r/–resizefs选项,使用fsadm(8)在调整逻辑卷时同时调整其中的文件系统(支持ext2, ext3, ext4, ReiserFS 和 XFS )。 因此,对普通使用来说,使用 lvresize 和 –resizefs 将会更容易, 除非有特定的需求或希望完全控制流程
警告: 尽管扩大一个文件系统可以“在线”(on-line),也就是当它已挂载时完成,甚至对根分区 缩小一个文件系统却往往要求先卸载它,以避免丢失数据 请先确保你的文件系统支持相关操作
同时缩小逻辑卷和其文件系统
注意: 只有ext2,ext3,ext4,ReiserFS和 XFS 文件系统支持以下操作
将MyVolGroup组中的逻辑卷mediavol扩大10GiB,并同时扩大其文件系统:
$ lvresize -L +10G --resizefs MyVolGroup/mediavol
将MyVolGroup组中的逻辑卷mediavol大小调整为15GiB,并同时调整其文件系统:
$ lvresize -L 15G --resizefs MyVolGroup/mediavol
将卷组中的所有剩余空间分配给mediavol:
$ lvresize -l +100%FREE --resizefs MyVolGroup/mediavol
单独设置文件系统大小
对于不支持fsadm(8)的文件系统,请在缩小逻辑卷前或扩大逻辑卷后,使用适当的工具来调整文件系统的大小
先将MyVolGroup组中的逻辑卷mediavol扩大2 GiB,但不调整其文件系统:
$ lvresize -L +2G MyVolGroup/mediavol
然后在调整其文件系统,是其达到逻辑卷的大小:(以ext4为例)
$ resize2fs /dev/MyVolGroup/mediavol
要将逻辑卷mediavol缩小500 MiB,先计算调整后文件系统的大小并调整文件系统(以ext4为例):
$ resize2fs /dev/MyVolGroup/mediavol 调整后的大小
然后再缩小逻辑卷的大小:
$ lvresize -L -500M MyVolGroup/mediavol
重命名卷
重命名卷组
要重命名一个卷组,请使用 vgrename (8)命令。可使用下面的任意一条命令将卷组vg02重命名为my_volume_group
$ vgrename /dev/vg02 /dev/my_volume_group $ vgrename vg02 my_volume_group
重命名逻辑卷
要重命名一个逻辑卷,请使用 lvrename(8) 命令。可使用下面的任意一条命令将vg02组中的逻辑卷lvold重命名为lvnew.
$ lvrename /dev/vg02/lvold /dev/vg02/lvnew $ lvrename vg02 lvold lvnew
移除逻辑卷
警告: 在移除逻辑卷之前,请先备份好数据以免丢失!
首先,找到所要移除的逻辑卷的名称。可以使用以下命令来查看系统的所有逻辑卷:
# lvs
接下来,找到所要移除的逻辑卷的挂载点
$ lsblk
并卸载它:
$ umount /<mountpoint>
最后,使用以下命令来移除逻辑卷:
# lvremove <volume_group>/<logical_volume>
例如:
$ lvremove VolGroup00/lvolhome
请输入 y 来确定你要执行移除逻辑卷操作
此外,请不要忘了更新/etc/fstab
可以再次使用 lvs 命令来确认逻辑卷已被移除
添加物理卷到卷组中
首先创建一个新的物理卷,再把卷组扩充到该物理卷上:
$ pvcreate /dev/sdb1 $ vgextend VolGroup00 /dev/sdb1
这将增加你卷组中的物理区域总数,可以按需要将它们分配到逻辑卷中
注意: 将分区表保存在LVM所在媒体设备是个值得借鉴的方式 对于MBR可以使用类型8e,或GPT类型8e00
从卷组中移除(物理)分区
如果在这个物理分区上创建了一个逻辑卷,请先移除它
首先,分区中的所有数据需要被转移到别的分区,幸而LVM提供了以下的简便方式:
$ pvmove /dev/sdb1
如果想指定所要转移的目标分区,那么可以把该分区作为pvmove的第二个参数:
$ pvmove /dev/sdb1 /dev/sdf1
接着,从卷组(VG)中移除物理卷(PV):
$ vgreduce myVg /dev/sdb1
或者把所有的空物理卷(PV)都移除掉:
$ vgreduce --all vg0
最后,如果仍然想要使用该分区,而且不想让LVM以为它是一个物理卷,那么可以执行以下命令:
$ pvremove /dev/sdb1
停用卷组
只需执行:
$ vgchange -a n my_volume_group
这将停用此卷组,以便卸载存储它的容器
逻辑卷类型
除了普通的逻辑卷, LVM还支持: 快照 , logical volume caching , thin provisioned逻辑卷 ,以及 RAID
快照
LVM可以给系统创建一个快照,由于使用了写入时复制(copy-on-write) 策略,相比传统的备份更有效率。 初始的 快照只有关联到 实际数据的inode 的 实体链接 (hark-link)而已
- 只要实际的数据没有改变,快照就只会包含指向数据的inode的指针,而非数据本身
- 一旦更改了快照对应的文件或目录,LVM就会自动 拷贝 相应的数据,包括快照所对应的 旧数据的拷贝 和当前系统所对应的 新数据的拷贝
这样的话,只要你修改的数据(包括原始的和快照的)不超过2G,就可以只使用2G的空间对一个有35G数据的系统创建快照
要创建快照,在卷组中必须有 未被分配的空间
和其他逻辑卷一样,快照也会占用卷组中的空间 所以,如果计划使用快照来备份你的根(root)分区,不要将整个卷组的空间都分配给根(root)逻辑卷
快照操作
可以像创建普通逻辑卷一样创建快照逻辑卷
$ lvcreate --size 100M --snapshot --name snap01 /dev/vg0/lv
不过这只能修改少于100M的数据,否则该快照逻辑卷空间会不足
要将逻辑卷卷'lv' 恢复到创建快照'snap01'时的状态,请使用:
$ lvconvert --merge /dev/vg0/snap01
如果逻辑卷处于活动状态,则在下次重新启动时将进行合并(merging)
合并 甚至可在LiveCD中进行。注意: 合并后快照将被删除 也以拍摄多个快照,每个快照都可以任意与对应的逻辑卷合并
快照也可以被挂载,并可用dd或者tar备份:
- 使用dd备份的快照的大小为拍摄快照后对应逻辑卷中变更过文件的大小
- 要使用备份,只需创建并挂载一个快照,并将备份写入或解压到其中0,再将快照合并到对应逻辑卷即可
快照主要用于提供一个文件系统的拷贝,以用来备份 比起直接备份分区,使用快照备份可以提供一个更符合原文件系统的镜像
LVM 缓存
Cache逻辑卷将使用一个 较小而快速 的逻辑卷,来提高 较大但慢速 的逻辑卷的性能。它将大型逻辑卷中 经常使用的块 存储 到 较快的缓存卷 中
LVM将这个小而快速的逻辑卷称为缓冲池逻辑卷(cache pool LV) 大而慢的逻辑卷则被称为源逻辑卷(origin LV)
由于dm-cache(内核驱动)的要求,LVM进一步将缓存池逻辑卷分为两个设备:
- 缓存数据逻辑卷:存放源逻辑卷中常用块的拷贝,以提升源逻辑卷的速度
- 缓存元数据逻辑卷:存储记录信息,这些信息指定了源逻辑卷中的数据被存放到缓存逻辑卷中的位置
这些元数据是用来确定“源逻辑卷”中的一个块是存储到自身空间还是缓存逻辑卷中 要想创建最好、最稳定的缓存逻辑卷,必须熟悉这些信息,同时所有这些被提到的逻辑卷都必须存放在一个卷组中
创建缓存
最快速的方法是直接在快速的设备上创建一个物理卷,并把它添加到一个卷组中:
$ vgextend dataVG /dev/sdx
只需一步,即可在sdb上创建一个缓存池,自动生成元数据,将逻辑卷dataLV缓存到sdb上:
$ lvcreate --type cache --cachemode writethrough -L 20G -n dataLV_cachepool dataVG/dataLV /dev/sdx
显然,如果想让缓存变得更大,可更改 -L参数。
Cachemode有两个可能的参数:
- writethrough: 确保任何数据写入都会被同时存储到缓存池逻辑卷和源逻辑卷中
- 在这种情况下,丢失与缓存池逻辑卷关联的设备不会丢失任何数据
- writeback: 可提供更好的性能
- 如果用于缓存的设备发生故障,数据丢失的风险会更高
如果未指定--cachemode,将会自动选择writethrough
删除缓存
如果需要撤消上面的创建操作:
$ lvconvert --uncache dataVG/dataLV
这会将缓存中挂起的写入操作提交到源逻辑卷, 然后删除缓存逻辑卷
Raid
lvm(8) RAID是一种创建逻辑卷的方法,它使用多个物理设备来提高性能或容错能力 (镜像或读写分离等)
在LVM中,这些物理设备是单个卷组中的物理卷 LVM RAID支持RAID 0,RAID 1,RAID 4,RAID 5,RAID 6和RAID 10
配置RAID
创建物理卷:
$ pvcreate /dev/sda2 /dev/sdb2
创建卷组:
$ vgcreate VolGroup00 /dev/sda2 /dev/sdb2
使用 lvcreate –type raidlevel 参数创建逻辑卷
# lvcreate --type RaidLevel [OPTIONS] -n Name -L Size VG [PVs]
例如:
$ lvcreate --type raid1 --mirrors 1 -L 20G -n myraid1vol VolGroup00 /dev/sda2 /dev/sdb2
这将会在设备/dev/sda2、/dev/sdb2上和"VolGroup00"卷组中创建一个20GiB的镜像(mirrored)逻辑卷"myraid1vol"
为RAID配置mkinitcpio
如果的根文件系统在LVM RAID上,除了lvm2或sd-lvm2钩子,还需添加 dm-raid 以及恰当的 RAID模块 (例如raid0,raid1,raid10或raid456)到mkinitcpio.conf中的MODULES数组中
- 对于基于busybox的initramfs:/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456) HOOKS=(base udev ... block lvm2 filesystems)
- 对于基于systemd的initramfs:/etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456) HOOKS=(base systemd ... block sd-lvm2 filesystems)