AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1058463
Accepted
Shayan
Shayan
Asked: 2018-07-23 11:36:07 +0800 CST2018-07-23 11:36:07 +0800 CST 2018-07-23 11:36:07 +0800 CST

dd 手册页太模糊了,如何创建磁盘映像

  • 772

我正在启动一个活动磁盘Ubuntu,我想将我的整个 SSD(sdb)与所有 3 个分区备份到外部硬盘上(sdb1, sdb2, sdb3)的映像文件中。


本指南建议使用以下命令:

dd if=/dev/sdX conv=sync,noerror bs=64K | gzip -c  > /path/to/backup.img.gz
  1. 我想稍后使用该图像将其转换qemu为VHD或VMDK在虚拟机上启动 Ubuntu 系统,因此我不确定.gz那里的压缩。

  2. .img该命令创建的文件格式是什么?是.iso吗?

  3. 为什么命令有conv?我不想要任何转换,我想要原始克隆到图像。

  4. 我还注意到该dd命令甚至没有of=一部分。

  5. bs=128k比提高速度吗bs=64k?


因此,据我所知,我认为满足我需求的正确命令是:

dd if=/dev/sdb bs=64k of=/dev/sdd1/image.img

注意:sdd1是我外接硬盘的唯一分区。

command-line vmware live-usb dd vmdk
  • 2 2 个回答
  • 2048 Views

2 个回答

  • Voted
  1. Best Answer
    vidarlo
    2018-07-23T11:45:59+08:002018-07-23T11:45:59+08:00
    1. 我想稍后使用该图像将其转换qemu为VHD或VMDK在虚拟机上启动 Ubuntu 系统,因此我不确定.gz那里的压缩。

    如果您希望它用于虚拟机,您不希望它被压缩。而且您可能也不是真的想要原始图像,而是 p2v(物理到虚拟)转换。对于 VirtualBox,你可以例如做

    cat /dev/sda | VBoxManage convertfromraw stdin OutPutFile.vdi NUMBEROFBYTES
    

    这将为您创建一个有效的驱动器 vboximage。

    1. .img该命令创建的文件格式是什么?是.iso吗?

    ISO 指的是 ISO9660 文件系统。如果您对整个硬盘进行映像,它将是一个硬盘映像,包括引导扇区和分区表。如果您对单个分区进行映像,则格式本质上将是该分区具有的任何格式。

    1. 为什么命令有conv?我不想要任何转换,我想要原始克隆到图像。

    conv指定参数,它可以做一些转换。在这种情况下,它告诉dd使用同步 I/O,而不是在错误时中止。在手册页中输入man dd并/syncEnter搜索同步

    1. 我还注意到该dd命令甚至没有of=一部分。

    dd除非重定向,否则输出到标准输出。在这种情况下,标准输出通过管道传输到gzip,这将压缩文件并写入/path/to/backup.img.gz.

    1. bs=128k比提高速度吗bs=64k?

    大概。最终的答案是测试它,例如用time dd if=/dev/sda of=/dev/zero bs=64k count=10000,并用不同的尺寸重复。

    • 1
  2. UTF-8
    2018-07-23T11:50:20+08:002018-07-23T11:50:20+08:00

    的手册页dd并不含糊。你只是不理解所有的概念。

    您不应该为您的目的使用任何转换选项。把它们放在外面。

    你不需要压缩来达到你的目的。无论如何,您只需要在之后立即提取图像。

    第一个命令没有of参数,因为数据通过管道传输到不同的命令。因此dd生成一些数据,然后将这些数据推送到gzip执行压缩的地方,然后将结果写入指定的位置。要了解有关管道的更多信息,只需谷歌“Linux 管道”。它们真的很有用。但是,您不需要任何用于您的目的。

    的输出没有特定的格式dd。dd只是复制数据。它获取在其输入位置找到的任何内容并将其复制到其输出位置。通常,使用文件扩展名“.img”。然而,因为dd副本可以是任何东西,所以在某些情况下使用更具体的东西,如“.iso”是有用的。

    在现代计算机上,块大小(通过 指定bs)甚至可能更大。如果您使用的是多年来制造的任何计算机,请直接使用bs=4M或类似的东西。如果它在正确的范围内,摆弄它不会有太大变化。

    要备份您的磁盘,您可以使用以下命令:

    sudo dd if=/dev/sda bs=4M of=/path/to/your/storage/location/filename.img
    

    请注意,您需要 root 权限才能直接从硬盘驱动器的设备文件中读取。

    但请确保您of不要开始,/dev除非您确切知道自己在做什么!这样做可能会擦除整个磁盘!它不应该指向您希望图像所在的设备的位置,而是指向它的安装位置。这些路径通常以/media或开头/mnt。

    • 1

相关问题

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 如何使用 Mac 创建 Ubuntu live USB?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve