linux dd 系统移动 【推荐Ubuntu live cd下】
<系统转移有许多方法,但是按字节全部复制的我只知道dd指令。>

老电脑有时候用久了,系统安装了许许多多的东西,但是随着时间的流逝,电脑性能也开始慢慢跟不上了。然后就想升级一下。我们知道,对于大多数电脑来说,升级电脑最直接的莫过于更换固态硬盘了。但是系统却是个大麻烦。有些人会重装系统,有些人会用软件系统迁移,但是会需要重新安装不少软件等等。但是这些都挺麻烦的。

所以我找了一个好像更佳牛逼的系统迁移方法,它能够按字节全部复制原磁盘的数据而不是按文件复制

准备一个live cd(U盘linux系统)或者一个和需要移动的系统盘不在一个盘linux系统(拷贝当前运行的系统会发生不确定情况)。

uefi下的系统安装。。真的很简单

uefi下的系统安装。。真的很简单!!!不信你看。。。windoes 在msdn.itellyou.cn下载系统(win10/8),将下载的iso系统文件解压至U盘根目录即制作完成了uefi安装系统下的U盘启动盘 若你的电脑(笔记本)是在近几年买的可以肯定支持uefi启动。开机进入bios选择U盘启动,以我的暗影精灵2为例,开机狂按esc暂停启动,f9选择启动项选择U盘启动,然后就是系统安装界面了,选择你安装的系统(安装包可能有几款系统),选择安装在那个分区。然后就是等待了。PS:这是重装系

文章
tyro废汪
1676
6
7
Ubuntu系统安装

插入U盘,通过快捷启动项启动系统,打开命令行用fdisk -u -l查看当前分区所有信息。 sudo fdisk -u -l(-u是为了让star和end中的数字单位为512字节,后续有用到)

fdisk -u -l查询结果

root@for-me:~# sudo fdisk -u -l

设备 Start 末尾 扇区 Size 类型

/dev/sda1 2048 204799 202752 99M EFI System

/dev/sda2 204800 466943 262144 128M Microsoft reserved

/dev/sda3 468992 235642538 235173547 112.1G Microsoft basic data

/dev/sda4 248225792 250064895 1839104 898M Windows recovery environment

设备 Start 末尾 扇区 Size 类型

/dev/sdb1 2048 652091391 652089344 311G Microsoft basic data

/dev/sdb2 652091392 1286971391 634880000 302.8G Microsoft basic data

/dev/sdb3 1286971392 1848350719 561379328 267.7G Microsoft basic data

/dev/sdb4 1848350720 1864351743 16001024 7.6G Linux swap

/dev/sdb5 1864351744 1865351167 999424 488M EFI System

/dev/sdb6 1865351168 1901350911 35999744 17.2G Linux filesystem

/dev/sdb7 1901350912 1921351679 20000768 9.6G Linux filesystem

/dev/sdb8 1921351680 1953523711 32172032 15.3G Linux filesystem

设备 启动 Start 末尾 扇区 Size Id 类型

/dev/sdc1 6240 62463999 62457760 29.8G c W95 FAT32 (LBA)

这是我的电脑fdisk -u -l结果,共三个设备,sda119.2G固态硬盘、sdb931.5G机械硬盘、sdc29.8GU盘。

拷贝磁盘
将原磁盘数据全部拷入目标硬盘是最简单的,只需要 dd if=/dev/xxx of=/dev/xxx即可,例如我的/dev/sda是原系统盘,若/dev/sdc是系统转移的目标硬盘。

则:

          dd if=/dev/sda of=/dev/sdc      (此步骤将/sda固态硬盘全部拷入目标硬盘/sdc【目标硬盘必须大于原硬盘】dd if=/dev/sda of=/dev/sdc)

即可(如果提示权限不足,在dd前加入“sudo ”即可。sudo dd if=/dev/sda2 of=/dev/sdc)

备份分区
若是将某一个分区进行备份,例如备份/dev/sda2,指令为dd if=/dev/sdax of=/boot/xxx.img,输入你要备份的分区,则如下所示

如:

  root@for-me:~# dd if=/dev/sda2 of=/boot/111.img记录了262144+0 的读入记录了262144+0 的写出134217728 bytes (134 MB, 128 MiB) copied, 0.390177 s, 344 MB/sroot@for-me:~#

这就将分区/dev.sda2以111.img文件备份在了linux系统boot文件夹中。

备份多个分区为一个文件 而若将特定某几个分区一起备份为一个文件则使用另一种方法,这也是为什么要使用“-u”的(“-u可以让start和end中数字的单位为512字节”)。

假定我是使用的live cd,则/dev/sdb不是我正在使用的Ubuntu系统盘,我若想复制走这个的Ubuntu系统,就不适合上面的方法了。因为我需要将/dev/sdb4~/dev/sdb8复制为一个文件带走。这样我需要的指令应该为 dd bs=512 skip=[目标分区start数-1] count=[几个目标分区的扇页数之和+2] if=/dev/sdb of=/boot/xxxx.img (“-1” “+2”是为了比目标内容前后各大512字节,以确保内容被全部复制)

例:

  root@for-me:~# dd bs=512 skip=1848350719 count=105172994 if=/dev/sdbof=/boot/xxxx.img     记录了xxxxxxxxxx 的读入记录了xxxxxxxxxx 的写出xxxxxxxxx bytes (xxxxx MB, xxxx MiB) copied, xxxxxxxxxroot@for-me:~

这样就将系统复制下来了。(16001024+999424+35999744+20000768+32172032+2=105172994)

这种方法可以只复制单个分区,那样和dd if=/dev/sdax of=/boot/xxx.img作用相同

以sda2为例子尝试两种方法备份单一分区

对比结果
PS:根据大佬提示,若真的复制Linux系统,当你将镜像恢复到另一台计算机而不是迁移系统时,可能会发现你的网卡是eth1而不是eth0,这是由于原系统中的/etc/udev/rules.d/70-persistent-net.rules文件将你的原计算机网卡登记为了eth0。所以若是复制到其他计算机最后先删除/etc/udev/rules.d/70-persistent-net.rules文件。

PS2:还是复制linux系统问题,最好先取消掉其他挂载的硬盘,umount所有if和of时用到的分区。

PS3:有时候如果我们想备份磁盘,但是我们会发现我们安装的Linux系统本身的分区是不够大的,我们也不能直接将of=的文件直接输入到其他磁盘

无法指定/dev/sdax类型为输出路径
如上图所示,这时候我们可以用mount挂载硬盘,比如挂载到/home/www.vpsss.net(文件夹名字为捏造),就可以通过of=/home/www.vpsss.net/xxx.img来保存你的镜像了。

将备份文件还原到磁盘
将复制的系统还原到磁盘只需dd if=xxx.img of=/dev/sdx[目标磁盘],具体是叫什么fdisk中可以看到(目标磁盘不需要任何分区,操作将直接覆盖目标磁盘,所以最好用空盘还原。当然你也可以尝试将of对象为磁盘内某分区)

按需求输入指令后就是等待执行dd命令完成即可

根据这里面内容,你可以随意操作备份或者拷贝磁盘等。

以下为本文所有fdisk和dd的部分介绍

Fdisk

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition 注:这是删除一个分区的动作;

l list known partition types 注:l 是列出分区类型,以供我们设置相应分区的类型;

m print this menu 注:m 是列出帮助信息;

n add a new partition 注:添加一个分区;

o create a new empty DOS partition table

p print the partition table 注:p 列出分区表;

q quit without saving changes 注:不保存退出;

s create a new empty Sun disklabel

t change a partition’s system id 注:t 改变分区类型;

u change display/entry units

v verify the partition table

w write table to disk and exit 注:把分区表写入硬盘并退出;

x extra functionality (experts only) 注:扩展应用,专家功能;

dd

  1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

  2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

  3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

    bs=bytes:同时设置读入/输出的块大小为bytes个字节。

  4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

  5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

  6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。

  1. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

  2. conv=conversion:用指定的参数转换文件。

转自 https://www.bilibili.com/read/cv264409 出处:bilibili

