网站首页 > 技术文章 正文
ssd硬盘下的操作系统,在启动速度和运行速度上,都有着hdd硬盘无法比拟的优点.对于现有系统来说,能无损迁移到ssd,节省了重装系统的麻烦.
稍微好一点的ssd硬盘,官方都提供了相应的迁移工具,比如三星的ssd,就提供了'samsung date migration',还有一些通用的迁移工具.但是几乎所有的迁移工具(官方或免费软件),都是针对windows系统的,linux系统的迁移,比较适合动手能力较强的同学,一般的思路是:
- 目标硬盘的分区和文件系统创建,挂载(fdisk,mkfs,mount等命令)
- 原系统的文件复制到目标磁盘(dd,cp,rsync等命令)
- 修复新硬盘的引导程序(grub等命令)
本文也提供一种方案,提供了迁移脚本,简化迁移步骤.
1.ssd分区
fdisk -l
定位到ssd磁盘,本文是/dev/sdb(替换为自己的,下同)
fdisk /dev/sdb
输入n:添加分区
输入p:分区类型为主分区
输入分区号:直接回车(默认值)
输入w:把分区表写入硬盘并退出
至此磁盘/dev/sdb下的分区/dev/sdb1创建完毕
2.创建文件系统(格式化)
mkfs.ext4 -n /dev/sdb1
其中/dev/sdb1为第一步创建的分区(替换为自己的)
至此,准备工作完毕
3.执行迁移脚本
下载脚本链接到/usr/local/bin目录下:
https://raw.githubusercontent.com/lerit/clone-ubuntu/master/clone-ubuntu.sh
执行以下两个命令:
sudo chmod a+x /usr/local/bin/clone-ubuntu.sh
sudo clone-ubuntu.sh
首先会有个确认,让你确认老硬盘分区和新硬盘分区,核对无误后,输入Y就开始了文件复制工作和迁移处理,耐心等待,有进度条,成功之后,会生成一个报告,告诉你复制了什么,处理了什么.
4.引导修复
以上脚本完成了几乎所有的迁移步骤,现在剩下唯一的一个问题:
当前是两个磁盘都有一模一样的linux系统,并且引导程序在老硬盘,现在重启菜单中可以选择进入哪一个linux系统,如果这就是你想要的结果,那么到此为止,就可以了.
但是大部分人是为了用ssd替换下老硬盘,因此如果想让ssd独立存在,还需要如下步骤(老硬盘先别卸下来,开机启动时,如果提示选择启动硬盘,也只能先选择老硬盘):
启动界面选择新linux系统进去到系统(此时应该体验到了进入速度的不同了)
使用Boot-Repair工具(
https://help.ubuntu.com/community/Boot-Repair)
执行以下3个命令安装:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
安装后会自动启动一个界面,询问当前新硬盘是否为可移除硬盘,选择否,他就开始自动修复了,修复成功会问你是否将修复报告上传,选择否即可.
关机-卸下老硬盘,启动电脑,然后应该就没有系统选择的菜单,直接进入新系统了,
至此,完毕.
备注:备份重要文件,永远都是第一位的,以上步骤要注意:
(1)处理磁盘时候,一定要处理新的ssd硬盘,别弄错了
(2)迁移脚本不会破坏老硬盘的数据,所以数据是不会丢的
猜你喜欢
- 2025-08-01 AI 推理 | vLLM 快速部署指南
- 2025-08-01 Java实现调用nvidia硬编解码
- 2025-08-01 运维必备:掌握这3个存储技术
- 2025-08-01 Claude Code:完爆 Cursor 的编程体验
- 2025-08-01 【Docker 新手入门指南】第十章:Dockerfile
- 2025-08-01 Linux漏洞检测与修复工具示例
- 2025-08-01 Dify存储告急别焦虑!6步迁移教程,系统无缝切换,流畅度暴涨!
- 2025-08-01 技术栈:全网疯传的Claude code,保姆级使用教程来啦!
- 2025-08-01 如何使用 Prometheus 监控 Linux 服务器性能
- 2025-08-01 LLVM IR入门:编写自定义优化Pass的完整教程与性能影响分析
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)