On Thu, Mar 18, 2021 at 04:10:51PM +0800, 钱非凡 wrote:
 I'm trying to upload a file to guest os by using libguestfs api.
but a
 partition error occurs during the `virt-copy-in` command. it seems its some
 problems with the `sgdisk` command, but i have no idea how to fix this. is this
 some problems with the host os or the guest os? or maybe is the version of
 libguestfs? btw, my host os is centos 7.6 with libguestfs 1.40.
 
 ```
 $ virt-copy-in -d 138093b9b33345c38e58efa014036bd8 1.txt /root/
 libguestfs: error: inspect_os: sgdisk: Invalid partition data!
 $ cat /etc/redhat-release
 CentOS Linux release 7.6.1810 (Core)
 $ yum list installed | grep libguestfs
 libguestfs.x86_64                     1:1.40.2-10.el7            @base
 ...
 ```
 
 and after turning on LIBGUESTFS_DEBUG and LIBGUESTFS_TRACE flag, i found out
 the error was happening which calling `guestfs_inspect_os()` function. but i
 still dont know how to fix this. here are part of the output:
 
 ```
 ...
 calling: settle
 commandrvf: stdout=n stderr=y flags=0x0
 commandrvf: udevadm --debug settle
 calling: settle
 command: sfdisk '--print-id' '/dev/sdb' '1'
 [    2.400992]  sdb: sdb1 sdb2
 command: sfdisk returned 0
 command: sfdisk: stdout:
 0
 commandrvf: stdout=n stderr=y flags=0x0
 commandrvf: udevadm --debug settle
 calling: settle
 commandrvf: stdout=n stderr=y flags=0x0
 commandrvf: udevadm --debug settle
 calling: settle
 command: fold-stdout-on-stderr sgdisk '/dev/sdb' '-i' '1'
 [    2.427088]  sdb: sdb1 sdb2
 command: sgdisk returned 2
 command: sgdisk: stderr:
 Invalid partition data! 
The error comes from sgdisk running on the guest, so it is a bug in
sgdisk or maybe a problem with the guest filesystem itself.
The closest I can find is this report from a few years ago:
https://listman.redhat.com/archives/libguestfs/2018-May/msg00009.html
What is the guest?  And what version of sgdisk are you using?
You could also try something like:
  $ virt-rescue --ro -d 138093b9b33345c38e58efa014036bd8
<rescue> sgdisk /dev/sdb -i 1 
Rich.
-- 
Richard Jones, Virtualization Group, Red Hat 
http://people.redhat.com/~rjones
Read my programming and virtualization blog: 
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html