尽量无损的复制系统———dd系统镜像相关推荐

  1. Ubuntu 备份系统为ISO镜像 解决ISO限制4GB大小 Clone当前系统到其他电脑

    看标题,标题涵盖了3个部分,Ubuntu 备份系统为ISO镜像,  解决ISO限制4GB大小 ,  Clone当前系统到其他电脑  我们就从三个部分说起. Ubuntu 备份系统为ISO镜像 在Win ...

  2. linux系统做成iso镜像文件,如何在Linux系统中制作可启动img/iso镜像文件

    img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件. 制作镜像文件有三种方法 ...

  3. linux系统做gost镜像,linux下如何像ghost一样备份系统

    Windows下Ghost可以克隆整个系统的镜像,然后在新的电脑上恢复,相当简单.Ghost安装系统比使用安装镜像安装要快的多,因为Ghost磁盘存储是连续的,且安装过程中不需要回答任何问题. 为什么 ...

  4. 系统复制-快速重装系统

    ubuntu 直接把安装好常用软件和环境的系统打包成镜像,用systemback安装,便捷很多. 之前那种,ubuntu安装都要好久,少说也得20分钟吧,之前就是等,等它安装完,简直就是浪费生命. 要 ...

  5. 昆山市地方税务局异地复制及备份系统询价采购招标公告

    行业分类:其它行业 招标编号:KSGZ2009-X-004 所在省份:江苏 招标内容: 昆山公正建设咨询有限公司 询价采购书            编号:KSGZ2009-X-004 受昆山市地方税务 ...

  6. 腾讯轻量云linux系统dd安装windows

    本文仅针对于腾讯轻量云,其他厂商的没有试过. dd是linux的一个命令,简单的理解算是用一个镜像文件来替换现有系统,具体细节我也没去深入学习了.其实dd安装windows的教程网上很多,现成的镜像也 ...

  7. 自己centos7系统制作iso镜像,并新建虚拟机

    一.自己centos7系统制作iso镜像 1. 前置工作 将系统安全配置 SELINUX 改为 disabled,否则制作好的镜像无法登陆!!! vim /etc/selinux/config # 将 ...

  8. CentOS系统打包ISO镜像

    CentOS系统打包ISO镜像 DIY自己的IOS镜像 使用工具:Linux系统.Mondo 1. 前置工作 2.安装 mondo rescue 3.修改mondo配置 4.将系统的硬盘挂载从 UUI ...

  9. 树莓派系统最新系统镜像Bullseye更换镜像源

    我们在因为墙内的原因,往往有时无法快速地更新我们的系统镜像库源,这里我简述一下最新的树莓派Bullseye系统如何更换镜像源的方法. 最新树莓派4B开发板的架构是armhf体系,如果想看你的开发板的体 ...

最新文章

  1. arcmap shp导出cad无反应_地图数据获取|2、CAD地图获取
  2. java正则表达式的菜鸟使用分析
  3. 循环结构_for循环
  4. 在Ubuntu Linux 16.04下(64位)打开.ipynb文件
  5. Android 常见内存泄漏及解决方法
  6. Pyplot绘图的格式
  7. 贝叶斯网络模型具体作用
  8. WebSocket子协议STOMP详解
  9. 【java】switch的用法介绍
  10. jmobile学习之路 ----检测屏幕宽度
  11. Spring源码浅析之配置文件解析(一)
  12. adb配置环境变量没有反应
  13. 计算机更换固态硬盘方法,笔记本电脑固态硬盘如何更换
  14. Matlab给二维函数图像标注极值点
  15. 加快 apk 的编译速度
  16. 华氏度和摄氏度转换for-Python
  17. 智能世界2030八大展望
  18. 一加手机救砖资源-sahara通信失败 或者 checkHwid failed都是由于使用错了救砖包
  19. Summary of the monthly meeting in January and February
  20. IOS开发入门(11)-导航控制器(1)

热门文章

  1. 微信源码多功能 微cms微信营销服务平台
  2. python学徒,Python进展路径 – 从学徒到古鲁
  3. android 设置状态栏
  4. java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理
  5. java语言写常驻服务_让程序常驻后台运行的原理和方法
  6. linux卸载思科,ciscodk教你卸载Linux软件
  7. c语言判断语句大全,C语言条件判断语句:if、else if、else
  8. 算法模板总结(自用)
  9. 购买的wemall 6.0商城系统源码分享
  10. Windows下bat批处理脚本常用场景整理,持续更新中。。。