标签: pv

使用 cat、dd、pv 或其他程序复制 CD/DVD 是否更好?

背景

我正在将一些数据 CD/DVD 复制到 ISO 文件中,以便以后在驱动器中不需要它们的情况下使用它们。

我在网上寻找程序,我发现了很多:

我不知道是不是所有的人都应该是等价的,虽然我测试了其中的一些(使用md5sum工具)和,至少,dd并且pv等价的。以下是md5sum使用每个过程的驱动器和生成的文件:

dd程序的md5: 71b676875b0194495060b38f35237c3c

光伏程序的md5: f3524d81fdeeef962b01e1d86e6acc04

编辑: …

linux dd cat disk-image pv

49
推荐指数
3
解决办法
4万
查看次数

如何获得平均管道流速

如果myfile随着时间的推移而增加,我可以使用每秒获得行数

tail -f | pv -lr > /dev/null
Run Code Online (Sandbox Code Playgroud)

它提供瞬时速度,而不是平均速度。

我怎样才能得到平均速度(即速度函数v(t)在监控时间内的积分)。

monitoring pipe tail fifo pv

16
推荐指数
1
解决办法
1005
查看次数

如何使用 GPG 显示大文件的进度?

我需要使用gpg. 是否可以像使用pv命令一样显示进度条?

gpg pv

12
推荐指数
1
解决办法
2805
查看次数

在没有 unetbootin 的情况下创建可引导的 Linux 安装 USB

我想从 USB 安装 Scientific Linux。我不知道为什么 unetbootin 不起作用,但我并不好奇:毕竟我是从 Windows 转到 Linux 来查看和学习底层程序的。我将我的 USB 驱动器格式化为 FAT32 并以 root 身份运行此命令:

# pv -tpreb /path/to/the/downloaded/iso | sudo dd of=/path/to/the/USB/device 
Run Code Online (Sandbox Code Playgroud)

虽然它适用于 Live-CD 或网络安装(小于 1GB),但不适用于大约 4GB 的实际安装 DVD。如果有人能帮我解决这个问题,我将不胜感激。

考虑到它适用于较小的 .iso 文件这一事实,我想这与文件系统有关,对吗?我还有什么其他选择?

boot usb scientific-linux system-installation pv

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

pvcreate:无法使用/dev/sda:设备已分区

我目前正在安装 arch linux,当我尝试创建物理卷时,它给了我这个错误。

Can not use /dev/sda: device is partitioned
Run Code Online (Sandbox Code Playgroud)

这个错误是什么?我该如何消除它?

PS:我已经格式化了磁盘mkfs.ext4 /dev/sda

partition fdisk pv

10
推荐指数
2
解决办法
4万
查看次数

使用命令 pv 可以克隆驱动器,如何安装它?

我能够使用以下命令备份驱动器。

pv -EE /dev/sda > disk-image.img
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但现在我无法看到文件,除非我使用这个命令

pv disk-image.img > /dev/sda
Run Code Online (Sandbox Code Playgroud)

当然,这将数据写回磁盘,这不是我想要做的。我的问题是我能做些什么来挂载.img文件本身而不是仅仅写回磁盘?


我试过使用循环挂载,但它似乎抱怨无效的 NTFS。

$ mount -o loop disk-image.img
mount: disk-image.img: can't find in /etc/fstab.
$ mount -o loop disk-image.img /mnt/disk-image/
NTFS signature is missing.
Failed to mount '/dev/loop32': Invalid argument
The device '/dev/loop32' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Run Code Online (Sandbox Code Playgroud)

mount disk-image pv

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

将 pv 与 md5sum 一起使用

我曾经md5sumpv检查是在同一个目录中的文件的4吉布:

md5sum dir/* | pv -s 4g | sort
Run Code Online (Sandbox Code Playgroud)

该命令在大约 28 秒内成功完成,但pv的输出全是错误的。这是在整个过程中显示的那种输出:

219 B 0:00:07 [ 125 B/s ] [>                                ]  0% ETA 1668:01:09:02
Run Code Online (Sandbox Code Playgroud)

没有-s 4g和也是这样| sort。我也尝试过使用不同的文件。

我试过使用pvwithcat并且输出很好,所以问题似乎是由md5sum.

pipe hashsum pv

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

为什么在写入输出后 sed 不立即退出?

我在一个大文件上运行 sed,并使用pv实用程序查看它读取输入和写入输出的速度。尽管 pv 显示 sed 在大约 5 秒内读取输入并写入输出,但 sed 又过了 20-30 秒才退出。为什么是这样?

这是我看到的输出:

pv -cN source input.txt | sed "24629045,24629162d" | pv -cN output > output.txt
   source: 2.34GB 0:00:06 [ 388MB/s] [==========================================================================================================>] 100%            
   output: 2.34GB 0:00:05 [ 401MB/s] [              <=>                                                                                                           ]
Run Code Online (Sandbox Code Playgroud)

sed pv

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

在非分区磁盘中定义物理卷

我已经能够以两种方式定义物理卷 (LVM):

  • 创建一个8e(Linux LVM 类型)分区,然后# pvcreate /dev/sdb1
  • 使用未分区的磁盘直接使用 pvcreate 签名,然后 # pvcreate /dev/sdc<-- 请注意缺少数字,因为没有任何分区。

我的磁盘不是本地的,我使用两种方案:SAN 提供 LUN 和 VMware 提供不同系统中的磁盘。我们正在测试 LUN/vmware 磁盘在线调整大小,并且使用非分区磁盘定义的 PV 一切正常,但是对于分区层,无法使用parted或热调整它们的大小fdisk

我的问题是:8e如果我可以使用原始磁盘来创建物理卷然后在线调整它们的大小,我为什么还要费心使用分区?

linux partition lvm pv

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

如果预先知道其输入的大小,如何跟踪管道中命令的进度?

我想使用pv. 这个操作的输入的大小是预先知道的,但它的输出的大小不是。这迫使我将pv操作放在管道的左侧。

问题是长时间运行的命令会因为缓冲而立即消耗其全部输入。这有点类似于关闭管道中的缓冲问题,但在我的情况下,它是消耗操作缓慢,而不是生成一个,并且在这种情况下,另一个问题的答案似乎都不起作用。

这是一个演示问题的简单示例:

seq 20 | pv -l -s 20 | while read line; do sleep 1; done
  20 0:00:00 [13.8k/s] [=====================================>] 100%
Run Code Online (Sandbox Code Playgroud)

进度条不是每秒更新一次,而是立即跳转到 100% 并在处理输入所需的整个 20 秒内保持在那里。pv如果行被逐行处理,则只能测量进度,但最后一个命令的整个输入似乎被读入缓冲区。

一个稍长一些的示例也演示了未知数量的输出行:

#! /bin/bash
limit=10
seq 20 | \
  pv -l -s 20 | \
  while read num
do
  sleep 1
  if [ $num -gt $limit ]
  then
    echo $num
  fi
done
Run Code Online (Sandbox Code Playgroud)

有关解决方法的任何建议?谢谢!

shell bash pipe pv

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

标签 统计

pv ×10

pipe ×3

disk-image ×2

linux ×2

partition ×2

bash ×1

boot ×1

cat ×1

dd ×1

fdisk ×1

fifo ×1

gpg ×1

hashsum ×1

lvm ×1

monitoring ×1

mount ×1

scientific-linux ×1

sed ×1

shell ×1

system-installation ×1

tail ×1

usb ×1