如何在Mac OS上使用PipeViewer(pv)与dd

时间:2014-11-12 04:11:14

标签: macos ubuntu dd

我正在尝试使用命令sudo dd if=~/Documents/targetUbuntu.img of=/dev/rdisk1 bs=1m将.img的Ubuntu 14.04.1复制到我的可启动usb,但这需要很长时间才能看到进度。所以我正在尝试使用此命令sudo dd if=~/Documents/targetUbuntu.img | pv | dd of=/dev/rdisk1 bs=1m使用pv,但我收到此错误:dd: /dev/rdisk1: Permission denied。如果我在第一个场景中做了ctrl-C,它花了太长时间告诉我它在X秒内复制了超过X个字节的数量而且就是这样。当我尝试启动USB时,它说“isolinux.iso丢失或损坏”。所以我想确保文件正在正确复制,我想通过使用PV来检查进度,但我一直收到该错误。任何解决方案?

2 个答案:

答案 0 :(得分:3)

将sudo添加到第二个“dd”命令中。

while(next_list_pointer != NULL || index != 0){
    list_pointer = list_pointer->next;
    next_list_pointer = list_pointer->next;
}

if(next_list_pointer == NULL){
   printf("Invalid index given. Nothing deleted.\n");
   //Do not delete otherwise an error will be given
   return list_head;
} else {
   //Valid index was given 
   list_pointer->next = next_list_pointer->next;
   free(next_list_pointer);
   return list_head;
}

您还需要为pv命令提供“size”(将123456替换为文件大小。)

dd if=~/Documents/targetUbuntu.img | pv | sudo dd of=/dev/rdisk1 bs=1m

答案 1 :(得分:2)

我怀疑它是因为sudo仅用于管道中的第一个命令,在那里您使用dd来读取图像文件。 See this answer over on the unix SE

或者您可以尝试以下内容: sudo "pv -tpreb myubuntu.img | dd of=/dev/sdc

per post by Greg Kroah-Hartman on g+