标签: dd

在分区之间复制大量数据的最佳方法

我希望在 HP-UX 服务器的 2 lv 之间传输数据。我有几个这样的传输要做,其中一些主要是二进制的(Oracle 表空间...),而另一些则是更多的文本文件(日志...)。卷的已用数据大小介于 100Gb 和 1Tb 之间。此外,我将在其中一些分区上将块大小从 1K 更改为 8K...

我正在寻找的东西:

  • 保证数据完整性
  • 最快的数据传输速度
  • 保留文件所有权和权限

现在,我已经考虑过 dd、cp 和 rsync,但我不确定使用它们的最佳方法以及使用它们的最佳方法......

partition copy cp dd hp-ux

6
推荐指数
2
解决办法
7246
查看次数

我怎么知道 netcat 和 dd 是否正常工作?

我在服务器 A 上运行(来源):

dd bs=16M if=/dev/sda|bzip2 -c|nc serverB.example.net 19000
Run Code Online (Sandbox Code Playgroud)

在服务器 B(目的地)上:

nc -l -p 19000|bzip2 -d|dd bs=16M of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)

我需要在某处看到一些进展吗?(服务器的 A /dev/sda 为 50GB)

我已经等了 20 分钟,仍然在运行,我怎么知道它真的在传输数据/等等?

linux dd netcat

6
推荐指数
2
解决办法
4306
查看次数

在 Mac OSX 10.7 上挂载使用“dd”构建的 linux 映像

我最近做了一个

ssh root@myserver "dd if=/dev/xvda " | dd of=/<localpath>/myimage.img
Run Code Online (Sandbox Code Playgroud)

按照我在 linode 上的 VPS 服务器文档的指示。我之前在另一个 linux 系统上做过这个,并通过这样做完美地安装了它

sudo mount -o loop myimage.img mountdirectory
Run Code Online (Sandbox Code Playgroud)

但是在我的 mac osx 10.7 上,我收到以下错误。

mount: You must specify a filesystem type with -t.
Run Code Online (Sandbox Code Playgroud)

我试过 -t ext, -t ext3, -t ext4 但都失败了,出现这样的错误

mount: exec /System/Library/Filesystems/ext4.fs/Contents/Resources/mount_ext4 for /<mount directory>: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

filesystems migration dd mac-osx disk-image

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

在不同扇区大小的磁盘上使用 dd

我想将分区移动到新驱动器。旧驱动器的扇区大小为 512 字节,而新驱动器的扇区大小为 4096 字节。我尝试对整个磁盘进行 dd 操作,但失败了,因为旧驱动器上的分区未与 4K 边界对齐。因此,我使用 fdisk 在新驱动器上从头开始创建一个分区,然后使用 dd 在磁盘之间复制该分区。最后,我使用 resize2fs 扩展了新驱动器上的文件系统。这似乎有效,因为我可以挂载新分区(到目前为止是只读的)并查看文件,fsck 说它是干净的。

但我仍然怀疑这样做是否安全。例如,FS 是否以某种方式关心扇区大小,这样做会破坏事物,还是被 VFS 层或 HD 本身屏蔽?

dd

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

克隆一个 bitlocker 加密磁盘

我们公司的笔记本电脑已经使用了 2 年多,它们都变得很慢,其中许多最近的硬盘随机死机。我注意到我的许多同事在他们的扩展坞上使用倾斜的姿势。我想这对于磁盘性能和耐用性来说并不理想。所以我想用SSD替换所有磁盘。

我以前克隆(引导)磁盘,主要是在服务器环境中,曾经在家里的笔记本电脑(运行 Linux)中使用 dd:

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

但是,我从未对使用 Bitlocker 加密的 NTFS 驱动器执行过此操作。这会起作用吗?我不想购买一堆 SSD 只是为了发现我的计划有缺陷。

bitlocker dd

6
推荐指数
2
解决办法
6819
查看次数

LVM -&gt; dd -&gt; LVM?

我已经使用 dd 通过 ssh 将 LVM 分区“克隆”到远程服务器(紧急备份...)。

在该远程服务器上,是否可以将 dd 克隆文件“转换”回 LVM 分区?

谢谢。

PS:我可以访问克隆文件上的文件系统,但我不想要包含 rsync 或类似内容的解决方案。

lvm dd

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

通过 SSH 从服务器到服务器的 DD

是否可以将一台服务器DD到另一台服务器?也许通过 SSH?我环顾四周,看到了 DD 使用 SSH 从本地到服务器的示例,反之亦然,但是是否可以从服务器到服务器做到这一点?

另一个相关问题是 Digital Ocean 使用什么软件来创建其服务器的快照以便稍后恢复?

谢谢,

