香蕉派手记之启动和扩容

时间:2024-03-11 15:38:37

香蕉派到手之后,我欣喜地打开包装,然后愣住了。因为这货着实有些坑爹--我还要买一张卡和一个手机充电器才能启动他。于是我买了一张32GB的SD卡,Class10级别。这里有各个级别的分类标准,当然越快越好啦。然后按照官方教程烧写了一个fedora的镜像到SD卡上,然后找了一个5V/2A的充电器,又找了一根网线,插好,按开关,启动。登陆路由器管理界面找到新增的那个地址,使用XSHELL SHH到机器上,首次登陆使用root和bananapi作为用户名和密码。
按照惯例查看下存储空间的占用:

[root@lemaker ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       3.4G  2.5G  734M  78% /
devtmpfs        438M     0  438M   0% /dev
tmpfs           438M     0  438M   0% /dev/shm
tmpfs           438M  740K  437M   1% /run
tmpfs           438M     0  438M   0% /sys/fs/cgroup
这种占用。。。。。略坑,要知道我可是32GB的存储卡,这个占用极大地浪费了存储卡的空间,所以,我要最大化利用存储空间。
先看下有几个分区fdisk -l

[root@lemaker ~]# fdisk -l
 
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x59d0bd13
 
Device         Boot     Start       End  Blocks  Id System
/dev/mmcblk0p1           2048    104447   51200  83 Linux
/dev/mmcblk0p2         104448   7167999 3531776  83 Linux
查看下挂载关系[root@lemaker /]# cat /etc/fstab /dev/mmcblk0p2 / ext4 defaults,noatime 1 1

所以这里 /dev/mmcbl0p2 就是主分区了,要扩容的就是这个了。这里要说一下啊,fdisk -l与cat /etc/fstab的结果其实是不一样的,后者只展示了根目录挂载到某个分区,理论上讲这里是需要展示所有分区的,但是arm平台的启动方式和X86平台的启动方式是有区别的,前者需要首先启动一个启动分区,然后再启动Linux本身,所以Linux的挂载列表里只有第二块分区,但是使用fdisk -l来实时探测分区的情况的时候就能看到第一个分区。
然后我们继续扩展第二个分区的空间,那么第一步就是删掉它。。。。。

[root@lemaker /]# fdisk /dev/mmcblk0 
 
Welcome to fdisk (util-linux 2.24.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help): p
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x59d0bd13
 
Device         Boot     Start       End  Blocks  Id System
/dev/mmcblk0p1           2048    104447   51200  83 Linux
/dev/mmcblk0p2         104448   7167999 3531776  83 Linux
 
Command (m for help): 

我们看到第二分区的起始柱面号是 10448,下面展示了删除分区、新建分区和保存的过程:

Command (m for help): d
Partition number (1,2, default 2): 2
 
Partition 2 has been deleted.
 
Command (m for help): n
 
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (104448-62333951, default 104448): 
Last sector, +sectors or +size{K,M,G,T,P} (104448-62333951, default 62333951): 
 
Created a new partition 2 of type \'Linux\' and of size 29.7 GiB.
 
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
 
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

注意最后一行提示:The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
此时内核仍然使用旧的分区挂载列表,新的分区表将在重启后使用或者在运行partprobe(8)与kpartx(8)之后才能使用。系统的提示就像那暮气沉沉的老人给予的忠告:你听听就算了。。照做会死人的。。。partprobe的作用在于告诉内核重新探测分区表,kpartx则是在分区表中增加一个新的项,听起来似乎蛮不错的样子。。。但是我们是对/做扩容而不是重新分区,所以执行这两个命令中的任何一个都不会得到我们想要的结果。。。
此时应该直接重启,然后:

[root@lemaker ~]# resize2fs /dev/mmcblk0p2

resize2fs 1.42.8 (20-Jun-2013)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p2 is now 7778688 blocks long.

[root@lemaker ~]# df -h
···
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 2.5G 26G 9% /
devtmpfs 438M 0 438M 0% /dev
tmpfs 438M 0 438M 0% /dev/shm
tmpfs 438M 740K 437M 1% /run
tmpfs 438M 0 438M 0% /sys/fs/cgroup
···
嗯,扩容成功,可以update了。

原文链接:https://blog.csdn.net/hao741100265/article/details/42399421