我希望在 HP-UX 服务器的 2 lv 之间传输数据。我有几个这样的传输要做,其中一些主要是二进制的(Oracle 表空间...),而另一些则是更多的文本文件(日志...)。卷的已用数据大小介于 100Gb 和 1Tb 之间。此外,我将在其中一些分区上将块大小从 1K 更改为 8K...
我正在寻找的东西:
现在,我已经考虑过 dd、cp 和 rsync,但我不确定使用它们的最佳方法以及使用它们的最佳方法......
我在服务器 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 分钟,仍然在运行,我怎么知道它真的在传输数据/等等?
我最近做了一个
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)
我该如何解决?
我想将分区移动到新驱动器。旧驱动器的扇区大小为 512 字节,而新驱动器的扇区大小为 4096 字节。我尝试对整个磁盘进行 dd 操作,但失败了,因为旧驱动器上的分区未与 4K 边界对齐。因此,我使用 fdisk 在新驱动器上从头开始创建一个分区,然后使用 dd 在磁盘之间复制该分区。最后,我使用 resize2fs 扩展了新驱动器上的文件系统。这似乎有效,因为我可以挂载新分区(到目前为止是只读的)并查看文件,fsck 说它是干净的。
但我仍然怀疑这样做是否安全。例如,FS 是否以某种方式关心扇区大小,这样做会破坏事物,还是被 VFS 层或 HD 本身屏蔽?
我们公司的笔记本电脑已经使用了 2 年多,它们都变得很慢,其中许多最近的硬盘随机死机。我注意到我的许多同事在他们的扩展坞上使用倾斜的姿势。我想这对于磁盘性能和耐用性来说并不理想。所以我想用SSD替换所有磁盘。
我以前克隆(引导)磁盘,主要是在服务器环境中,曾经在家里的笔记本电脑(运行 Linux)中使用 dd:
dd if=/dev/sda of=/dev/sdb bs=32M
Run Code Online (Sandbox Code Playgroud)
但是,我从未对使用 Bitlocker 加密的 NTFS 驱动器执行过此操作。这会起作用吗?我不想购买一堆 SSD 只是为了发现我的计划有缺陷。
我已经使用 dd 通过 ssh 将 LVM 分区“克隆”到远程服务器(紧急备份...)。
在该远程服务器上,是否可以将 dd 克隆文件“转换”回 LVM 分区?
谢谢。
PS:我可以访问克隆文件上的文件系统,但我不想要包含 rsync 或类似内容的解决方案。
是否可以将一台服务器DD到另一台服务器?也许通过 SSH?我环顾四周,看到了 DD 使用 SSH 从本地到服务器的示例,反之亦然,但是是否可以从服务器到服务器做到这一点?
另一个相关问题是 Digital Ocean 使用什么软件来创建其服务器的快照以便稍后恢复?
谢谢,
我需要将 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)
能行吗?你能告诉我其他解决方案吗?
我有一个巨大的 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 工具。
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)