通常,要将 ISO 刻录到磁盘,比如说用于安装 Ubuntu 的 ISO,我们 dd 到/dev/sda
,而不是像 那样的分区/dev/sda1
,所以在这种情况下,目标文件所在的/dev/sda
位置可能是整个磁盘先分区有意义吗?iso不包含分区吗?
不要试图做任何恶意或侵犯版权的事情。纯粹出于好奇。
如果 dd 创建磁盘的完整克隆,如果我使用 dd 使用另一个驱动器的许可证密钥制作 Windows 10 的完整副本并在另一台计算机上启动它并且它仍然可以工作,它会工作吗?
我以前使用 dd 克隆硬盘,但我现在正尝试将包含 3 个分区的整个硬盘克隆到另一个驱动器。
我的分区被命名为 nvme0n1p1 到 3,我尝试留下最后一个数字,但 dd 不接受,它需要一个分区名称。
做到这一点的最佳方法是什么?我首先必须在目标磁盘上创建 3 个分区还是有更简单的方法?
nvme0n1p3 是保存所有数据的最大分区,我猜其他是引导分区(512m 和 732M)之类的,我什至需要克隆它们吗?
简而言之,如果我做dd
磁盘到磁盘(例如/dev/sda
to /dev/sdb
),是否也复制了整个磁盘的容量?
例如,如果sda
实际上是 1TB 和sdb
2TB,在 之后dd
,Linux 系统会认为sdb
是 1TB 还是 2TB?
我假设磁盘容量记录在单独的 ROM 或小型非易失性存储器中,而不是磁盘的任何扇区。或者,可能始终保留物理磁盘的几个扇区。
我想以最小的痛苦将旧 1TB 硬盘上的系统迁移到新的 2TB 硬盘。旧磁盘将不会被使用。我想dd
可能会。我唯一不确定的部分是如果我这样做dd
并且磁盘容量的大小就像分区表一样被复制,新的 2TB 磁盘将变为 1TB。我想在实际做之前先确认一下dd
。
我的谷歌搜索没有结果,所以最后我决定在这里发布一个问题。
如果所有系统都是 Linux,我会考虑rsync
分区到分区 & grub-install
。但是,不幸的是,我有一个 Windows 并且没有 Windows 安装 USB。我不确定如何在rsync
.
可以说我有/dev/sda
和/dev/sdb
。
之前,我运行dd if=/dev/sda of=/dev/sdb bs=128M
,它成功了。
然后过了一段时间,第一个磁盘上有更新,我想将它克隆到第二个磁盘。但我不想dd
从头开始跑,因为……嗯,这需要时间。从一开始就没有 dd'ing
更新的任何解决方案?/dev/sdb
更新:磁盘实际上是 ntfs,所以 rsync 不是解决方案。另外,我希望第二个磁盘像源磁盘一样可引导,使用 rsync 会破坏很多东西。
我正在将较大的 HDD(750GB)克隆到较小的 SSD(250GB)。我缩小了分区,只有 83gb 的已用空间。(我进行了碎片整理并进行了 chkdsk)。此外,分区大小的总和小于 SSD 大小。
我现在通过 pv 管道 dd 进程以查看传输的数据量。它仍在运行,并且已经在 170gb+ 上。为什么是这样?我在 dd 上使用了“conv=sync,noerror”参数。我以为它会以83gb结束..
这是“fdisk -l”输出:(/dev/sda = 750gb HDD,/dev/sdb = 250gb SSD)
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 1465149167 732574583+ ee GPT
Partition 1 does not start on physical sector boundary.
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 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
Device Boot Start End Blocks Id System
/dev/sdb1 1 1465149167 732574583+ ee GPT
这是我用来克隆的命令:
sudo dd if=/dev/sda | pv | sudo dd of=/dev/sdb bs=64K conv=sync,noerror
我看过各种帖子讨论使用 dd 创建驱动器映像并仅存储“使用过的数据”。在提出问题/问题之前,让我们假设一些事情。
假设
- 克隆/映像的驱动器是 /dev/sda
- /dev/sda 是 10TB
- /dev/sda 上的已用空间为 1TB
- 映像存储到某个远程 CIFS 安装位置
问题/问题
将选项cp
与--sparse=always
选项一起使用dd
应该会生成一个稀疏文件,以便文件显示为 1GB:
cp --sparse=always <(dd if=/dev/sda bs=8M) /mnt/remote/location/disk.img
或者像下面这样,应该压缩所有归零的空间:
dd if=/dev/sda1 | gzip -c > /mnt/remote/location/disk.img.gz
那么,稀疏的图像文件对恢复有什么影响呢?传输的数据是 1GB 还是 10GB,包括感知到的空白/归零空间?这显然是评估潜在网络负载和恢复时间的考虑因素。
PS 我知道还有其他选项,例如 Clonezilla 和 ddrescue 之类的选项将允许恢复功能,但问题是关于在上述上下文中使用 dd 的具体问题。
谢谢。
我有一个带有损坏的 FAT 文件系统的 USB 笔式驱动器。现在我尝试修复它。因此,为了首先尝试我可以从中获得什么而不进一步危及原始硬件,我dd
使用以下命令行创建了一个图像:
$ sudo dd if=/dev/sdb of=pendrive.img
现在我想通过运行来修复映像中的文件系统fsck
。
但fsck
立即终止如下:
$ sudo fsck.vfat -a -t -v pendrive.img
fsck.fat 3.0.27 (2014-11-12)
Logical sector size is zero.
有什么技巧可以告诉我fsck
假设扇区大小或这条消息是什么意思?有人可以帮助解释这个输出吗?
这个问题类似于fsck a filesystem in a file但这是关于 ext2。https://superuser.com/questions/129189/cant-mount-fat32-drive-under-ubuntu-linux也没有给出答案。
我有几个来自单个驱动器的 dd 图像。其中之一是交换。除了交换的图像外,我在 Ubuntu 中安装了所有图像都很好。这就是 dd 映像的分解方式:hda8 是 /,hda1 是 /boot,hda6 是 /home,hda5 是 /usr,hda7 是 /var,hda9 是 swap。
我使用的命令是:sudo mount -o loop,ro hda1.dd /mnt/Linux
我按照上面列出的顺序安装了每个映像,以便它全部显示为一个驱动器。
当我尝试挂载交换映像时,它失败并出现错误:dev/loop5 看起来像交换空间 - 未挂载。您必须指定文件系统类型。
有什么建议么?