我是个白痴,我正在将图像写入 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 移动到其中,如果需要,我可以使用它来将恢复的文件传输到。
将
dd if=/dev/zero of=somepartition bs=512
Run Code Online (Sandbox Code Playgroud)
还擦除分区后somepartition
或停止在结束somepartition
?
我正在将我的 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 安装完好无损。
我应该继续扩展分区还是应该使用这些命令之一?
我使用dd对外部硬盘进行了“零填充”(完全擦除),据我所知:人们说你至少应该“零填充”3次以确保数据真的被擦除并且没有人可以恢复任何事物。
所以我决定在磁盘填零后再次扫描磁盘。我期待磁盘仍然有一些随机的二进制文件。事实证明,它一开始只有几个连续的字节。这可能是文件结构类型和其他标题的内容。除此之外,它都是零,没有别的。
因此,如果我们必须从零填充的磁盘中恢复任何文件,...如何?据我所知,即使您将磁盘填零,您仍然应该保留一些数据。...或者dd真的可以完全消灭所有数据吗?
我发现至少有两种方法可以克隆 U 盘:(以/dev/sdb
源/dev/sdc
为目标,以目标为目标)
克隆与cp
:
sudo cp /dev/sdb /dev/sdc
Run Code Online (Sandbox Code Playgroud)克隆与dd
:
sudo dd if=/dev/sdb of=/dev/sdc bs=4096
Run Code Online (Sandbox Code Playgroud)这两个命令之间是否有任何显着差异,为什么 dd 优于 cp?
如果我制作一个磁盘映像并用 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,是否有任何压缩方法可以使用?
当前建议的副本
不使用压缩,并且不是重复的。
mount
不会自行安装压缩图像。
我正在将 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=fsync
我从这里变红
在完成之前同步输出数据和元数据。这会强制对输出数据和元数据进行物理写入。
但我不明白这一行。同步、元数据是什么意思,如果我不将它包含在命令中会产生什么影响。
它与只同步输出数据的 fdatasync 有何不同。
跑步时,
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。
我想在不关闭系统的情况下备份我的系统。系统克隆也应该能够在其他机器上运行。
我试图在另一个磁盘上“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问题的想法吗?
dd ×10
14.04 ×2
backup ×2
command-line ×2
hard-drive ×2
partitioning ×2
10.10 ×1
copy ×1
cp ×1
data-loss ×1
disk-image ×1
external-hdd ×1
files ×1
gpt ×1
grub2 ×1
migration ×1
mount ×1