首先下载镜像并烧写安装:

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让kernel读取更新后的信息
partprobe


使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,
而使用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

树莓派3+centos7拓展存储空间LVM学习的更多相关文章

  1. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  2. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  3. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  4. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  5. 树莓派2 GPIO 和 SwiftyGPIO

    自从苹果去年开源Swift编程语言以来,热心人们已经创建了Ubuntu安装包,移植到ARM设备上如RaspberryPi2,创建了网页开发框架,而现在UmbertoRaimondi发布了SwiftyGPIO,一个Swift库,能够和ARM设备上的GPIO接口进行交互。SwiftyGPIOREADME详细解释了如何使用模块。这次我们在RaspBerryPi2上用Swift语言再实现一次。SwiftGPIO为比较流行的板子提供了封装好的GPIO。setLedColor方法通过一个元组和一个数组[GPIO]把一

  6. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  7. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

  8. Swift 3 dev快照中的POST请求给出了“对成员’dataTask的模糊引用(with:completionHandler :)’

    编辑:我注意到有人在我之后写了这个问题的副本.这里的答案是更好的答案.使用URLRequest结构.在Xcode8中工作正常:另外,出现此错误的原因是URLSessionAPI具有相同的名称方法,但每个都采用不同的参数.因此,如果没有明确的演员,API将会混淆.我认为这是API的命名错误.发生此问题,代码如下:

  9. 针对不同环境的不同Android构建

    我希望能够构建和安装我的应用程序的多个版本(同时),针对不同的环境,如开发,暂存和生产.AndroidManifest.xml中的软件包名称似乎是这里的主要障碍,因为它是唯一标识应用程序的内容.我认为可以简单地在com.mydomain.prod,com.mydomain.staging和com.mydomain.dev之间切换或某种类似的约定,但到目前为止,我还没有运气的包装结构对于这种方法.我

  10. android – 如何在Google Play商店中打开开发者页面(market://)

    ),但我在AndroidDeveloper页面上找不到它.解决方法您只需调用market://dev?id=xxx即可例如.:我希望,这适合您的需求!

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部