ssh dd

5
推荐指数
1
解决办法
6228
查看次数

克隆 LVM 分区

我需要将 CentOS 安装从使用 LVM 分区的 1TB 磁盘克隆到几台相同的计算机。磁盘大部分是空的,因为只安装和配置了操作系统和一些软件。

如果没有 LVM,我会复制整个分区表,然后使用 partclone 逐个克隆分区:

sfdisk -d /dev/sda | sed -e 's/sda/sdb/' | sfdisk /dev/sdb
partclone.ext4 -c -s /dev/sda# -o - | partclone.ext4 -r -s - -o /dev/sdb#
Run Code Online (Sandbox Code Playgroud)

不过我认为它不适用于 LVM。

当然,我可以使用dd克隆整个磁盘:

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

但与partclone相比需要太多时间。

有没有办法更快地克隆 LVM 分区?我认为一种可能的解决方案是使用 dd 将 LVM 分区克隆到另一个磁盘中的常规分区,然后使用 partclone 将新磁盘克隆到其他计算机。但我不知道这样的事情是否会起作用:

dd if=/dev/mapper/vg_node07-lv_root of=/dev/sdb1
Run Code Online (Sandbox Code Playgroud)

能行吗?你能告诉我其他解决方案吗?

partition hard-drive cloning lvm dd

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

从大文件开头删除文本的最佳方法

我有一个巨大的 MySQL 备份文件(来自 mysqldump),其中的表按字母顺序排列。我的恢复失败,我想从备份文件中的下一个表开始。(我已经纠正了这个问题,这实际上并不是一个关于 MySQL 恢复等的问题。)

我想做的是获取我的备份文件,例如backup.sql并修剪文件的开头,直到看到这一行:

-- Table structure for `mytable`
Run Code Online (Sandbox Code Playgroud)

然后之后的所有内容都将最终出现在我的结果文件中,例如backup-secondhalf.sql. 由于文件是 bzip2 压缩的,这有点复杂,但这应该不是什么大问题。

我想我可以这样做:

$ bunzip2 -c backup.sql.bz2 | grep --text --byte-offset --only-matching -e '--Table structure for table `mytable`' -m 1
Run Code Online (Sandbox Code Playgroud)

这将为我提供文件中我想要修剪的字节偏移。然后:

$ bunzip2 -c backup.sql.bz2 | dd skip=[number from above] | bzip2 -c > backup-secondhalf.sql.bz2
Run Code Online (Sandbox Code Playgroud)

不幸的是,这需要我在文件上运行 Bunzip2 两次并读取所有这些字节两次。

有没有办法一次性完成这一切?

我不确定我的 sed-fu 是否足够强大来执行“删除正则表达式之前的所有行,然后让文件的其余部分通过”表达式。

这是在 Debian Linux 上,所以我有可用的 GNU 工具。

text grep dd sed

5
推荐指数
2
解决办法
843
查看次数

从损坏的 SSD 克隆数据

SSD进入只读模式,因此您需要将分区移动到工作SSD,但我遇到了LVM大小不同的事实:

#lvm pvscan

PV /dev/sdc3 VG pve lvm2 [<111.29 GiB / 13.87 GiB 可用]

PV /dev/sdb3 VG pve lvm2 [<118.74 GiB / 14.75 GiB 可用]

由于数量差异,将无法通过DD转账。

sudo dd if=/dev/sdb3 of=/dev/sdc3 status=进度

还有哪些其他方法呢?也许有可以从 BIOS 下克隆分区的软件?

UPD:两个 SSD 均通过 NVME-usb 适配器连接。我正在 iODD-2531 上使用 live linux。然后我通过 ssh 连接到系统。

从 128 GB 驱动器复制到 120 GB 驱动器。如果第一个驱动器没有写保护,我可以尝试减小分区的大小,然后使用 DD 进行复制。

更新:

我连接了一个 500GB 的驱动器进行测试,并开始使用 DD 进行复制。结果我得到一个错误:

ubuntu@ubuntu:~$ sudo dd if=/dev/sdd of=/dev/sdc status=progress
456839680 bytes (457 MB, 436 MiB) copied, 53 s, 8.6 MB/s
459821568 bytes (460 …
Run Code Online (Sandbox Code Playgroud)

lvm ssd dd

5
推荐指数
2
解决办法
2136
查看次数

标签 统计

dd ×10

lvm ×3

partition ×2

bitlocker ×1

cloning ×1

copy ×1

cp ×1

disk-image ×1

filesystems ×1

grep ×1

hard-drive ×1

hp-ux ×1

linux ×1

mac-osx ×1

migration ×1

netcat ×1

sed ×1

ssd ×1

ssh ×1

text ×1