首先下载镜像并烧写安装:
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 ~]#
可用空间太小,本人用的是一个16G内存卡,还有很多空间没有用。
利用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
最后w保存退出。
但这个时候的分区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
而使用partprobe则可以使kernel重新读取分区 信息,从而避免重启系统
二。PV阶段
创建新的pv:
pvcreate /dev/mmcblk0p4
然后利用pvscan查询。
[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
选择ext3文件系统类型
[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