首页 > 系统相关 >用dd命令克隆ubuntu系统

用dd命令克隆ubuntu系统

时间:2023-11-08 13:33:30浏览次数:28  
标签:克隆 分区 dev 命令 ubuntu fdisk 镜像 dd

神奇的ghost的原理是什么呢?不就是数据复制吗?Linux下的dd命令不就是最强大的数据复制工具!          既然如此,我为什么要使用g4l这样复杂的工具呢?一条dd命令不就可以帮我实现任意复杂的镜像复制和恢复的需求了吗?管他是grub,还是ext4,btrfs,FAT32,NTFS...dd面前众生平等。          进入Linux操作系统,打开命令行,执行如下命令:       sudo  fdisk -u -l       可以查看所有磁盘上的所有分区的尺寸和布局情况。 -u,让start和end中数字的单位是512字节,也就是一个sector扇区的大小。      假设我有一个/dev/sda磁盘,有100GB大小。我安装了一个Ubuntu操作系统。使用了如下分区: /dev/sda1 5GB /dev/sda2 1GB 扩展分区 /dev/sda5 1GB 扩展分区 /dev/sda2是所有扩展分区,它的大小和/dev/sda5重合。 /dev/sda1是ext4格式的文件系统。用于安装ubuntu操作系统。 /dev/sda5是swap格式的文件系统,作为交换分区。       如果我用弱智的g4l工具制作系统的镜像,就需要备份整个磁盘100GB,而不是我需要的6GB。       g4l也可以单独备份分区,但是在恢复时,就需要在目标计算机上安装好grub,并进行了适当的分区。很麻烦!         我这里,可以使用一条dd命令就生成6GB的镜像。然后可以在任意硬盘大于6GB的计算机上恢复出完整的系统,包括MBR和3个分区sda1,sda2,sda5。     具体步骤         找一个U盘,安装UbuntuLive Cd系统。【具体如何制作U盘启动的UbuntuLive CD,可以参考Ubuntu官方网站的帮助。】 UbuntuLive Cd和WindowsPE系统类似,是光盘/U盘引导的Ubuntu操作系统,不需要安装就可以直接使用。          U盘启动,进入盘上的Ubuntu系统,打开命令行,执行:        sudo  fdisk -u -l /dev/sda        查看硬件的分区情况。   然后执行:       dd   bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sda of=/ghost.img     这样,就可以把我需要的分区数据全部copy到ghost.img文件中。镜像制作完成了!           然后,我们就可以把U盘插到其他系统上,用U盘启动,进入UbuntuLiveCD,打开命令行,执行如下命令: dd if=/ghost.img of=/dev/sda     完成后,拔掉U盘,启动计算机,就可以看到我们的Linux系统已经安装完毕了! 注意:        不要直接在计算机上用本地磁盘启动系统后执行dd命令生成本地磁盘的镜像。而应该使用livecd启动计算机。         因此计算机运行时会对系统盘产生大量写操作。 直接对运行中的系统盘生成的镜像,在恢复到其他硬盘上时,很可能会无法启动!     一样适用于非Linux操作系统        在linux上用dd命令实现系统镜像备份和恢复,是不是很简单呢?          对于Windows系统,甚至Mac等等任意系统,其实都可以用dd命令实现系统镜像的备份和恢复。        因为,Linux的fdisk命令能够识别任意系统下的分区格式。fdisk并不关系分区上的文件系统,甚至有无文件系统都不关心。fdisk总是可以报告分区占用了哪些扇区。  dd命令也不关心磁盘的文件系统格式,它只是简单地按照要求从指定的位置,复制多少字节数据而已。       dd命令实现镜像备份和恢复,比Ghost软件简单和强大多了。使用ghost软件,依然需要用户进行复杂而危险的磁盘分区操作。       而使用fdisk和dd这两条命令,一切都免了!   压缩和解压缩         可能我们需要备份的分区很大,使用dd命令生成的镜像文件也就很大。存储和传输这些镜像不太方便。  我们也可以使用压缩程序压缩生成的镜像文件。 这里,我选择使用gzip程序,配合dd命令一起使用。   gzip参数: -c 表示输出到stdout -d  表示解压缩 -1 表示最快压缩 -9 表示最好压缩 默认使用的是-6压缩级别。              要使用 dd 和 gzip 生成压缩的镜像文件,可以执行命令: #   dd   bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sda | gzip -6 > /ghost.img.gz   还原时,可以执行下列命令: # gzip -dc /ghost.img.gz.gz | dd of=/dev/sda     提醒:        如果你把镜像恢复到另一台计算机上,你可能会发现你的网卡是eth1,而不是eth0。这是因为 /etc/udev/rules.d/70-persistent-net.rules   文件把你做镜像的计算机的网卡作为eth0登记了。        如果你的网络脚本对eth0进行了处理,而没有对eth1进行处理,那么不修改网络脚本,你可能就无法上网了。        也许你会希望在做镜像之前,先删除 /etc/udev/rules.d/70-persistent-net.rules 文件。这样你恢复镜像时,网卡的名字就是eth0。   就不会造成你在恢复后的计算机上无法上网的问题了。 原文:https://blog.csdn.net/b7376811/article/details/108316066

