就算世界终结,也无所谓

愿你有一天,能与你最重要的人重逢

[转载] Linux 的黑科技——LVM

有些时候我们需要使用 RAID 0 将两块硬盘组成磁盘阵列达到一些目的,但是有一个问题——一些主板不支持 RAID,或者 VPS 不能这么简单粗暴的组阵列。这个时候就要用上 Linux 的黑科技——LVM 啦。

前几天我用树莓派下载 Android 6.0 的源码,本来是挂载了一个32G的U盘和一张16G的内存卡,网上说 Android 4.4 源码有20多G,我想6.0的32G应该够了。可谁知道32G(实际只有30G)全部都填满了,还提示硬盘空间不足。可惜我那3T的移动硬盘用在树莓派上电压不够挂载不上去,手头没有比32G更大的存储了,我就想U盘能不能扩容(注意!扩容有害!)。后来找来找去就看到了LVM(LVM不是扩容)。

逻辑卷管理器(Logical Volume Manager,缩写LVM,又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器),是Linux 核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。——维基百科:逻辑卷管理器

概念可能难以理解,下面我画了张图(才发现重装系统之后PS都没装):

《[转载] Linux 的黑科技——LVM》

对于用户来说,是装了多个物理硬件,如U盘、内存卡等;但对 Linux 来说,却只有一个分区。

多余的概念啥的自己 Google 去,这里只说方法。还是以我下载 Android 源码作为场景,方便大家理解。

我想下载 Android 6.0 的源码,由于一个32G的U盘不够大,所以用 LVM 来把一个32G的U盘和一个16G的内存卡合并成一个分区(需要格式化,请先备份好)。

前期准备

使用 fdisk -l 命令查看磁盘:

《[转载] Linux 的黑科技——LVM》

可以看到实际容量为30GU盘和14.6G的内存卡。然后就开始合并了,首先安装 LVM :

apt-get install lvm2

由于两个都是 NTFS 格式的,所以需要格式化成 LVM 格式。先选择内存卡(不带“1”):

fdisk /dev/sda

p 查看分区:

《[转载] Linux 的黑科技——LVM》

可以看到只有一个分区,接着 d 选择删除的分区(因为只有一个分区所以会直接删除没有选项):

《[转载] Linux 的黑科技——LVM》

接着 n 新建分区,全部直接回车默认即可:

《[转载] Linux 的黑科技——LVM》

再次 p 查看分区:

《[转载] Linux 的黑科技——LVM》

可以看到类型已经变成 Linux 了,但是使用 LVM 还需要把 Id 变成 8e ,t 更改分区类型:

《[转载] Linux 的黑科技——LVM》

因为只有一个分区,所以会直接选择分区1,输入分区类型 8e 即可,再次 p 查看:

《[转载] Linux 的黑科技——LVM》

可以看见 Id 变成了 8e,类型也变成了 Linux LVM。最后 w 写入更改即可:

《[转载] Linux 的黑科技——LVM》

剩下还有一个分区就自己做了,操作都是一样的。做好后 fdisk -l 查看分区:

《[转载] Linux 的黑科技——LVM》
  当两个分区类型都变成 Linux LVM 后就能正式开始做 LVM 了。

创建物理磁盘

首先创建物理磁盘,命令是 pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 ......。可以创建一个或者多个,在这里是:

pvcreate /dev/sda1 /dev/sdb1

《[转载] Linux 的黑科技——LVM》
 

创建成功了,可以用 pvs 查看物理磁盘:

《[转载] Linux 的黑科技——LVM》

创建卷组

创建卷组的命令是:

vgcreate VolGroup /dev/sda1 /dev/sdb1

创建完之后使用 vgs 查看:

《[转载] Linux 的黑科技——LVM》
  可以看到,卷组的大小是44.56g,也就是U盘和内存卡的总和。使用 vgdisplay VolGroup 可查看新创建的卷组 VolGroup 的详情:

《[转载] Linux 的黑科技——LVM》

创建逻辑卷

在 VolGroup 的详情中我们可以看见 Total PE 为11408,也就是可分配的大小为:4M*11408PE=45632M=44.5625G

我们使用全部11408个PE来创建一个名为 storage 的逻辑卷:

lvcreate -l 11408 -n storage VolGroup

然后用 lvs 查看:

《[转载] Linux 的黑科技——LVM》
  使用ext4文件系统来创建卷,然后挂载到 /mnt/storage(记得要先执行 mkdir /mnt/storage 创建 /mnt/storage 文件夹,我之前先创建过了),最后使用 df -h查看分区:

mkfs.ext4 /dev/VolGroup/storage
mount /dev/VolGroup/storage /mnt/storage

《[转载] Linux 的黑科技——LVM》

开机挂载

在 /etc/fstab 中添加一行:

/dev/mapper/VolGroup-storage /mnt/storage ext4 defaults 0 0

然后重启看看有没有自动挂载。

点赞
由于 LiveRe 使用的头像 API 不支持 HTTPS,现在已经禁用了 QQ、微信和微博的 OAuth 登录。
我也不想就这样因噎废食,但事实是我根本没有能力去搭建一个反代。
如果你发现了有评论被删除的痕迹,八成是这些评论使用的 OAuth 方式是 QQ 或者微信或者微博。