标签: dd

有没有办法从被 dd 部分覆盖的存储设备中恢复文件?

我是个白痴,我正在将图像写入 USB 驱动器dd,而不是打字时,/dev/sdb我键入/dev/sdd并将 135mb 图像写入我的 750gb 外部硬盘驱动器,里面装满了文件。有没有可能恢复文件或dd将驱动器完全清零?请帮忙,因为这是我一生中的最低点之一。

dd在 5 秒内完成了 135mb 图像的写入,所以我没有机会阻止它。当我知道发生了什么的时候已经太晚了。命令如下:

sudo dd if=generic.img of=/dev/sdd bs=1M
Run Code Online (Sandbox Code Playgroud)

EDIT2:外置硬盘的文件系统是 FAT32(我已经有一段时间了,FAT32 是当时最通用的 FS)。我还有一个刚拿到的 2TB 驱动器,我计划将大部分文件从 750gb 移动到其中,如果需要,我可以使用它来将恢复的文件传输到。

files hard-drive dd data-loss data-recovery

17
推荐指数
1
解决办法
7758
查看次数

dd 可以覆盖相邻的分区吗

dd if=/dev/zero of=somepartition bs=512
Run Code Online (Sandbox Code Playgroud)

还擦除分区后somepartition或停止在结束somepartition

dd

16
推荐指数
2
解决办法
3302
查看次数

dd 克隆后 GPT PMBR 大小不匹配

我正在将我的 Ubuntu EFI 引导系统迁移到更大的硬盘。我使用了命令

dd if=/dev/sdb of=/dev/sda
Run Code Online (Sandbox Code Playgroud)

我在复制之前没有卸载输入文件,输出文件是新的未分区空间。我已成功从新的较大硬盘启动。

  • fdisk -l 报告:

    GPT PMBR 大小不匹配

  • gdisk 报告旧驱动器大小 (200GB) 和

  • PMBR 正在报告新的硬盘驱动器大小 (2TB)。

错误状态gdisk w(write) 命令将起作用,但是 gdisk help 推荐命令xe(relocate backup to end of disk)。

我的目标是移除旧驱动器并使用新驱动器作为主引导盘,并且我的旧 grub 安装完好无损。

我应该继续扩展分区还是应该使用这些命令之一?

migration hard-drive dd gpt

15
推荐指数
1
解决办法
2万
查看次数

从 dd 零填充硬盘恢复文件的可能性

我使用dd对外部硬盘进行了“零填充”(完全擦除),据我所知:人们说你至少应该“零填充”3次以确保数据真的被擦除并且没有人可以恢复任何事物。

所以我决定在磁盘填零后再次扫描磁盘。我期待磁盘仍然有一些随机的二进制文件。事实证明,它一开始只有几个连续的字节。这可能是文件结构类型和其他标题的内容。除此之外,它都是零,没有别的。

因此,如果我们必须从零填充的磁盘中恢复任何文件,...如何?据我所知,即使您将磁盘填零,您仍然应该保留一些数据。...或者dd真的可以完全消灭所有数据吗?

10.10 dd external-hdd data-recovery

14
推荐指数
2
解决办法
3万
查看次数

13
推荐指数
1
解决办法
1198
查看次数

克隆U盘时使用cp和dd有什么区别?

我发现至少有两种方法可以克隆 U 盘:(以/dev/sdb/dev/sdc为目标,以目标为目标)

  1. 克隆与cp

    sudo cp /dev/sdb /dev/sdc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 克隆与dd

    sudo dd if=/dev/sdb of=/dev/sdc bs=4096
    
    Run Code Online (Sandbox Code Playgroud)

这两个命令之间是否有任何显着差异,为什么 dd 优于 cp?

command-line partitioning dd cp

13
推荐指数
1
解决办法
2万
查看次数

如何挂载压缩的磁盘映像?

如果我制作一个磁盘映像并用 gzip/xz/etc压缩它,有没有办法直接安装它而无需先解压缩它?

说我用过

sudo dd if=/dev/sdc1 | gzip -9 > image1.dd.gz
Run Code Online (Sandbox Code Playgroud)

如何在不先创建未压缩副本的情况下安装原始图像?

或者我用过

sudo dd if=/dev/sdc | gzip -9 > wholedisk.dd.gz
Run Code Online (Sandbox Code Playgroud)

并且磁盘有多个分区,这会使其变得更难吗?

使用整个磁盘的未压缩映像,然后使用它的标志kpartx或更新版本losetup-P标志应该为每个分区创建一个循环。

但是有没有办法挂载/丢失/读取压缩图像?

如果它不适用于 gzip/xz,是否有任何压缩方法可以使用?


关于重复 Q 的注意事项

当前建议的副本

不使用压缩,并且不是重复的

mount 不会自行安装压缩图像。

partitioning backup mount dd disk-image

13
推荐指数
2
解决办法
1万
查看次数

conv=f​​sync 在 dd 命令行实用程序中的作用

我正在将 yocto build linux 映像从 Ubuntu 14.04 系统复制到 SD 卡。命令是:

$ sudo dd bs=4M if=filename.rpi-sdimg of=/dev/sdX conv=fsync
Run Code Online (Sandbox Code Playgroud)

这里的什么意思

conv=f​​sync

我从这里变红

在完成之前同步输出数据和元数据。这会强制对输出数据和元数据进行物理写入。

但我不明白这一行。同步、元数据是什么意思,如果我不将它包含在命令中会产生什么影响。

它与只同步输出数据的 fdatasync 有何不同。

dd 14.04 copy

12
推荐指数
1
解决办法
1万
查看次数

fallocate 失败:不支持操作

跑步时,

fallocate -l 10G /path/to/file
Run Code Online (Sandbox Code Playgroud)

我返回以下错误:

fallocate: file: fallocate failed: Operation not supported
Run Code Online (Sandbox Code Playgroud)

使用 dd(if=/dev/zero 或 if=/dev/urandom)创建文件是有效的,但如果我试图创建大文件,大小为数十 GB,则需要几个小时才能完成。

运行 Ubuntu 14.04。使用 ext4 分区,指定文件类型似乎不会改变结果。

在我的 CentOS6 机器上工作正常,只是不是 Ubuntu。

command-line dd 14.04

11
推荐指数
2
解决办法
3万
查看次数

是否可以制作系统的热拷贝?

我想在不关闭系统的情况下备份我的系统。系统克隆也应该能够在其他机器上运行。

我试图在另一个磁盘上“dd”整个系统分区,之后我确保没有启动管理任务。我想我必须告诉 grub 在该磁盘上启动,所以我执行了命令:

grub-install  /dev/sdc1 
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

The file /boot/grub/stage1 not read correctly.
Run Code Online (Sandbox Code Playgroud)

我知道我做的不是很干净,所以你有一个很好的解决方案来达到我的目标或解决grub问题的想法吗?

grub2 backup dd

10
推荐指数
1
解决办法
659
查看次数