zoukankan      html  css  js  c++  java
  • 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 放弃更改)

    我这里 创建了的一个新的分区叫 /dev/sda0p3 , lsblk 命令应该能看到.

    格式化分区:

    命令行形式:

    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 

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

    root@localhost# df -h

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

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

    数据迁移: 

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

    root@localhost# sudo   rsync -aXS --progress --exclude='/*/.gvfs'  /usr/.   /mnt/usrdatadir/.

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

    root@localhost# mv /usr /usrold

     

    照葫芦画瓢: 

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

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

    root@localhost# sudo rsync -aXS --progress --exclude='/*/.gvfs' /home/. /mnt/homedatadir/.

    重命名home为homeold:

    root@localhost# mv /home  /homeold

    启动配置:

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

    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
    

     (这里应该还把usrdatadir  homedatadir分别重命为了 usr   home )

    重新启动:

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

    root@localhost# reboot

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

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

      

    四:完成效果

    << 转载需注明出处 >>
  • 相关阅读:
    matplotlib 柱状图
    JavaScript 箭头函数
    JavaScript map reduce
    JavaScript sort函数
    JavaScript var、let、const
    javaScript 迭代器
    javaScript map和set
    批处理学习(-)之文件夹和文件的移动
    让 Lua 访问数据库
    lua 模块化推荐方法
  • 原文地址:https://www.cnblogs.com/Huae/p/13771098.html
Copyright © 2011-2022 走看看