Contents
  1. 1. 一:实验环境
    1. 1.1. 硬件:
    2. 1.2. 软件:
  2. 2. 二:初遇难题
  3. 3. 三:操作过程
    1. 3.1. 查看分区
    2. 3.2. 创建分区:
    3. 3.3. 格式化分区:
    4. 3.4. 挂载分区:
    5. 3.5. 数据迁移:
    6. 3.6. 照葫芦画瓢:
    7. 3.7. 启动****配置:
    8. 3.8. 重新启动:
  4. 4. 四:完成效果

优麒麟20.4 是基于ubuntu20.4的国产发行版,ARM架构版本有许多组件默认未安装,软件源用的跟x86_64的也不一样。下文中对个分区的  空间大小只是 记个大概数值,不必纠结。

一:实验环境

硬件:

1. 树莓派4B   2. 显示器  3. 128G的 SD卡  4. 读卡器 (用于镜像写入SD卡) 5. microHDMI转HDMI 线、 6. 鼠标、键盘  7. 联网的路由器、光纤线(wifi连不上)

软件:

1. 操作平台 为windows10  2. 树莓派版——优麒麟 系统镜像ubuntukylin-20.04.1-desktop+raspi.img   ( 可以说是 ARM版 ubuntu )   3. 刻录软件 balenaEtcher 

windows10中下载系统镜像 ubuntukylin-20.04.1-desktop+raspi.img 后用balenaEtcher  将镜像写到SD卡中。制作好U盘(SD卡)启动盘后放到树莓派启动,连接好该连接的线,显示器HDMI接的是树莓派的信号、用光纤线联网给树莓派。

二:初遇难题

运行优麒麟20.4后提示存储空间不足。原因是 虽然我SD卡 是128G,但刻录后只格式化 用了大概 8G。除去其他SD卡约有100G左右的空间隐藏起来了,这部分空间没有 分区、没有格式化、更没有挂载到Linux的文件系统(ext4)


 system-boot 是 /dev/sda0p1 的标签, writable 是 /dev/sda0p2 的标签。制作U盘启动盘后就已经存在了。

三:操作过程

思路是   根目录下的usr 和home 文件夹比较大,将这两个文件夹转移到新增分区。

查看分区

root@localhost#  sudo fdisk -l

得到的信息有:

/dev/sda0 115G

/dev/sda0p1 256M

/dev/sda0p2 7.7G 

可见sda0p1、sda0p2 加起来 远没有 115G ,有一部分空间隐藏起来了。

创建分区:

以下节选关键操作命令,具体要根据 提示信息 随机应变。

root@localhost#  sudo fdisk /dev/sda0

fdisk 模式下执行选项:
n     (新建分区)
p     (选择主分区) 3 (默认新分区编号) +40G   (指定空间大小,不指定则默认 用完尾部余下空间) w     (写入以上更改,若过程中出错可输入 q 放弃更改)

格式化分区:

命令行形式:

root@localhost# mkfs.ext4 /dev/sda0p3

图形界面形式:

root@localhost# sudo apt install gparted   #安装 gparted
root@localhost# sudo gparted          #管理员身份启动

一系列图形界面操作。 这步顺带为分区打上 LABEL。

这一步其实偷懒用了 gparted 来将分区格式化为 ext4 格式、并且给分区 打上 LABEL,即 usrdata 标签。有了LABEL后面改/etc/fstab 就不用写一长串分区的UUID了。

题外话:blKid 可以查看分区UUID。

挂载分区:

先在文件系统中创建一个文件夹:

root@localhost# mkdir -p /mnt/usrdatadir

挂载/dev/sda0p3到 /usrdatadir文件夹:

root@localhost# mount -t ext4 /dev/sda0p3 /mnt/usrdatadir 

此时可以用命令查看是否挂载成功:

挂载成功将能看到类似这样的:

 /dev/sda0p3 40G  1G 39G 2.5% /mnt/usrdatadir 

数据迁移:

复制usr下的内容到 /usrdatadir,本质上就是复制到分区 /dev/sda0p3 :

gvfs 指的应该是 “守护进程”。复制好以后可以将 usr 文件夹改名为 usrold 或其他,这样接下来重启系统后才找得到这个文件夹,才可以删除或者移动它,腾出空间。

照葫芦画瓢:

重复以上步骤将 SD 卡余下或部分空间  格式化为 ext4,得到/dev/sda0p4分区。用gparted为该分区打上LABEL即 homedata 标签。挂载该分区到/mnt/homedatadir 复制 /home 的内容 到该分区对应的文件夹 /homedatadir 。别忘了复制home文件夹内容后 重命名home 为 homeold 或其他。 关键命令节选:

复制/home下的内容到 /homedatadir,本质上就是复制到分区 /dev/sda0p4 :

重命名home为homeold:

启动****配置:

将usrdata、homedata分区与相应文件夹关联,这样系统启动后才能正确挂载分区到指定文件夹。/etc/fstab 追加两行后:

1
2
3
4
5
6
7
LABEL=writable  /  ext4   defaults  0  0

LABEL=system-boot /boot/firmware vfat defaults 0 1

LABEL=usrdata /usr ext4 defaults 0 0

LABEL=homedata /home ext4 defaults 0 0

重新启动:

完成后就可以在终端输入reboot重启电脑了

 重启后到根目录下删除或转移 usrold、homeold文件夹,才真正的腾出了空间。 不放心的话,就将 这两个文件夹移动到别的分区作为备份。

root@localhost# sudo rm -fr /homeold
root@localhost# sudo rm -fr /usrold

四:完成效果

Contents
  1. 1. 一:实验环境
    1. 1.1. 硬件:
    2. 1.2. 软件:
  2. 2. 二:初遇难题
  3. 3. 三:操作过程
    1. 3.1. 查看分区
    2. 3.2. 创建分区:
    3. 3.3. 格式化分区:
    4. 3.4. 挂载分区:
    5. 3.5. 数据迁移:
    6. 3.6. 照葫芦画瓢:
    7. 3.7. 启动****配置:
    8. 3.8. 重新启动:
  4. 4. 四:完成效果