原文在这里:https://www.findhao.net/easycoding/2070

Introduction

老师评上了学校的青年学者重点培养计划,每年多了好多资金。实验室机器的配置也在逐步升高。上一批加ssd的时候,我们没分到,这次补上。

本文记录的是将我的debian9 从原来的闪迪120G SSD迁移到三星 250G SSD的过程。

1. 准备工作

做好数据备份!

所有的操作均在u盘的livecd下进行的。

2. 查清楚分区号

通过在root用户下fdisk -l查清楚目前的分区号。

比如,我的闪迪是/dev/sdb,有两个分区,一个200MB的boot是sdb1,剩下的是扩展分区的根目录sdb5。而三星是空的。

使用图形化的GPrated在三星的那块硬盘上新建主分区,默认为sda1。

3. 使用dd拷贝数据

在网上查到的一些资料是直接拷贝整个硬盘/dev/sdb/dev/sda,在拷贝时,包括了分区表。导致250G的硬盘,拷贝结束后,里面有110GB(原硬盘的大小)的分区是拷贝过来的数据,剩下的是没有划分的空间,然而还不能直接调整新建的110GB的分区大小,把这没有划分的空间补充过去。

而且,由于历史遗留原因,一开始划分200MB的boot实在是不太方便的做法。因此,这里只拷贝根目录分区的内容过去,boot重新拷贝并标记上。

3.1 执行的dd命令

我的根目录所在的分区是/dev/sdb5,新硬盘划分的是/dev/sda1


dd if=/dev/sdb5 of=/dev/sda1

由于dd命令没有展示中间过程,因此使用另一条命令来让他输出中间过程:


watch -n 5 killall -USR1 dd

注意dd命令也会拷贝uuid过去,意味着,/dev/sda1的uuid和/dev/sdb5的uuid是一样的。

uuid是一个唯一的标识符,因为类似/dev/sda这样的映射点,在新设备加入的时候,可能会生成新的映射点,比如原来系统里是/dev/sda现在变成了/dev/sdb等等,所以一般情况下,在/etc/fstab里写自己规则的时候,都是用uuid而非映射点。

可以不修改新硬盘分区的uuid,也就省去了修改/etc/fstab或者/boot/grub/grub.conf的麻烦。

3.2 拷贝boot分区内容

我的原系统boot分区在/dev/sdb1,准备将其内容拷贝到新硬盘的默认根目录下的boot文件夹。

先挂载boot分区和新系统分区


