Windows、Linux下Qemu为树莓派DebianLinux扩容硬盘及SWAP分区大小

xingyun86 2021-3-22 963

Windows、Linux下Qemu为树莓派DebianLinux扩容硬盘及SWAP分区大小

前言

  当我们使用qemu加载了一个树莓派官方镜像时,因为官方在构建镜像的时候人为的控制了root分区的大小,如果我们加载完镜像需要进行一些自己的操作时,就需要使用qemu-img工具来扩容空间啦。

1、检查树莓派镜像

  首先,我们检查一下现有树莓派镜像的空间,使用qemu-img的info命令:

>qemu-img info 2021-01-11-raspios-buster-armhf.img
image: 2021-01-11-raspios-buster-armhf.img//img镜像名称
file format: raw//文件格式类型
virtual size: 3.7G (3963617280 bytes)//实际镜像文件大小
disk size: 3.7G//系统空间大小

2、扩容IMG镜像文件

  使用qemu-img的resize命令对镜像文件进行扩展。

qemu-img resize 2021-01-11-raspios-buster-armhf.img +8G

       再通过info命令检查当前镜像文件:

image: 2021-01-11-raspios-buster-armhf.img//img镜像名称
file format: raw//文件格式类型
virtual size: 11.6G (12,553,551,872 bytes)//实际镜像文件大小
disk size: 11.9G//系统空间大小

       现在实际镜像文件已经扩容,但实际文件系统暂时还未识别已扩容的空间,需要对该虚拟分区进行格式化。
  通过resize命令不仅可以扩展镜像大小,也可以对镜像进行裁剪,但裁剪之前需要对分区进行格式化并释放空间,否则裁剪时会损坏镜像。

每个树莓派镜像的分区默认有两个,sda1【boot分区】与sda2【linux分区】,此次扩容只对sda2【linux分区】进行扩容。

3、启动镜像进入linux分区

  扩展完毕后,进入镜像的linux系统中,通过df -h命令查看当前系统文件大小,可以看到当前系统还未识别新扩展的空间,可以看到linux分区几乎已经用光:

pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       3.4G  3.0G  227M  93% /
devtmpfs        124M     0  124M   0% /dev
tmpfs           124M     0  124M   0% /dev/shm
tmpfs           124M  2.0M  122M   2% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           124M     0  124M   0% /sys/fs/cgroup
/dev/sda1       253M   46M  207M  18% /boot
tmpfs            25M     0   25M   0% /run/user/1000

使用fdisk命令查看当前分区的起始位与结束位:(很重要,一定要看)

sudo fdisk -l

关注以下信息即可:

Device     Boot  Start     End Sectors  Size Id Type
/dev/sda1         8192  532479  524288  256M  c W95 FAT32 (LBA)
/dev/sda2       532480 7741439 7208960  3.4G 83 Linux

需要记录sda2(Linux分区)的start位置的sector。

使用fdisk对sda设备进行分区:

sudo fdisk /dev/sda
可以输入m来进行查看fdisk的命令,如果想退出可以输入q
=====================================================
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m //输入m查看命令
Help:
  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag
  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition
  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)
  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file
  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes
  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table
Command (m for help): d//删除分区
Partition number (1,2, default 2): 2//选中2即删除sda2分区
Partition 2 has been deleted.
Command (m for help): n//新建分区
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p//主分区类型
Partition number (2-4, default 2): 2//新建sda2分区
First sector (2048-24518655, default 2048): 532480//输入sda2分区起始sector(上面记录的其实位置)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (532480-24518655, default 24518655): 24518655//默认即为最大即最后一个位置
Created a new partition 2 of type 'Linux' and of size 11.4 GiB.
Partition #2 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: N//此时已经扩展成功,选择不删除分区签名
Command (m for help): w//保存此次操作
The partition table has been altered.
Syncing disks.

4、重启检查系统剩余空间

  此时已经完成了对Linux分区的扩展,使用sudo reboot命令重启qemu。重启完成后使用resize2fs命令来时我们扩展的空间生效。

$ sudo resize2fs /dev/sda2
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/sda2 is now 2998272 (4k) blocks long.

      然后通过df -lh命令来检查系统剩余空间:

pi@raspberrypi:~ $ df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        12G  3.0G  7.8G  28% /
devtmpfs        124M     0  124M   0% /dev
tmpfs           124M     0  124M   0% /dev/shm
tmpfs           124M  2.0M  122M   2% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           124M     0  124M   0% /sys/fs/cgroup
/dev/sda1       253M   46M  207M  18% /boot
tmpfs            25M     0   25M   0% /run/user/1000

此时可以看到对linux分区扩展的空间已经生效。

至此全部完成!

×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回