前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迁移linux系统到新硬盘

迁移linux系统到新硬盘

作者头像
用户1148523
发布2019-05-26 14:16:00
7.7K0
发布2019-05-26 14:16:00
举报
文章被收录于专栏:FishFish

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

代码语言:javascript
复制
dd if=/dev/sdb5 of=/dev/sda1

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

代码语言:javascript
复制
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分区和新系统分区

代码语言:javascript
复制
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 更新硬盘信息

代码语言:javascript
复制
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这个工具。

代码语言:javascript
复制
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。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Introduction
  • 1. 准备工作
  • 2. 查清楚分区号
  • 3. 使用dd拷贝数据
    • 3.1 执行的dd命令
      • 3.2 拷贝boot分区内容
        • 3.3 更新硬盘信息
          • 3.4 修改uuid,添加boot标记
            • 3.5 修复grub
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档