我只是尝试使用 dd 覆盖快速 ssd。使用我输入的 ubuntu 启动映像:
dd if=/dev/zero of=/dev/sda bs=100M
error writing '/dev/sda': No space left on device
blah blah
256 GB copied, 1195.81 s 214 MB/s
Run Code Online (Sandbox Code Playgroud)
那不是很慢吗?瓶颈在哪里?块大小的选择呢?
在stat 8.13基于 Debian 的 Linux 上——除其他外——提供了以下 FORMAT 指令 ( --format=):
与--file-system( -f)组合:
%s 块大小(用于更快的传输) %S 基本块大小(用于块计数) 问题:究竟是什么意思?
我最好的猜测是%s,%S等于%b(以块为单位显示)和%B(显示块的大小),其中后者用于文件,前两个用于文件系统。那是对的吗?
我使用的是busybox 1.27纯 Linux 系统,因此没有output=progress可用的,没有 busybox 自己的实现,也没有pv它本身。pipe_progresspv
我有两个问题。第一个基于https://www.linux.com/training-tutorials/show-progress-when-using-dd/。它表示,通过向其发送USR1信号dd会“暂停”该过程,并且dd在打印后其当前状态将继续其正在执行的工作。我正在尝试进行一些基准测试,dd因此我希望对dd操作的影响最小。我希望每秒获得当前操作的输出,因为传递的数据dd是波动的,识别传输速率何时下降对我来说很重要。
第一个问题: “dd”每次收到USR1信号时都会“暂停”,这是真的吗?
如果dd每秒暂停一次,那么当传输数十千兆字节时,我将增加操作时间。
第二个问题: 假设第一个问题的答案是“是”,我想知道是否可以在dd不向进程发送任何信号的情况下打印其当前状态,也许是某种重定向STDOUT(如 2>&1)?
我指的是:
# bs with 1Mib so I can have more control on the test.
dd if=/dev/zero of=/dev/null bs=1048576 count=1024
# Printing current operation status.
sudo kill -USR1 $dd_pid
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来备份整个磁盘,以防万一出现问题...
我什至不知道在服务器的一些特殊设备上安装什么,而且每次都不一样。
会cp -a为/目录工作的?
有没有什么程序可以复制硬盘的所有数据?(就像硬盘的图像)。
我知道这至少存在于 Windows 中。
虽然硬盘在 RAID 1 上....
突然,我的分区出现了问题,或者只是一个分区。我有一个默认的 Ubuntu 安装,在金士顿 SSD 上,根文件系统用 LUKS 加密,(我认为使用 AES)。现在我正在尝试从 live cd 挂载分区,但没有运气。
我很害怕造成一些无法挽回的额外伤害。所以我想制作驱动器的精确副本。这意味着所有分区表,LUKS 分区的任何类型的元数据,以及我不知道的任何其他类型的元数据。我想我也希望所有的空块都绝对安全。
我知道dd if=/dev/sda of=/dev/sdb,但我不知道它是否会包含所描述的所有数据。
也许我需要用 指定块大小-b,但我不明白它是如何工作的以及为什么它是必要的(如果是的话)。而且我也不知道如何找到分区的块大小。
请告诉我它是否确实复制了所有数据,如果没有,是否还有其他方法。
我正在尝试将位于同一网络上的 raspberry pi 上的硬盘克隆到我当前使用的计算机的外部硬盘上。但是,我在正确执行命令时遇到了问题。我试过了:
ssh user@hostip "dd if=/dev/sda" | sudo dd of=/dev/sdc
Run Code Online (Sandbox Code Playgroud)
但是提示sudo和ssh连接堆栈在一起。
我一直dd在 Linux 中使用来覆盖外部 USB 硬盘驱动器。
当我使用 512 字节的默认块大小时,使用以下命令:
# dd if=/dev/zero of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)
在整个操作过程中,硬盘驱动器(/dev/sdb)被交替读取和写入,一次大约 1GB。即read 1GB... ... write 1GB... ... read 1GB... ...write 1GB等尽可能多的数据从硬盘读出被写入。
我知道这是因为它显示在我的自定义 Conky 面板 ( diskio_read, diskio_write) 中,我知道它是磁盘 I/O 活动的 100% 可靠指标。
我在另一台计算机上使用不同的外部硬盘驱动器重复了这一点。它通过 USB 2.0 和 USB 3.0 发生。
相比之下,当我做同样的事情,但使用 1MB 的块大小时,使用以下命令:
# dd if=/dev/zero of=/dev/sdb bs=1M
Run Code Online (Sandbox Code Playgroud)
除了开始时有少量读取外,在运行过程中根本不读取硬盘驱动器。
鉴于这种现象发生在我的两台不同的计算机和两个不同的硬盘上,使用标准的 Linux 发行版(Xubuntu 14.04),任何想要的人都应该能够在自己的计算机上复制它。
有人可以解释一下这里发生了什么吗?
我有我的数据硬盘(其他硬盘上可用的最重要数据的部分备份),目前它通过 LVM over LUKS 格式化为 Ext4。我想删除 LUKS 层,但重新格式化和从备份恢复数据太长/没有乐趣。是否有可能/机会在不使用大缓冲区且不损坏数据的情况下用其内容覆盖 LUKS 分区?
我需要确定 ext4 文件系统使用的最后一个扇区,以便我可以将它移动到另一个设备。
文件系统已经缩小(使用resize2fs)并且小于包含它的分区,所以我不是在问如何找到分区中的最后一个扇区。
我已经完成tune2fs -l并确定了
Block count: 48934
First block: 0
Block size: 4096
Run Code Online (Sandbox Code Playgroud)
由此我假设文件系统使用 48934 * 4096 / 512 = 391472 个扇区,并且我可以dd从分区的第一个扇区开始移动那么多扇区(如 所报告的gdisk)。
我不确定该块计数是否包括任何 ext4 开销,或者是否需要考虑额外的大小。我读了这个问题,这意味着还有额外的空间需要考虑。
我试图创建 Ubuntu 17.04 的可启动 USB。首先,我擦除了笔式驱动器中的所有内容,然后开始使用复制sudo dd if=path_to_ubuntu_image of=/dev/rdisk2,但完成该过程大约需要 5 小时。rdisk我阅读了之前关于使用而不是加速它的答案disk,但我最初只使用它。可以使用,bs但我怀疑它会在复制时对可启动映像带来一些变化吗?请帮忙。
Ubuntu 的大小 - 1.63GB
我正在使用最新版本的 macOS High Sierra。
我所遵循的步骤的网页链接 - http://courses.cms.caltech.edu/cs171/materials/pdfs/How_to_Dual-Boot_OSX_and_Ubuntu.pdf
dd ×7
linux ×3
hard-disk ×2
backup ×1
block-device ×1
busybox ×1
ext4 ×1
external-hdd ×1
luks ×1
macintosh ×1
networking ×1
raid1 ×1
stat ×1
ubuntu ×1