zoukankan      html  css  js  c++  java
  • Ubuntu14.04 dd命令克隆系统镜像安装到另一台机器上

    linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.
    当拷贝完硬盘后,就可以拿这个硬盘放到其它设备上跑了。
    也就是完成了“烧写”了。

    用U盘制作ubuntu14.04的启动盘,在livecd模式中进行修复,步骤如下:
    1.开机u盘启动,进入ubuntu安装程序,图形界面出来后,选择try ubuntu,不要选择install ubuntu。
    2.之后便进入了ubuntu的体验环境。

    打开命令行,执行:

    sudo fdisk -u -l /dev/sda

    结果

    $fdisk -l /dev/sda
    
    Disk /dev/sda: 32.0 GB, 32017047552 bytes
    255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0006d236
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      499711      248832   83  Linux
    /dev/sda2          501758    62531583    31014913    5  Extended
    /dev/sda5          501760    62531583    31014912   8e  Linux LVM

    查看硬件的分区情况,记住命令中最大的end数为N。


    #全盘拷贝的命令

    dd if=/dev/sdb of=/dev/sdc

    #分区拷贝

    dd bs=512 count=N+1 if=/dev/sdb of=/media/usb/ghost.img

    只打包sda就可以!!!

    拷贝有两种方式,压缩和不压缩
    #不压缩
    --------------------------------------------------------*
    #备份系统盘到/media/usb/下面

    dd bs=512 count=N+1 if=/dev/sda of=/media/usb/ghost.img

    #可以不加count

    #dd bs=512 if=/dev/sda of=/media/usb/ghost.img

    #系统恢复

    dd if=ghost.img of=/dev/sda

    --------------------------------------------------------+

    #压缩(系统打完的镜像不能超过4G,可能会报错https://www.cnblogs.com/sea-stream/p/10938792.html
    --------------------------------------------------------*
    #备份系统盘到/media/usb/下面

    dd bs=512 count=250068999 if=/dev/sda | gzip -9 > /media/usb/ghost.img.gz

    #可以不加count

    #dd bs=512 if=/dev/sda | gzip -9 > /media/usb/ghost.img.gz

    #系统恢复

    gzip -c -d ghost.img.gz | dd of=/dev/sda

    #补充
    gzip参数:
    -c 表示输出到stdout
    -d 表示解压缩
    -l 对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字。
    -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
    -t 测试,检查压缩文件是否完整。
    -v 对每一个压缩和解压的文件,显示文件名和压缩比。
    -1 表示最快压缩
    -9 表示最好压缩
    -1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比),默认使用的是-6压缩级别。
    --------------------------------------------------------+
    这样,就可以把我需要的分区数据全部copy到ghost.img文件中。
    镜像制作完成了!


    #烧写程序
    这一步,是安装镜像到目标机器上,把U盘插到其他系统上,用U盘启动,进入UbuntuLiveCD,打开命令行,执行如下命令:
    #没有压缩过的

    dd if=ghost.img of=/dev/sda

    #压缩过的

    gzip -c -d ghost.img.gz | dd of=/dev/sda

    完成后,拔掉U盘,启动计算机,就可以看到我们的Linux系统已经安装完毕了!

    在上面的拷贝过程中,并不知道拷贝了多少,只有最终结束时才显示出时间、拷贝速度。为了查看进度,可以在另一个终端输入(记得用root):

    watch -n 5 killall -USR1 dd


    注意:
    不要直接在计算机上用本地磁盘启动系统后执行dd命令生成本地磁盘的镜像,而应该使用livecd启动计算机。
    因为计算机运行时会对系统盘产生大量写操作。
    直接对运行中的系统盘生成的镜像,在恢复到其他硬盘上时,很可能会无法启动!


    PS:使用dd命令,可以读取硬盘的mbr扇区,示例如下:

    dd if=/dev/sdb of=mbr.bin bs=512 count=1

    查看整个磁盘占用情况

    $fdisk -l
    
    Disk /dev/sda: 32.0 GB, 32017047552 bytes
    255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0006d236
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      499711      248832   83  Linux
    /dev/sda2          501758    62531583    31014913    5  Extended
    /dev/sda5          501760    62531583    31014912   8e  Linux LVM
    
    Disk /dev/mapper/xxx--vg-root: 27.6 GB, 27573354496 bytes
    255 heads, 63 sectors/track, 3352 cylinders, total 53854208 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/mapper/xxx--vg-swap_1: 4181 MB, 4181721088 bytes
    255 heads, 63 sectors/track, 508 cylinders, total 8167424 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/sdb: 16.0 GB, 16005464064 bytes
    255 heads, 63 sectors/track, 1945 cylinders, total 31260672 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xcad4ebea
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb4   *         256    31260671    15630208    c  W95 FAT32 (LBA)


    参考:
    https://blog.csdn.net/Blaider/article/details/50434043
    https://forum.ubuntu.org.cn/viewtopic.php?t=30149
    https://blog.csdn.net/Rocarrot/article/details/80446840
    https://blog.csdn.net/qq_19004627/article/details/80683789
    https://blog.csdn.net/imliuqun123/article/details/81707414
    https://blog.csdn.net/wangcg123/article/details/79236441
    http://blog.chinaunix.net/uid-26729093-id-5469034.html
    https://blog.csdn.net/xtggbmdk/article/details/82706380
    https://blog.csdn.net/github_34965845/article/details/80734400
    https://blog.csdn.net/enweitech/article/details/48173713

  • 相关阅读:
    413 Request Entity Too Large
    小米3手机上加载相册图片失败的问题
    MVC+Ninject+三层架构+代码生成 -- 总结(99)
    1)python 爬取小说
    102)微信小程序 van-dialog
    101) 微信小程序 input 双向绑定
    MVC 表格按树状形式显示 jstree jqgrid
    1. mvc 树形控件tree + 表格jqgrid 显示界面
    叫號系統
    HTML5 下拉控件绑定数据
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10920829.html
Copyright © 2011-2022 走看看