标签: dd

如何恢复崩溃的硬盘?

上周,我的 MacBook硬盘崩溃并严重损坏。我用新的驱动器更换了驱动器,并在其上安装了 10.6/Snow Leopard。旧驱动器现在在 USB 外壳中,我真的需要从中恢复数据。

问题是,它不会挂载,当它与 USB 连接时,OSX 甚至没有检测到连接了新驱动器。

我能做什么?

hard-drive data-recovery dd macos

9
推荐指数
3
解决办法
3460
查看次数

“dd”到最后 512 KB 磁盘的速度最快

我有一个 512G 的磁盘,我想清除磁盘末尾的最后 512k 字节。

我通常通过dd if=/dev/zero of=/dev/da0 整个磁盘清除它。

哪种方式做这个操作最快?

unix dd

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

dd 在读写时变慢

user@user-laptop:~$ sudo dd if=sd_backup of=/dev/sdd bs=4M conv=noerror,sync

205520896 bytes (206 MB) copied, 28.564 s, 7.2 MB/s
247463936 bytes (247 MB) copied, 57.1285 s, 4.3 MB/s
260046848 bytes (260 MB) copied, 73.2388 s, 3.6 MB/s
289406976 bytes (289 MB) copied, 104.121 s, 2.8 MB/s
301989888 bytes (302 MB) copied, 119.627 s, 2.5 MB/s
318767104 bytes (319 MB) copied, 134.332 s, 2.4 MB/s
331350016 bytes (331 MB) copied, 149.977 s, 2.2 MB/s
343932928 bytes (344 MB) copied, 164.332 s, 2.1 MB/s
360710144 …
Run Code Online (Sandbox Code Playgroud)

linux dd sdhc ubuntu

8
推荐指数
1
解决办法
4128
查看次数

dd 命令究竟做了什么?

几天前,我很高兴地发现,在没有明确设计的第三方程序的帮助下,将 ISO 映像写入 USB 并不是那么困难。但是促进这一点的命令(或程序) - dd - 让我感到困惑。

根据维基百科,它旨在复制和转换原始数据,但老实说,我发现这个定义非常模棱两可且含糊不清。我知道它可以让您将一个数据转换为另一个数据,但是如果指定的输出文件太小而无法转换为指定的输入文件,会发生什么?

dd if=giant_file of=tiny_file
Run Code Online (Sandbox Code Playgroud)

此外,当我使用映像文件创建可引导 USB 时,USB 获得文件系统类型isofs,但如果我将存档或可执行文件写入驱动器,它会保留其常规文件系统类型。

对 dd 命令真正做什么或它如何在较低级别上工作的任何澄清将不胜感激。谢谢!

linux usb unix filesystems dd

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

如何创建和分区原始磁盘映像?

我需要创建一个用于虚拟机的原始磁盘映像,但我需要在创建文件系统或安装操作系统之前创建分区。

谁能描述一个过程来做到这一点?

partitioning dd loopback fdisk virtual-machine

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

挂载原始 CD-ROM 映像

假设我创建了一个这样的图像:

    ddrescue /dev/disk1 MY_CDROM_IMAGE.img (/dev/disk1 是我的光驱)

如何在 Mac 上安装它?


注意:创建的映像不是 IMG 文件 - 它只是 CDROM 的原始转储。我现在可以使用dd.

mac dd disk-image compact-disc

7
推荐指数
1
解决办法
7774
查看次数

从原始 dd 图像截断 empy 空间

我有一个使用ddUbuntu 实例拍摄的原始磁盘映像。总磁盘大小为300 GB,但仅使用了5.5 GB

有没有办法将原始 dd 图像的大小调整为20 GB,保留所有 5.5 GB 的数据,并且只截断空块?

dd fdisk images resizing

7
推荐指数
1
解决办法
7322
查看次数

dd 在第一次尝试时总是无法写入一个分区;第二次成功

对于机器人项目,我组装了一个 make 目标,它使用dd(实际上dcfldd)将 Raspbian Jessie 图像写入 SD 卡。这样,我可以放心,我的环境可以随时从头开始重现。

制作目标只是

flash:
    sudo dcfldd bs=4M if=$(IMGPATH) of=$(SDX)
    sync
Run Code Online (Sandbox Code Playgroud)

$(SDX)/dev/sdc在哪里,并且意味着前面有一个脚本,该脚本将映像挂载到 /mnt/img,进行一些修改、调用sync,然后卸载它。

