尽量无损的复制系统———dd系统镜像
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
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=conversion:用指定的参数转换文件。
转自 https://www.bilibili.com/read/cv264409 出处:bilibili
尽量无损的复制系统———dd系统镜像相关推荐
- Ubuntu 备份系统为ISO镜像 解决ISO限制4GB大小 Clone当前系统到其他电脑
看标题,标题涵盖了3个部分,Ubuntu 备份系统为ISO镜像, 解决ISO限制4GB大小 , Clone当前系统到其他电脑 我们就从三个部分说起. Ubuntu 备份系统为ISO镜像 在Win ...
- linux系统做成iso镜像文件,如何在Linux系统中制作可启动img/iso镜像文件
img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件. 制作镜像文件有三种方法 ...
- linux系统做gost镜像,linux下如何像ghost一样备份系统
Windows下Ghost可以克隆整个系统的镜像,然后在新的电脑上恢复,相当简单.Ghost安装系统比使用安装镜像安装要快的多,因为Ghost磁盘存储是连续的,且安装过程中不需要回答任何问题. 为什么 ...
- 系统复制-快速重装系统
ubuntu 直接把安装好常用软件和环境的系统打包成镜像,用systemback安装,便捷很多. 之前那种,ubuntu安装都要好久,少说也得20分钟吧,之前就是等,等它安装完,简直就是浪费生命. 要 ...
- 昆山市地方税务局异地复制及备份系统询价采购招标公告
行业分类:其它行业 招标编号:KSGZ2009-X-004 所在省份:江苏 招标内容: 昆山公正建设咨询有限公司 询价采购书 编号:KSGZ2009-X-004 受昆山市地方税务 ...
- 腾讯轻量云linux系统dd安装windows
本文仅针对于腾讯轻量云,其他厂商的没有试过. dd是linux的一个命令,简单的理解算是用一个镜像文件来替换现有系统,具体细节我也没去深入学习了.其实dd安装windows的教程网上很多,现成的镜像也 ...
- 自己centos7系统制作iso镜像,并新建虚拟机
一.自己centos7系统制作iso镜像 1. 前置工作 将系统安全配置 SELINUX 改为 disabled,否则制作好的镜像无法登陆!!! vim /etc/selinux/config # 将 ...
- CentOS系统打包ISO镜像
CentOS系统打包ISO镜像 DIY自己的IOS镜像 使用工具:Linux系统.Mondo 1. 前置工作 2.安装 mondo rescue 3.修改mondo配置 4.将系统的硬盘挂载从 UUI ...
- 树莓派系统最新系统镜像Bullseye更换镜像源
我们在因为墙内的原因,往往有时无法快速地更新我们的系统镜像库源,这里我简述一下最新的树莓派Bullseye系统如何更换镜像源的方法. 最新树莓派4B开发板的架构是armhf体系,如果想看你的开发板的体 ...
最新文章
- arcmap shp导出cad无反应_地图数据获取|2、CAD地图获取
- java正则表达式的菜鸟使用分析
- 循环结构_for循环
- 在Ubuntu Linux 16.04下(64位)打开.ipynb文件
- Android 常见内存泄漏及解决方法
- Pyplot绘图的格式
- 贝叶斯网络模型具体作用
- WebSocket子协议STOMP详解
- 【java】switch的用法介绍
- jmobile学习之路 ----检测屏幕宽度
- Spring源码浅析之配置文件解析(一)
- adb配置环境变量没有反应
- 计算机更换固态硬盘方法,笔记本电脑固态硬盘如何更换
- Matlab给二维函数图像标注极值点
- 加快 apk 的编译速度
- 华氏度和摄氏度转换for-Python
- 智能世界2030八大展望
- 一加手机救砖资源-sahara通信失败 或者 checkHwid failed都是由于使用错了救砖包
- Summary of the monthly meeting in January and February
- IOS开发入门(11)-导航控制器(1)
热门文章
- 微信源码多功能 微cms微信营销服务平台
- python学徒,Python进展路径 – 从学徒到古鲁
- android 设置状态栏
- java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理
- java语言写常驻服务_让程序常驻后台运行的原理和方法
- linux卸载思科,ciscodk教你卸载Linux软件
- c语言判断语句大全,C语言条件判断语句:if、else if、else
- 算法模板总结(自用)
- 购买的wemall 6.0商城系统源码分享
- Windows下bat批处理脚本常用场景整理,持续更新中。。。