在Linux环境下使用dd命令复制迁移双系统记录
Dawn Hill 结丹

最近因缘际会地需要给五台台式机配置ROS环境,包括安装Ubuntu系统,联网安装ROS,配置MoveIt!之类的。嫌麻烦、费流量,所以搜了一大堆资料,反正不是自己电脑,所以就大胆的试了,虽然有些小干扰,还是一遍就成功了,所以记录一下。

当我接触第一台计算机的时候,发现配置真好,硬盘有1TB,还预装了正版的Windows系统,这要是全给格了,得多可惜,于是我就给装了双系统,一半硬盘用Windows,一半用Ubuntu,里面保留的东西都没给动。装好了之后开始着手备份。

磁盘备份

准备工具

一个预装了Ubuntu live CD的优盘,虽然有8GB,但是要备份1TB的硬盘,显得不太够。光Windows10系统就用了30多G,Ubuntu系统怎么也得6个多G,所以还得一块大点的硬盘也好优盘也好。

开始备份

想尽各种办法,让电脑从优盘启动,进入try Ubuntu without install

进入系统后打开终端,获得一个root权限

1
$ sudo -i

然后查看一下要备份的硬盘的结构

1
$ fdisk -u -l

会出现一个表,sda下面有sda1——sda7的各个分区,从start到end,以512kb为单位进行了编排。

看到这个表我们就可以用dd命令备份硬盘了,它是把硬盘里所有东西都给备份出来。当然我试过了,也可以按分区备份,比如单独备份sda7,也应该是可以的,但是我这是双系统,引导区什么的我又不懂,索性就都备份了吧。

下面的命令,bs大概是一次备份的单位,count是按此单位备份的数量(是上面end的最大数+1,看数据能够理解),正常后面是要直接接of目标img文件的,可我这太大了,所以就用gzip压缩,指定了压缩目录。

1
$ dd bs=512 count=899022848 if=/dev/sda8 | gzip -6 > /media/ubuntu/硬盘/ghost.img.gz

备份过程很慢,大概8000多秒,想查看进度的话,在新的终端窗口驱动root权限后,输入

1
$ watch -n 5 killall -USR1 dd

可以每5秒打印一次进度,5秒是可以调整的。

系统还原

还是在这个优盘的系统try Ubuntu without install里,当然,换了个电脑。打开终端,获取root权限,输入下面命令开始还原,还原度速度很慢,很慢……

1
$ gzip -dc /media/ubuntu/硬盘/ghost.img.gz | dd of=/dev/sda

完事之后重启,自己就进了Windows10系统,没有Ubuntu啥事,这可不行啊。

修改引导

再次进入了优盘的try Ubuntu without install里,改一下超级用户的密码

1
$ sudo passwd

我不知道用sudo -i可不可以,当时挺着急的了,这只是我试了好几个办法中的一个,不敢乱来,以后可以试试。

安装一个修复软件

1
2
3
4
5
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:yannubuntu/boot-repair
$ sudo apt-get update
$ sudo apt-get install boot-repair
$ sudo boot-repair

在弹出的界面中按本能操作,只到出现成功successfully的消息,可以重启了。

重启之后我们的目的基本达到了,然后界面里出现了一大堆的启动项,这不太好啊。

再补充一点

我们把这些没必要的启动项给删了,先取得root权限,然后到/boot/grub目录下找grub.cfg文件,里面相关的删一删,再重启,看看效果。

 打赏作者
 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量