这个过程似乎工作正常,除了我总是需要调用 make 目标两次——第一次,如果我正确弹出整个读卡器然后重新插入,图像中的两个分区之一无法安装,而且,如果我尝试从中启动 Raspberry Pi,我会遇到内核恐慌。

在尝试闪存卡(使用 Make 目标或在终端中手动),使用 Ubuntu 的“弹出父驱动器”启动器上下文菜单选项弹出,移除并重新插入读卡器后,引导分区在 Nautilus 中打开,但我得到了下面的对话框,没有主分区。

安装错误

dmesg 的最后一百行左右在这里。可能相关的是

[100640.545190] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Run Code Online (Sandbox Code Playgroud)

[101082.691558] EXT4-fs (sdb2): bad geometry: block count 3894272 exceeds size of device (964096 blocks)
Run Code Online (Sandbox Code Playgroud)

正如第一个建议的那样,我做了sudo fsck /dev/sdb,并得到以下内容。

fsck from util-linux …
Run Code Online (Sandbox Code Playgroud)

linux sd-card dd raspberry-pi

7
推荐指数
1
解决办法
532
查看次数

我在尝试创建可启动的 Linux 分发映像时缺少哪些步骤?

我正在尝试dd为可与硬盘驱动器和闪存介质一起使用的操作系统创建分发映像(通过 Linux 的命令)。我已成功创建映像,但无法正常启动。我将布局以下步骤:

  1. 这将创建一个包含整个图像的空白文件:

    dd if=/dev/zero of=/tmp/test.img bs=512 count=1250000
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将环回设备文件与映像文件关联:

    losetup /dev/loop0 /tmp/test.img
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在我们可以操作之前,parted我们必须定义一个媒体标签类型:

    parted -s /dev/loop0 mklabel msdos
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使图像文件中的第一个分区为 512MB:

    parted -s -a opt /dev/loop0 mkpart primary ext2 '0%' 512MB
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将第一个分区设置为“可引导”:

    parted -s /dev/loop0 set 1 boot on
    
    Run Code Online (Sandbox Code Playgroud)
  6. 在第一个分区上创建一个 Ext2 文件系统:

    mkfs.ext2 -b 1024 /dev/loop0p1
    
    Run Code Online (Sandbox Code Playgroud)
  7. 安装 grub 引导代码的 stage1,同时保留上面创建的分区表:

    dd if=/boot/grub/stage1 of=/dev/loop0 bs=446 count=1
    
    Run Code Online (Sandbox Code Playgroud)
  8. 在媒体的前 512 字节之后安装 grub 引导代码的 stage2(跳过 stage1 和分区表):

    dd if=/boot/grub/stage2 of=/dev/loop0 bs=512 seek=1
    
    Run Code Online (Sandbox Code Playgroud)
  9. 将镜像文件的第一个分区挂载到一个挂载点:

    mount /dev/loop0p1 /mnt/image
    
    Run Code Online (Sandbox Code Playgroud)
  10. 将所有数据复制到分区中并卸载。

  11. dd 映像文件到任何硬盘驱动器或闪存介质。

使用这些步骤,我可以 …

linux bootloader partitioning dd disk-image

6
推荐指数
1
解决办法
168
查看次数

主驱动器上的 dd 命令错误 - 如何恢复数据?

好吧,令人讨厌的愚蠢事情发生了。我想将 Arch Linux ISO 文件复制到我的 U 盘,但很匆忙,不小心将我的主驱动器作为of参数输入。

以下是详细信息:

$ sudo dd bs=4MB if=archlinux-2017.08.01-x86_64.iso of=/dev/nvme1n1
Run Code Online (Sandbox Code Playgroud)

/dev/nvme1n1应该是/dev/sdb

我的主驱动器/dev/nvme1n1包含两个分区:

  • 1 个 512 MB EFI 引导分区
  • 一个 ext4 分区跨越 1 TB 驱动器的其余部分

的文件大小archlinux-2017.08.01-x86_64.iso为 541065216 字节,或516 MB

计算机仍在运行并且似乎工作正常,并且我有运行命令之前lsblkdf -h 之前的输出dd。输出我现在运行命令时的输出完全相同。我假设因为数据被缓存:

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:5    0 931.5G  0 disk 
??nvme1n1p1 259:6    0   512M  0 part /boot
??nvme1n1p2 259:7 …
Run Code Online (Sandbox Code Playgroud)

linux data-recovery partitioning dd

6
推荐指数
1
解决办法
1482
查看次数