• 将Ubuntu系统迁移到SSD固态操作


    朋友送了一个固态硬盘给我,因此将原机械硬盘上的系统迁移到固态硬盘上。

    原机械硬盘(dev/sdb)装有win10和ubuntu双系统。分区情况如下:

    sda1:ESP分区

    sda2:资料

    sda3:资料

    sda4:swap分区,被我干掉了,内存8g,基本上用不上。也可以使用swap文件代替swap分区。

    sda5:ubuntu的/分区

    sda6:ubunt的/home分区

    【记录下删除swap分区的过程】
    1.先查看swap分区
    swapon -s 
    2.停用swap分区
    #确保swap分区没有使用
    free -m
    #停用swap分区
    sudo swapoff  /dev/sdb4   (第1步显示的名称)
    #检查停用成功
    free -m 
    3.删除swap分区文件
    sudo rm -rf /dev/sdb4
    这样就成功删除了swap分区。
    4.在/etc/fstab中删除或注释swap行
    
    #我把swap分区删除后,空间合并到了/分区。
    因为操作的是/分区,需要在u盘启动盘下执行,使用Gparted工具resize即可。

    然后需要对ssd固态硬盘(dev/sda)分区,分区情况如下。记得ssd分区时要4k对齐,选择2048还是4096可以参考这篇文章:固态硬盘分区4k对齐是2048还是4096?该选哪个有区别吗?

    sda1:ESP分区

    sda2:用于win10系统

    sda3:win10自动创建的恢复分区(以前没有的,可能是使用易升升级时自动创建的),无需手动创建。

    sda4:用于ubuntu的/分区

    sda5:用于ubunt的/home分区

    然后,win10直接用ghost备份恢复,再进pe修复下引导就搞定了。记录手动恢复引导的命令:

    # 用DG等工具先将ESP分区装载为K盘,从系统盘C:Windows目录中复制UEFI格式的启动文件到ESP分区中,修复系统。
    bcdboot  c:windows /s k:  /l zh-cn  /f uefi

    ubuntu的备份恢复花费了大量时间,主要是刷教程做准备工作。网上的方法差不多两种,一种是使用dd命令直接拷贝分区,另一种是使用tar命令压缩备份系统文件。我使用的是后者,需要在live usb环境下进行,也就是使用u盘ubuntu启动盘。主要参考了这篇教程:Ubuntu系统备份 

    备份前准备

    1.备份前先清理系统,减小备份文件的大小(可选)

    首先进行系统的清理

    # 清理旧版本的软件缓存
    sudo apt-get autoclean
    
    # 清理所有软件缓存
    sudo apt-get clean
    
    # 删除系统不再使用的孤立软件
    sudo apt-get autoremove

    删除老旧的系统内核

    可以参考这篇文章:如何删除 Ubuntu 上不再使用的旧内核。删除完后,记得使用sudo update-grub更新一下。

    2.插入u盘启动,进入Live USB界面,点击试用ubuntu,进入桌面后,获取root权限

    sudo su

    备份

    3.备份/分区和/home分区

    cd / 
    #挂载/分区
    sudo mkdir src-root
    sudo mount /dev/sdb5 /src-root
    
    #挂载/home分区
    sudo mkdir src-home
    sudo mount /dev/sdb6 /src-home
    
    #挂载放/文件的分区(ssd的/分区)
    sudo mkdir des-root
    sudo mount dev/sda4 /des-root
    
    #挂载放/home文件的分区(ssd的/home分区)
    sudo mkdir des-home
    sudo mount dev/sda5 /des-home
    
    #备份/分区文件。 注意:因为是live USB环境,直接用/表示USB ubuntu的/,所以不能直接用/。由于已经cd到了要备份的ubuntu的/目录下了,所以直接用./
    sudo su
    cd /src-root
    tar cvpzf /des-root/backup.tgz --exclude=./proc --exclude=./lost+found --exclude=./mnt --exclude=./media --exclude=./sys --exclude=./run --exclude=./tmp --exclude=./home ./
    
    #备份/home分区文件
    sudo su
    cd /src-home
    tar cvpzf /des-home/home_backup.tgz ./

    -c: 新建一个备份文档
    -v: 显示详细信息
    -p: 保存权限,并应用到所有文件
    -z: 用gzip压缩备份文档,减小空间
    -f: 指定压缩包名称(带路径),只能做最后一个参数

    --exclude: 排除指定目录,不进行备份
      --exclude=/proc          一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份。
      --exclude=/lost+found      系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
      --exclude=/mnt
      --exclude=/media     多媒体挂载点,如u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
      --exclude=/sys
      --exclude=/run    系统从启动以来产生的一些信息文件。
      --exclude=/tmp   临时文件目录 
      --exclude=/home

    另外要注意的是:我是划分了/和/home的,所以备份/时会排除掉/home,之后单独备份/home。如果没有划分单独的/home,则不要排除/home。

    还原

    4.进行还原操作

    # 解压/备份文件
    cd /des-root
    tar -xvpzf backup.tgz
    # 解压/home备份文件
    cd /des-home
    tar -xvpzf home_backup.tgz
    
    # 创建前面备份时忽略的文件夹
    cd /src-rootmkdir proc
    mkdir media
    mkdir mnt
    mkdir tmp
    mkdir sys
    mkdir run

    5.修复引导。我是直接重建引导。

    参考EFI+GPT模式下修复GRUB2双系统引导-修订版,一种是用efibootmgr,另一种是grub-install,我用的后一种方法。

    sudo su
    mount /dev/sda4 /mnt             (/dev/sda4:为/ 分区)
    mount /dev/sda1 /mnt/boot/efi     (/dev/sda1:为/efi分区)
    mount -t proc proc /mnt/proc
    mount -t sysfs sys /mnt/sys
    mount -o bind /dev /mnt/dev
    mount -t devpts pts /mnt/dev/pts/
    chroot /mnt
    grub-install /dev/sda1
    update-grub2

    6.重启,然后修改/etc/fstab文件,主要修改UUID。

    7.最后,记得删除备份文件,减少磁盘空间占用。

  • 相关阅读:
    分享:十Python之Http Web服务(网页抓取二)
    分享:C语言打印long long类型
    分享:svn 添加*.so等文件
    visual assist x 安装
    设计模式之MVC模式
    php一个递归读取目录文件脚本
    转:javax.swing.JFrame中使用jpanel来布局
    alter table 总结
    php 函数:func_get_args()、func_get_arg()与func_num_args()
    Visual Assist X简介
  • 原文地址:https://www.cnblogs.com/rouqinglangzi/p/11395093.html
Copyright © 2020-2023  润新知