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
    • 最新
    • 标签
主页 / server / 问题 / 484404
Accepted
MadHatter
MadHatter
Asked: 2013-03-05 01:19:28 +0800 CST2013-03-05 01:19:28 +0800 CST 2013-03-05 01:19:28 +0800 CST

使用`dd`复制多分区,多文件系统设备的经验

  • 772

我有一张包含多个分区的光盘,每个分区都有不同类型的文件系统(ext3、ext4,比方说,NTFS)。我想知道我是否可以使用 将整个光盘复制到一张新光盘(容量更大)dd,最好是一次操作。

为了避免不必要的努力,让我澄清一些事情。我对其他方法不感兴趣(我知道正确的方法,第三方软件不可取)。我对理论答案不太感兴趣(“它应该有效”)。我对其他人尝试做这样的事情的经历非常感兴趣。

我知道真正正确的答案是“试试看”,但我距离相关光盘 250 英里。

dd
  • 1 1 个回答
  • 2454 Views

1 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2013-03-05T01:34:40+08:002013-03-05T01:34:40+08:00

    如果你必须这样做,而且你必须在一个非常糟糕的地方才能考虑这样做......

    单独复制分区是最安全的。例如:

    # Install  a temporary ssh key so we don't have to deal with lots of
    # password prompts, remember to remove it from authorized_keys later
    ssh-keygen
    ssh-copy-id -i ~/.ssh/id_rsa user@host
    
    # Copy everything, you can go have breakfast - and probably lunch -
    # while you wait
    for partition in /dev/sdb?*
    do
        dd if=$partition | ssh user@host "dd of=$(basename $partition).img"
    done
    

    等待几分钟或几小时让复制完成,然后开始从磁盘映像恢复。例如,在新磁盘上,您可以创建一个新的分区表,其中包含大小正确的分区以保存磁盘映像,然后dd映像返回到新分区。


    复制整个磁盘(例如dd if=/dev/sdb)会使事情变得更加复杂,因为您拥有一个完整的磁盘映像,您可能不得不以某种方式分成多个分区。如果您正在考虑将整个驱动器直接写入另一个物理磁盘,请再想一想:有时当系统拒绝承认分区表和新硬盘驱动器彼此有任何关系dd时,您只会失败。

    如果您必须一次复制整个磁盘(您可能不需要,所以不要考虑这个),然后将其复制到一个映像文件并用于kpartx处理分区。例如:

    dd if=/dev/sdb | ssh user@host "dd of=sdb.img"
    # Later, on the recovery host...
    kpartx -l sdb.img
    kpartx -a sdb.img
    # Now you can...
    mount -o ro /dev/mapper/loop0p1 /mnt/rescuep1
    mount -o ro /dev/mapper/loop0p2 /mnt/rescuep2
    # or copy to a new hard drive...
    dd if=/dev/mapper/loop0p1 of=/dev/sdc1
    dd if=/dev/mapper/loop0p2 of=/dev/sdc2
    

    如果物理磁盘存在物理问题,请考虑dd_rescue改用(尽管您并没有真正询问过)。

    • 8

相关问题

  • ddrescue 非 Solaris 磁盘出现 I/O 错误

  • dd 和驱动成像

  • 在 Linux 中创建 iso 文件

  • 使用 DD 进行磁盘克隆

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve