使用f2fs作为根分区安装liunx

使用f2fs作为根分区安装liunx

前言

本实验参考教程链接:固态硬盘使用f2fs作为根分区安装linux

实验步骤

  1. 准备
    1. 准备两个u盘,一个用于安装操作系统,一个用于放 liveCD系统或者一个用于安装linux系统和进入liveCD系统,一个用于备份文件。
    2. 使用电脑上自带的启动盘制作工具和下载好的镜像文件***.iso进行启动盘制作
    3. 也可以选择使用命令制作 我使用的是这个命令,这样可以在后续步骤中将这个系统盘当做liveCD系统使用
      1.lsblk//查看U盘盘符目录,我的目录为:/dev/sdb
      2. cd Dekstop(Dekstop为存放镜像文件目录)
      2. dd if=***.iso of=/dev/sdb bs=1M//输入这个命令后终端中没有信息输出,需要等待一段时间,关于dd命令可以自行搜索或者man手册查看命令解释。
  2. 安装UOS系统
    1. 正常安装,进入安装界面
    2. 手动分区:将所有分区删除后重新手动分区

      sda1: EFI(EFI系统分区)
      sda2: BOOT分区,ext4
      sda3: 根分区,ext4
      sda4, 交换分区,swap

    3. 安装完成后进行联网系统激活。
    4. 进入开发者模式并重启。
    5. 安装f2fs-tools工具
      sudo apt update
      sudo apt install f2fs-tools
    6. 在终端中验证f2fs工具是否安装成功
      mkfs.(TAB键) 如果在TAB补全命令后可以看到f2fs候选命令说明安装成功。则可以进行下一步操作。
    7. initrd镜像文件中加载f2fs模块
      1. sudo vim /etc/initramfs-tools/modules
      2. 在文件末尾添加如下代码
        f2fs
        crc32_generic
        crc32_intel
        
      3. update-initramfs -u //更新initrd
    8. 通过以上步骤,就可以保证备份根目录前,initrd镜像文件中存在f2fs模块了,能支持f2fs根分区引导了。
    9. 将用于备份的U盘插入USB口并格式化为f2fs
      lsblk -f //查看备份U盘的序号,我的电脑上备份U盘序号为sda
      ·sudo mkfs.f2fs /dev/sda· //将备份U盘格式化为F2FS格式
  3. 备份根分区
    1. 关机重启
    2. 使用LiveCD的U盘启动后进入live系统
    3. 进入live系统后将格式化后的备份U盘插入到电脑上
    4. 执行
      lsblk -l//查看UOS系统分区的序号和备份U盘序号
      sudo mkdir /tmp/3
      sudo mkdir /tmp/u
      mount /dev/nvme0n1p3 /tmp/3 //把根分区挂载到目录 /tmp/3
      mount /dev/sdb /tmp/u//将备份用的u盘挂载到目录 /tmp/u
      cd /tmp/3 //cd到ssd的根分区
      tar cpf /tmp/u/root.tar . //将当前目录(根分区)下的所有文件备份到/tmp/u/root.tar文件。注意,这里有个英文点号。此时硬盘根分区已经备份到备份u盘中了,依然运行live系统,不退出。
  4. 格式化硬盘linux根分区为f2fs 此时在上一步的live系统中,不要退出
    1. sudo apt update
    2. sudo aot install f2fs-tools //给live系统安装f2fs-tools工具
    3. umount /dev/nvme0n1p3 //取消根分区的挂载,准备格式化分区为f2fs
    4. fdisk /dev/nvme0n1p3//进入fdisk的交互命令中
       p //执行p命令查看当前分区,找到硬盘的linux根分区(如前文说的,通过分区大小和序号判断是不是linux根分区)
       d  //执行d命令删除硬盘linux根分区
       n  //执行n命令新建分区
       w  //执行w命令将刚才的变更写入硬盘
      
    5. sudo mkfs.f2fs /dev/nvme0n1p3//将nvme0n1p3分区格式化成f2fs格式(执行前,务必使用fdisk -lu /dev/nvme0n1p3来确认根分区是哪个,因为序号会在上面的分区操作中发生变化)
    6. sblk -f //现在就可以看到硬盘的linux根分区变成f2fs格式了。
    7. 保持live系统,不退出,进行下一步。
  5. 恢复备份
    1. mount /dev/nvme0n1p3 /tmp/3 //将上一步格式化后的硬盘分区挂载到目录**/tmp/3** 下
    2. cd /tmp/3
    3. tar xpf /tmp/u/root.tar //恢复根分区备份
    4. 修正UUID
      1. 上面删分区、建分区操作导致uuid变化,需要修正uuid
      2. sblk -f //获取f2fs根分区的uuid
      3. sudo vi /tmp/3/etc/fstab //找到根分区的uuid修改成正确的值
  6. 更新grub (在终端中输入以下命令)
        mount /dev/nvme0n1p2 /tmp/3/boot   //把ssd上的boot分区挂在到根分区的boot目录
        mount /dev/nvme0n1p1 /tmp/3/boot/efi     //把ssd上的esp分区挂到根分区boot目录的efi目录下
        mount --bind /dev /tmp/3/dev
        mount --bind /proc /tmp/3/proc
        mount --bind /sys  /tmp/3/sys
        mount --bind /run  /tmp/3/run
        chroot /tmp/3   //chroot到硬盘的UOS 即电脑上面安装的UOS系统
        update-grub2 //可能会报错,但是不要紧
    
  7. 进入F2FS分区上的linux系统
    1. 关机
    2. 拔掉系统U盘和备份U盘
    3. 重启
  8. 非常感谢原作者的技术分享!
上一篇:(精华)2021年1月9日 LIUNX系统(重定向命令)


下一篇:Liunx运维(九)-Liunx进程管理命令