cd /root/
mkdir boot
mount /dev/sdb1 /root/boot
# 挂载新硬盘分区可以跳过,因为在文件管理器里,点击新硬盘以后,会自动挂载到/media/ubuntu/your_uuid
mkdir sda
mount /dev/sda1 /root/sda
cp -aur /root/boot/*  /root/sda/boot/

3.3 更新硬盘信息


umount /dev/sdb1         // 记得在操作之前先卸载所有挂载
e2fsck -f /dev/sdb1
resize2fs /dev/sdb1

3.4 修改uuid,添加boot标记

如果你想修改uuid,比较简单的办法是打开gparted,在分区上右键,生成新的uuid。

同时还要修改/etc/fstab中的内容,替换掉原来的uuid

右键设置标记中选中boot,表明这个分区是有启动点的。

3.5 修复grub

更新grubupdate-grub2

如果重启后,进入系统有问题,但是可以进入grub rescue,自己又不知道到底问题出哪里的话,简单的办法是使用boot-repair这个工具。


sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

然后打开bootrepair进行一键修复即可。

我的在运行前,询问我/dev/sda是可移动硬盘吗,当然不是。。在认为他的自动处理能力有问题以后,我点开了高级设置,手动选择了正确的grub位置(/dev/sda),然后等待修复完成,大概不到10mins。

完成后重启即可进入系统。

迁移linux系统到新硬盘相关推荐

  1. Linux系统增加新硬盘

    linux系统想要添加新的硬盘,按照此方法操作: 1.首先,查看系统硬盘挂载情况:lsblk   或者    lsblk -f 2.虚拟机的话,在设置中添加新硬盘,然后重启. 3.新硬盘分区:fdis ...

  2. linux系统如何挂载新硬盘,Linux系统挂载新硬盘操作流程

    1.登录后输入fdisk -l命令看当前磁盘信息 2.可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 3.进入fdisk命令,输入h可以看到该命 ...

  3. Linux系统挂载新硬盘

    1.使用df命令查看设备命名: sda1,sda2,sdb1.....表示该服务器无raid cod..........................表示该服务器包含raid 2. 查看分区情况,找 ...

  4. linux格式化该新添加的分区,Linux下添加新硬盘及分区格式化要点

    预备知识 在为主机添加硬盘前,首先要了解linux系统下对硬盘和分区的命名方法. 在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb.依此类推 一般主板上有两个IDE ...

  5. Linux的实际操作:给Linux添加一块新硬盘

    因为某种原因,Linux系统的一块硬盘已经用完了,现在需要新增加一块硬盘挂载到Linux文件系统上 案例:增加一块 2G的硬盘 sdb1,挂载到文件系统中新增的/home/newdisk文件目录下,后 ...

  6. Linux 添加一块新硬盘

    给Linux添加一块新硬盘可以分为5个步骤 虚拟机添加硬盘 分区 格式化 挂载 设置自动挂载(即永久挂载) 一.虚拟机添加硬盘: 在开始操作之前首先应该在虚拟机(以vm12为例)手动添加硬盘,操作如图 ...

  7. linux硬盘防止复制,linux系统下的硬盘复制方法

    用户提问 有两个内含LINUX系统的CF卡(A和B),由于A中的LINUX系统出了问题,想把A格式化以后,再把B的LINUX系统复制到格式化后的A中,在LINNUX的系统下怎么操作?需要什么软件?我手 ...

  8. linux挂载固硬盘装,linux下安装新硬盘并挂载mount

    linux下安装新硬盘并加载使用手记 ================================================================================ ...

  9. linux服务器插上硬盘不能开机,Linux服务器添加新硬盘无法识别解决方法(无需重启)...

    Linux服务器添加新硬盘无法识别解决方法(无需重启) 发布时间:2018-08-24 19:45, 浏览次数:711 , 标签: Linux 前言 一般来说,当我们在服务上插入新的磁盘时,服务器是会 ...

  10. Linux  释放Linux 系统预留的硬盘空间

    释放 Linux 系统预留的硬盘空间 by:授客 QQ:1033553122   大多数文件系统都会保留一部分空间作为紧急情况时用(比如硬盘空间满了),这样能保证有些关键应用(比如数据库)在硬盘满的时 ...

最新文章

  1. spring中是如何解析@Profile注解的
  2. 超详细 kafka 入门(最佳实践)
  3. Mongodb基本操作之.net
  4. 量子计算机迷宫,一个简单的例子,带你读懂量子计算机
  5. 3结构介绍_接收机基本结构
  6. java生成world文件_Hello World 项目创建与项目配置文件介绍
  7. 解决myeclipse里面git的更新(pull)操作问题
  8. 关于二叉树,你该了解这些!
  9. error: (-205:Formats of input arguments do not match) All the matrices must have the same data type
  10. 关键路径例题图解_图解!九大常见数据结构被24张图给安排的明明白白
  11. 定编定岗定员方案_定岗、定编、定员实施方案  (讨论稿)
  12. 验证码识别登录:使用超级鹰(验证码识别第三方包)识别超级鹰网站登录
  13. MPB:遗传发育所刘永鑫等-易扩增子:易用、可重复和跨平台的扩增子分析流程...
  14. QT5 自定义窗口的详细设计方案
  15. 位、字符、字节、有什么区别
  16. mc:Ignorable=“d“什么意思?
  17. EBS 使用API更新物料属性 Inv_Item_Grp
  18. 电商分销APP开发功能模块
  19. JavaWeb框架(二):Servlet组件入门
  20. 《中国脱发地图》来袭!最秃的省是?

热门文章

  1. python定义一个空的数组_用Python算算你要交多少个人所得税
  2. c++利用StretchBlt函数改变CImage输出图片的位置
  3. Unsupervised Learning | 对比学习——13篇论文综述
  4. word-vba应用
  5. 不要放弃你的自由——答一些网友的评论
  6. Delphi XE DataSnap三层开发实务
  7. Oracle数据库学习笔记(十五)--自连接
  8. Java测试-RestTemplate-@requestBody
  9. linux中vim怎么编辑文件内容,Linux 使用vim命令编辑文件内容
  10. matlab 自动交易系统设计3