首先下载镜像并烧写安装:
http://mirror.centos.org/altarch/7/isos/armhfp/
安装基本库:
yum groupinstall base
利用df -h命令(列出文件系统的使用量)查看挂载的空间,也就是可用的空间大小:
[root@centos-rpi3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/root 2.0G 974M 861M 54% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 12M 452M 3% /run
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 500M 45M 455M 9% /boot
tmpfs 93M 0 93M 0% /run/user/0
[root@centos-rpi3 ~]#
利用fdisk -l命令(磁盘分区)查询:
磁盘 /dev/mmcblk0:15.6 GB, 15636365312 字节,30539776 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c3c9b
设备 Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 1026047 512000 c W95 FAT32 (LBA)
/dev/mmcblk0p2 1026048 2074623 524288 82 Linux swap / Solaris
/dev/mmcblk0p3 2074624 6268927 2097152 83 Linux
可以看到磁盘mmcblk0也就是sd卡,容量有15.6G,但实际只挂载了1.5G左右,还有很大的空间。
那么如何拓展存储空间,简单而言就是将物理设备挂载到操作系统,使其能够识别并使用这些空间。
先介绍基础知识:
LVM(Logical Volume Manager)逻辑卷管理器
LVM的重点在于可以弹性调整文件系统的容量。可以整合多个物理分区。LVM中几个不同的概念
PV(physical volume):物理卷
实际的分区需要调整系统标识符(system ID)成为8e(LVM的标识符),然后通过pvcreate命令将其转成LVM的最底层的物理卷PV,然后再进行处理。
VG (Volume Group)卷用户组
LVM大磁盘就是将许多PV整合为一个VG,每个VG最多包含65534个PE,也就是VG最多为256GB
PE(physical extend)物理拓展块
LVM默认使用4M的PE,PE是LVM中最小的存储块,也就是文件数据都是由写入PE完成的
LV(logical volume)逻辑卷
最终的VG会被切成LV。就是最终可被格式化使用的分区。LV的设备名通常指定为/dev/vgname/lvname
实现流程
通过PV,VG,LV的规划,最后利用mkfs命令将LV格式化成可利用的文件系统。
实际操作:
一。新建物理分区
首先利用fdisk将mmcblk0再分一个区出来用,也就是物理上的分区操作。
fdisk /dev/mmcblk0
m
显示可以执行的操作如下:
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
然后输入n,添加新分区,输入p选择添加主分区。然后不断回车:
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (6268928-30539775,默认为 6268928):
将使用默认值 6268928
Last 扇区, +扇区 or +size{K,M,G} (6268928-30539775,默认为 30539775):
将使用默认值 30539775
分区 4 已设置为 Linux 类型,大小设为 11.6 GiB
但这个时候的分区id不是8e,也就是不是LVM的,因此要再利用fdisk更改id:
fdisk /dev/mmcblk0
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):4
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
结果:
设备 Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 1026047 512000 c W95 FAT32 (LBA)
/dev/mmcblk0p2 1026048 2074623 524288 82 Linux swap / Solaris
/dev/mmcblk0p3 2074624 6268927 2097152 83 Linux
/dev/mmcblk0p4 6268928 30539775 12135424 8e Linux LVM
partprobe
二。PV阶段
创建新的pv:
pvcreate /dev/mmcblk0p4
[root@centos-rpi3 ~]# pvcreate /dev/mmcblk0p4
Physical volume "/dev/mmcblk0p4" successfully created.
[root@centos-rpi3 ~]# pvscan
PV /dev/mmcblk0p4 lvm2 [11.57 GiB]
Total: 1 [11.57 GiB] / in use: 0 [0 ] / in no VG: 1 [11.57 GiB]
pvdisplay更详细地列出信息:
[root@centos-rpi3 ~]# pvdisplay
"/dev/mmcblk0p4" is a new physical volume of "11.57 GiB"
--- NEW Physical volume ---
PV Name /dev/mmcblk0p4
VG Name
PV Size 11.57 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID krnqiN-Sxyu-Y2Jj-D4UE-LLYl-2Aw1-u0TwtF
三。VG阶段
将设备新建为一个VG,并指定PE大小为16M
[root@centos-rpi3 ~]# vgcreate -s 16M vbirdvg /dev/mmcblk0p4
Volume group "vbirdvg" successfully created
卷组名称为vbirdvg
利用vgscan和vgdisplay显示:
[root@centos-rpi3 ~]# vgdisplay
--- Volume group ---
VG Name vbirdvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 11.56 GiB
PE Size 16.00 MiB
Total PE 740
Alloc PE / Size 0 / 0
Free PE / Size 740 / 11.56 GiB
VG UUID 1TmRni-22Kd-6I0V-BEr2-hzOG-kZLr-UL1inx
可以看出PE size 16M,共有740PE,其中free的有740,因为尚未切出LV,所有PE都可使用。
四。LV阶段
为vbirdvg这个VG进行分区,利用LV。
lvcreate -l 740 -n vbirdlv vbirdvg
-l后面跟的PE的个数,这里选740,。
也可以换成-L,L大写,后面接容量,单位可以是M,G,T,,比如-L 11.56G
-n后面接的是LV的名称,这里是vbirdlv
[root@centos-rpi3 ~]# lvcreate -l 740 -n vbirdlv vbirdvg
WARNING: ext3 signature detected on /dev/vbirdvg/vbirdlv at offset 1080. Wipe it? [y/n]: y
Wiping ext3 signature on /dev/vbirdvg/vbirdlv.
Logical volume "vbirdlv" created.
利用lvdisplay显示结果:
[root@centos-rpi3 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vbirdvg/vbirdlv
LV Name vbirdlv
VG Name vbirdvg
LV UUID 8Acqkx-8QjT-08iV-gK0B-vyRi-l5mh-H02gRz
LV Write Access read/write
LV Creation host, time centos-rpi3, 2017-12-28 09:09:50 +0000
LV Status available
# open 0
LV Size 11.56 GiB
Current LE 740
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
五。文件系统阶段
格式化,然后挂载LV
先格式化文件系统:
mkfs -t ext3 /dev/vbirdvg/vbirdlv
[root@centos-rpi3 ~]# mkfs -t ext3 /dev/vbirdvg/vbirdlv
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
758880 inodes, 3031040 blocks
151552 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=3103784960
93 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
最后就是挂载了:
[root@centos-rpi3 ~]# mkdir /mnt/lvm
[root@centos-rpi3 ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm
[root@centos-rpi3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/root 2.0G 972M 862M 54% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 12M 452M 3% /run
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 500M 45M 455M 9% /boot
tmpfs 93M 0 93M 0% /run/user/0
/dev/mapper/vbirdvg-vbirdlv 12G 30M 11G 1% /mnt/lvm