标签:克隆,分区,dev,命令,ubuntu,fdisk,镜像,dd
From: https://www.cnblogs.com/qiynet/p/17817175.html

相关文章

  • Adding custom code to Local Reports in Visual Studio.NET 2005 (Problems & Soluti
    AddingcustomcodetoLocalReportsinVisualStudio.NET2005(Problems&Solutions)IfyouareoneofthepeoplewhousedandenjoyedSQLServerReportingServices(SSRS)inSQL2000andyouwantedtouseitinyourwindows/webapplicationswithou......
  • 记 grep命令在Ubuntu上使用失败的问题
    问题/任务我有一个任务,要用shell命令从文本文件中提取ip地址,文本文件内容就像这样:185.155.192.77--[17/Jul/2023:02:27:22+0000]"GET/HTTP/1.1"4041234我想到可以用grep来实现,找到一个ip地址的正则表达式,用来提取ip正好,命令行是这样:grep-E-o'\b(?:\d{1,3}.){3......
  • Adding empty space into SQL Server Reporting Services
    REF:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1400080&SiteID=1(1)Ratherthaninsertingspaces,canyouadjustthepaddingpropertyonthetextbox?Ifyougoalistohavethefieldindented,thatshouldwork.(2)Anyreasonyoucouldn'......
  • undefined reference to `add(int, int)'
    一、概述使用cmake编译C++项目报undefinedreferenceto`add(int,int)'项目中有.cpp文件,有.h文件,有.c文件。也就是c和c++混编。其中.cpp文件引用了.c的头文件现象: 从上面可以看出其实这几个.cpp和.c文件都已经编译过了。但是就会提示找不到.c文件中的......
  • .net core webapi Startup services.AddHttpClient
    staticpublicclassCreditScoreServiceExtension{staticpublicvoidAddCreditScoreQueryServiceHttpClient(thisIServiceCollectionservices,IConfigurationconfig){services.AddSingleton<ICreditScoreQueryService,CreditS......
  • How to add an image on reportViewer (rdlc)
    OpenthereportintheDesigner.IntheToolBox,select/expandthe"ReportItems"section.Dragan"Image"field/controlontothereport.ClickontheimageandpressF4,thepropertieswindow popsup,underthegroupdatayou'llf......
  • C# 一款免费且离线的.NET使用的OCR,PaddleOCRSharp
    本项目是一个基于百度飞桨[PaddleOCR](https://github.com/paddlepaddle/PaddleOCR)的C++代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能,同时针对小图识别不准的情况下,做了优化,提高识别准确率。包含总模型仅8.6M的超轻量级中......
  • Rotary Position Embedding分析
    1旋转角度计算计算公式如下,其中d为词嵌入维度,\[\theta_j=10000^{-2(j-1)/d},j\in[1,2,\ldots,d/2]\]#计算词向量元素两两分组之后,每组元素对应的旋转角度#维度:[dim/2]freqs=1.0/(theta**(torch.arange(0,dim,2)[:(dim//2)].float()/dim))2计算整个seq......
  • DDD技术方案落地实践
    1.引言从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成熟。在既往经验中总结了一些在开发中遇到的技术问题和解决方案进行分享。......
  • DDD技术方案落地实践 | 京东云技术团队
    1.引言从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成熟。在既往经验中总结了一些在开发中遇到的技术问题和解决方案进行分享。因为......