Linux学习篇(八):优麒麟20.4 添加分区、home目录重定向--ARM_Linux
优麒麟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
#安装 gpartedroot@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 | LABEL=writable / ext4 defaults 0 0 |
重新启动:
完成后就可以在终端输入reboot重启电脑了
重启后到根目录下删除或转移 usrold、homeold文件夹,才真正的腾出了空间。 不放心的话,就将 这两个文件夹移动到别的分区作为备份。
root@localhost# sudo rm -fr /homeold
root@localhost# sudo rm -fr /usrold