centos7 nbd 挂在qcow2或qcow,raw,虚机镜像,virsh,virt,使用qemu-nbd挂载qcow2镜像文件

2023-05-16

基本原理

nbd(网络块设备: Network Block Device),利用qemu-nbd将qemu虚拟机镜像挂载到Linux上。
  展开来讲,nbd可以将一个远程主机的磁盘空间,当作一个块设备来使用,就像一块硬盘一样。使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上。
  NBD与NFS有所不同:NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式;而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。
  NBD是一个内核模块,大部分Linux发行版都已包含它。
  在centos中, 编译成模块NBD, 保存在 /lib/modules/$version/kernel/driver/block/
  远程服务器是一段轻量级的守护进程代码,它提供对远程设备的访问,而且该守护进程并不需要运行在linux平台之上。本地操作系统必须是linux,而且要支持Linux内核NBD驱动,并且能够运行本地客户端进程。

图1.NBD在本地客户端代表远程资源

文件系统能被挂载到NBD上(上图),而且NBD设备也能够用来组成冗余磁盘阵列(RAID)。在本地Linux上挂载一个EXT2文件系统到NBD,其传输率要比在同样的远程机器上挂载一个NFS快。

操作步骤

1.加载NBD驱动

某些版本的 Linux 不加 max_part 参数会导致没有设备节点 /dev/nbd0p{1,2,3,4…} 等。用 kpartx 也不行。

查看有没有加载nbd模块 sudo lsmod |grep nbd

加载nbd模块 sudo modprobe nbd max_part=16

备注信息:查看Linux 模块信息(modinfo),例如查看nbd模块的参数【执行命令modinfo nbd】 。 加载后,在/dev/目录下,根据参数创建nbdxx块设备文件。

2. 连接 qemu-nbd

qemu-nbd -c nbd设备路径 虚拟机镜像路径 [$ sudo qemu-nbd -c /dev/nbd0 centos.qcow2]
这里注意查看分区: sudo fdisk -l nbd设备[sudo fdisk -l /dev/nbd0],可能虚拟机不止一个分区(一般还会有一个boot分区)

3.挂载

sudo mount nbd分区 挂载路径 [$ sudo mount /dev/nbd0p1 /mnt/test1 ]

4.解挂

sudo qemu-nbd -d nbd分区[$ sudo qemu-nbd -d /dev/nbd0p1]

虚机文件系统为LVM实例

1.加载驱动

#查看加载的nbd模块
lsmod |grep nbd
#加载nbd模块
modprobe nbd max_part=16

2.连接qemu-nbd

云课堂中,从日志查看镜像路径 vi /var/log/qemu/vmmagent.log

#连接命令qemu-nbd -f qcow2 -c /dev/your/nbddev /image/path
qemu-nbd -f qcow2 -c /dev/nbd9 /opt/lessons/images/local_img.qcow2
#更新lvm分区    
 

目的更新 这样之后的lv pv 就可以看到数据了
[root@git qcow2]# pvscan --cache
  pvscan[4100284] PV /dev/sda2 online.
  pvscan[4100284] PV /dev/nbd0p2 online.
  pvscan[4100284] PV /dev/sdb online.
  pvscan[4100284] PV /dev/sdc1 online.
[root@git qcow2]# lvscan 
  ACTIVE            '/dev/vg500/lv500' [999.99 GiB] inherit
  ACTIVE            '/dev/centos/swap' [<3.88 GiB] inherit
  ACTIVE            '/dev/centos/home' [<45.12 GiB] inherit
  ACTIVE            '/dev/centos/root' [50.00 GiB] inherit
  ACTIVE            '/dev/cl/root' [<91.10 GiB] inherit
  ACTIVE            '/dev/cl/swap' [7.89 GiB] inherit
[root@git qcow2]# vgscan 
  Found volume group "vg500" using metadata type lvm2
  Found volume group "centos" using metadata type lvm2
  Found volume group "cl" using metadata type lvm2

[root@git qcow2]# vgchange -a y
  1 logical volume(s) in volume group "vg500" now active
  3 logical volume(s) in volume group "centos" now active
  2 logical volume(s) in volume group "cl" now active


#查看新增文件系统结构

[root@git qcow2]# lsblk -f
NAME            FSTYPE      LABEL                      UUID                                   MOUNTPOINT
sda                                                                                           
├─sda1          ext4                                   87145844-8dd1-4316-8389-2cc035e406ef   /boot
└─sda2          LVM2_member                            KfNUVk-UyRL-IewQ-w1oa-LT8d-l7Fa-pg3J54 
  ├─cl-root     xfs                                    8d0db36b-b9ef-4ca9-92e1-9c8c2f17c4ac   /
  └─cl-swap     swap                                   4c5b215c-33c1-47bc-9ebc-04627cf1116f   [SWAP]
sdb             LVM2_member                            akE5ZB-G2Py-GjfU-8DEU-QEFM-ElW4-On8PKP 
└─vg500-lv500   xfs                                    1a213e4a-90ce-4d04-940d-bf059f2b92dd   /service
sdc                                                                                           
└─sdc1          LVM2_member                            Uq6lAF-nIRc-joym-byQk-KHeJ-dNiA-gw7oW9 
  └─vg500-lv500 xfs                                    1a213e4a-90ce-4d04-940d-bf059f2b92dd   /service
sr0             iso9660     CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00                 
nbd0                                                                                          
├─nbd0p1        xfs                                    2785a74c-1893-47c4-adde-59a746f71c24   /service/qcow2/boot
└─nbd0p2        LVM2_member                            XKIwmd-DUL5-BsSQ-dH1o-DDJh-PFhg-zF8aGG 
  ├─centos-swap swap                                   db9cfc96-3893-4e27-a777-5b33f73ba5ff   
  ├─centos-home xfs                                    50ffc57a-0986-4fd5-9ca2-b2869fe60aad   
  └─centos-root xfs                                    4cb93a60-5ff5-4ea0-bf1c-dbcc90d6acbd  

        

3.挂载lvm分区

#挂载分区mount /dev/vgname/lvname /your/mount/point
[root@git qcow2]# mount /dev/centos/home sys/home/
[root@git qcow2]# mount /dev/centos/root sys/root

4.卸载盘符

#取消挂载
umount sys/home/

umount sys/root
vgchange -an
#断开NBD连接qemu-nbd -d /dev/your/nbddev
qemu-nbd -d /dev/nbd9
pvscan --cache

虚机文件系统为非LVM

#连接镜像
qemu-nbd -f qcow2 -c /dev/your/nbddev /image/path
#查看新增文件系统结构
lsblk -f
#挂载分区
mount /dev/[yournbddev][pn] /your/mount/point # 其中pn代表你要挂载的时镜像里的分区n
#卸载分区
umount /your/mount/point
#断开nbd连接
qemu-nbd -d /dev/your/nbddev

虚机文件系统为NTFS

#连接镜像
qemu-nbd -f qcow2 -c /dev/your/nbddev /image/path
lsblk -f #查看新增文件系统结构

#挂载分区
mount -t ntfs-3g /dev/[yournbddev][pn] /your/mount/point # 其中pn代表你要挂载的时镜像里的分区n

#卸载分区
umount /your/mount/point

#断开nbd连接
qemu-nbd -d /dev/your/nbddev

注意

  1. 一般如果虚机在运行中突然断电关机(比如直接杀死qemu进程或者用virsh destroy命令关闭),此时虚机文件系统可能损坏,这时候直接mount一般会出错,建议用-o ro,norecovery选项挂载
  2. 在卸载过程中需要考虑是否有进程正在占用文件,一般用fuser -k
  3. 注意mount和umount命令的用法

挂载qcow2文件,qcow2里边还有个lvm
linux nbd & qemu-nbd
QEMU-NBD
通过qemu-nbd方式挂载qcow2镜像格式
基于LVM和NBD实现网络远程LVM镜像方法
How to Mount Guest Qcow2 Virtual disk Image containing LVM on KVM Host Machine

[root@localhost linux-3.10.63]# cat ../../../readme 
https://blog.51cto.com/mshxuyi/5857760
https://blog.csdn.net/weixin_42097108/article/details/111414501   错误解决
1、nbd 模块未安装 

登录后复制 
[root@localhost ~]# modprobe nbd
modprobe: FATAL: Module nbd not found.

2、查看 linux 版本

登录后复制 
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)   #查看系统版本

[root@localhost ~]# uname -r         #查看linux的内核信息
3.10.0-957.el7.x86_64

3、安装相关包

yum install kernel-devel kernel-headers elfutils-libelf-devel gcc+ gcc-c++

4、下载内核包

登录后复制 
http://vault.centos.org/7.6.1810/os/Source/SPackages/kernel-3.10.0-957.el7.src.rpm

#根据自己的系统版本去下载
#7.6.1810  为redhat-release 系统版本
#3.10.0-957.el7  为uname -r  内核信息


5、编译

登录后复制 
rpm -ivh kernel-3.10.0-957.el7.src.rpm

cd rpmbuild/SOURCES/

#解压 -C 指定目录 /usr/src/kernels
tar jxvf linux-3.10.0-957.el7.tar.xz -C /usr/src/kernels/

#解压后生成两个文件
ll /usr/src/kernels/
drwxr-xr-x. 22 root root 4096 9月   6 08:07 3.10.0-957.27.2.el7.x86_64
drwxrwxr-x. 24 root root 4096 9月   6 08:17 linux-3.10.0-957.el7

编译

登录后复制 
cd /usr/src/kernels/linux-3.10.0-957.el7

#删除所有编译生成文件,内核配置文件
make mrproper

cp /usr/src/kernels/3.10.0-957.27.2.el7.x86_64/Module.symvers ./

cp /boot/config-3.10.0-957.el7.x86_64 ./.config

#备份当前.config文件为.config.old
make oldconfig

make prepare

make scripts

6、编译 

登录后复制 
make CONFIG_BLK_DEV_NBD=m M=drivers/block

错误: 

登录后复制 
drivers/block/nbd.c: 在函数‘__nbd_ioctl’中:
drivers/block/nbd.c:619:19: 错误:‘REQ_TYPE_SPECIAL’未声明(在此函数内第一次使用)
   sreq.cmd_type = REQ_TYPE_SPECIAL;
                   ^
drivers/block/nbd.c:619:19: 附注:每个未声明的标识符在其出现的函数内只报告一次
make[1]: *** [drivers/block/nbd.o] 错误 1
make: *** [_module_drivers/block] 错误 2

解决:

vi drivers/block/nbd.c

//sreq.cmd_type = REQ_TYPE_SPECIAL;
sreq.cmd_type = 7;  #修改为7

#重新执行一次
make CONFIG_BLK_DEV_NBD=m M=drivers/block

 7、复制文件

cp drivers/block/nbd.ko /lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/block/

depmod -a
8、查看模块

登录后复制 
[root@localhost linux-3.10.0-957.el7]# modinfo nbd
filename:       /lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/block/nbd.ko
license:        GPL
description:    Network Block Device
retpoline:      Y
rhelversion:    7.6
srcversion:     EDE909A294AC5FE08E81957
depends:        
vermagic:       3.10.0 SMP mod_unload modversions 
parm:           nbds_max:number of network block devices to initialize (default: 16) (int)
parm:           max_part:number of partitions per device (default: 0) (int)
parm:           debugflags:flags for controlling debug output (int)
 

编译内核出现的问题解决办法

1.cc1: error: code model kernel does not support PIC mode

在这里插入图片描述

 2
include/linux/compiler-gcc.h:106:1: fatal error: linux/compiler-gcc7.h: 没有那个文件或目录
直接将gcc4重命名为gcc7
mv include/linux/compiler-gcc4.h include/linux/compiler-gcc7.h
 

3.li@li-vir:~/dq/drivers/hello3$ insmod hello.ko
insmod: ERROR: could not insert module hello.ko: Operation not permitted

4.

insmod: ERROR: could not insert module hello.ko: Invalid module format

这里是引用
在这里插入图片描述
版本不对,
使用uname -r查看一下
在这里插入图片描述
make时要确保一致

方法1 挂在qcow2

1. 加载 nbd 驱动
某些版本的 linux 不加 max_part 参数会导致没有没有设备节点 /dev/nbd0p{1,2,3,4…} 等. 用 kpartx 也不行.

$ sudo modprobe nbd max_part=8
备注信息:查看Linux 模块信息(modinfo),例如查看nbd模块的参数

$ modinfo nbd
filename:       /lib/modules/3.14.12/kernel/drivers/block/nbd.ko
license:        GPL
description:    Network Block Device
srcversion:     910DE7DFCE8A0AE76D3D428
depends:        
intree:         Y
vermagic:       3.14.12 SMP mod_unload modversions 
parm:           nbds_max:number of network block devices to initialize (default: 16) (int)
parm:           max_part:number of partitions per device (default: 0) (int)
parm:           debugflags:flags for controlling debug output (int)

2.连接 qemu-nbd

$ sudo qemu-nbd -c /dev/nbd0 centos.qcow2

查看分区:

$ sudo fdisk -l /dev/nbd0

Disk /dev/nbd0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d1fd

     Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1   *        2048     1026047      512000   83  Linux
/dev/nbd0p2         1026048    20971519     9972736   8e  Linux LVM

vgdisplay

$ sudo lvdisplay

 --- Logical volume ---
  LV Name                /dev/VolGroup/lv_root
  VG Name                VolGroup
  LV UUID                v60jyE-1lDm-7dMW-hkVf-YWBH-OKXI-ySHDkb
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                8.51 GiB
  Current LE             2178
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
   
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_swap
  VG Name                VolGroup
  LV UUID                b1BctN-vPtc-8n6F-tokb-75pN-w34N-HXG1cB
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
 

Active VolGroup

$ sudo vgchange -a y VolGroup

mount vg

$ sudo mount /dev/VolGroup/lv_root /mnt/test2

3.挂载

$ sudo mount /dev/nbd0p1 /mnt/test1

4.umount disconnect

$ sudo mount /dev/nbd0p1 /mnt/test1
$ sudo qemu-nbd -d /dev/nbd0p1

 方法2 挂在qcow2

方法二:libguestfs

1.安装libguestfs工具

$ sudo apt install libguestfs-tools 

2.挂载磁盘镜像中的分区到挂载点

语法:guestmount -a 镜像文件 -m 镜像文件内包含的某个分区 [选项] 挂载点

$ sudo mkdir /mnt/a                                                  #创建挂载点目录    
sudo guestmount -a /XXX/XXX/imgname.qcow2  -m /dev/sda1 /mnt/a      #尝试挂载/dev/sda分区,将提示有两个有效的分区/dev/sda1(/boot)和/dev/sda2(/root),
libguestfs: error: mount_options: mount exited with status 32: mount: /sysroot: wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error.
guestmount: ‘/dev/sda’ could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount:     /dev/sda1 (vfat)
guestmount:     /dev/sda2 (ext4)    
$ sudo guestmount -a /XXX/XXX/imgname.qcow2  -m /dev/sda2 /mnt/a        #将磁盘镜像中包含的/dev/sda2分区挂载到/mnt/a目录
sudo ls /mnt/a
bin  boot  dev    etc  home  lib    lib64  media  mnt  opt    proc  root  run  sbin  srv  sys  tmp  usr  var
 

也可以通过-i参数替代-m来实现自动挂载有效分区

$ sudo mkdir /mnt/a                                                      #创建挂载点目录    
$ sudo guestmount -a /XXX/XXX/imgname.qcow2  -i /mnt/a                    #将自动将磁盘镜像中最有效的/dev/sda2分区挂载到/mnt/a目录
sudo ls /mnt/a
bin  boot  dev    etc  home  lib    lib64  media  mnt  opt    proc  root  run  sbin  srv  sys  tmp  usr  var
 

3.取消挂载

$ sudo guestunmount /mnt/a
  • 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7 nbd 挂在qcow2或qcow,raw,虚机镜像,virsh,virt,使用qemu-nbd挂载qcow2镜像文件 的相关文章

  • centos mail报错:550 Mailbox not found or access denied

    运行了几年的发邮件脚本 最近体发邮件都发生了报错 无法发出 smtp server 550 Mailbox not found or access denied 报错信息提示邮箱找不到 但是接收人邮箱确定没有错误 因为一直正常运行 网上说5
  • Redis的embstr与raw编码方式不再以39字节为界了!

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net XiyouLinux Kangyijie article details 78045385 引言 从 中国软件杯 回来之后 一直对项目中没用到Red
  • Android项目中音频文件的存储位置

    1 Android工程中声音文件的存储位置在资源文件的raw文件夹下 2 如果在res文件夹下没有raw文件夹 新建一个即可 3 在音频文件数量多的情况下 将音频文件存放在assets目录 可避免文件的重复编译
  • samba搭建(基于centos7)

    samba 基础 组管理 文件权限管理 基本命令 安装及配置 samba linux连接 samba 配置详解 global 配置特定目录共享 shell 自动创建用户 基础 SMB Server Message Block 服务器消息块
  • centos7下boot空间不足解决办法

    root localhost admin rpm qa grep kernel 看下有哪些 然后用yum remove kernel devel 3 10 0 327 el7 x86 64 删除
  • centos7 linux定时任务详解

    前言 工作中需要开启一个定时任务 每天晚上2点进行爬虫代码的运行 这不得不去学习一下linux 下的定时任务crontab crontab yum install crontabs 说明 sbin service crond start 启
  • KVM热迁移

    KVM热迁移 介绍 KVM热迁移的前提是拥有共享存储 以下通过NFS实现KVM热迁移 迁移过程 将一处于运行状态的KVM虚拟机从节点kvm 01迁移到kvm 02后继续运行 准备 主机准备 hostname IP地址 系统 配置 kvm 0
  • centos libgeos 存储库丢失

    在 centos 7 3 上 最小尝试安装 shapely 或 geopandas 需要访问https github com libgeos libgeoslibgeos 尝试通过安装这个sudo yum install libgeos d
  • 配置错误:未满足包要求(sqlite3 > 3.7.4)

    我正在尝试按照以下说明在 Centos 7 上安装 php https www php net manual en install unix nginx php 我的nginx版本 nginx 1 19 0 我从下载了 php 7 4 6
  • 使用 crontab/cron 安排 python 3.6 脚本

    我只是在我的 Centos 开发服务器上设置一个 crontab job 在我的 crontab 中 我有以下内容 忽略时间设置 这是在 UTC 服务器时间 15 32 左右添加的 只是为了获得下一次计划运行 34 15 cd welcom
  • CentOS 7 上的 Python3.5 的 Pygame

    先谢谢您的帮助 我正在尝试为 Python 3 5 安装 Pygame 我花了很多时间进行研究 发现 Windows 上可以 但 CentOS 上却没有 是否可以在 CentOS 7 上安装 Python 3 5 的 Pygame 如果是这
  • 以气流用户身份运行气流进程和气流网络服务器

    Problem 我正在 GCP 上设置 Google Compute Engine 虚拟机airflow安装在其上 我现在正在尝试整合airflow with systemd按照以下说明http airflow readthedocs io
  • PHP 警告:第 0 行的未知模块已加载

    在 Mac OSX Mavericks 上使用 homebrew php55 每当我运行 php 命令时 我都会收到以下错误消息 一切运行正常 只是很烦人 PHP Warning Module intl already loaded in
  • centos 7安装pymssql时出错

    我在虚拟机 Centos 7 中安装 pymssql 时遇到了这个问题 我安装的python版本是2 7 6 用于安装 pymssql 的命令 pip intall pymssql 错误信息 root dpitstsvr013 magend
  • 无法在 CentOS 7 上启动 postgresql 服务

    无法在 CentOS 7 上启动 postgresql 9 5 我关注了这个页面 https wiki postgresql org wiki YUM Installation https wiki postgresql org wiki
  • 大文件上传时出现 Apache 错误 500 (mod_security)

    据我所尝试 通常的解决方案都不适合我 好吧 我的问题是 每次上传 大文件 600 KB 时 我都会收到 500 错误 而较小的图像则可以正常工作 所以 即使使用这个 极端 htaccess 文件 它仍然会发生 是的 htaccess 是活动
  • GNU shell 函数在意外标记“(”附近出现语法错误

    我想确定我的 makefile 中 Intel Fortran 编译器的版本 因此我添加了一些脚本GNU shell功能如下进行测试 VERIFORT shell ifort version VERIFORT shell ifort ver
  • 无法在 CentOS 7 上的 PHP 中打开 file_put_contents 上的流

    我知道这是许多线程的常见错误 但我厌倦了搜索 但仍然没有解决它 当我尝试运行该函数时文件放置内容我收到以下错误 Warning file put contents test txt failed to open stream Permiss
  • 如何使用 devtoolset-8-gcc 安装 gcc8

    我使用的是 CentOS Linux 版本 7 3 1611 其中安装了 gcc 4 8 5 20150623 我正在寻找一种安装较新版本的 gcc 的方法 特别是 8 1 我找到了以下关于如何安装 gcc v7 的网站link 1 htt
  • 如何在 Linux (Red Hat/CentOS) 上更新到特定 R 版本,并保留以前的版本?

    也许更准确的标题是 如何在 Linux Red Hat CentOS 上从就地 EPEL R 安装切换到并行 特定于版本 R 安装 一个 可能是典型的 在 Linux 上升级 R 的故事 History 在过去的某个时刻 我使用由 RHEL

随机推荐

  • 使用 Ajax 发送的PUT、DELETE请求

    一 方式一 xff1a 将 POST 请求转化为相应的 PUT 和 DELETE 请求 1 在 Web xml 中添加如下配置 xff1a 用于将 POST 请求转化为相应的 PUT 和 DELETE 请求 lt filter gt lt
  • python+pycharm+pyqt5安装教程

    现在教大家在Windows系统下如何安装Python 43 PyCharm 43 PyQt5 1 安装Python 访问官网https www python org xff0c 下载对应Python版本 2 安装PyQt5 1 xff09
  • pytest+seleniumUI自动化框架设计

    前言 selenium自动化 43 pytest测试框架 本章你需要 一定的python基础 一定的selenium基础 不讲selenium xff0c 不会的自己去看selenium中文翻译网 测试框架简介 测试框架有什么优点呢 xff
  • selenium的UI自动化时遇到了谷歌浏览器与驱动不兼容的问题解决方案

    问题背景 xff1a 在做selenium的UI自动化时 xff0c 遇到了谷歌浏览器与驱动不兼容的问题 去很多其他网站下载谷歌浏览器驱动 xff0c 结果下载下来的都是2 23版本的 xff08 困扰了很久啊 xff0c 一群骗子 xff
  • 如何使用apipost做接口测试?

    今天给大家推荐一款好用的接口测试工具 xff1a apipost 这是一款国产的接口测试工具 xff0c 非常类似于postman xff0c 但是整体使用上感觉要比postman更适合咱们使用 xff0c 毕竟是全中文的 话不多说直接上图
  • 如何使用pycharm将github上的代码同步到本地

    1 首先确定你安装了git exe 具体的话是在pycharm里面的settings version control 2 打开pycharm xff0c 新建版本使用git 3 从github上复制代码链接 4 填入相关内容点击clone即
  • StrokeStart与StrokeEnd动画

    通过修改CAShapeLayer的StrokeStart与StrokeEnd的值来实现画图动画 效果图 代码部分 import 34 ViewController h 34 64 interface ViewController 64 pr
  • GUI编程之路内计费工具

    span class token keyword import span os span class token keyword import span sys span class token keyword from span PyQt
  • 提高测试人员测试效率之GUI工具

    如何有效的去提高测试效率 xff0c 在一个团队当中 xff0c 肯定会存在部分人员无法熟悉数据库操作的情况 xff0c 这个时候我们就可以通过GUI编程将工具界面会 xff0c 使之快速的上手 本次通过一个GUI工具来带领大家如何制作这么
  • GUI编程之智慧交通自动化测试计费

    最终实现效果 本工具实现了案例搜索 xff0c 导入案例 xff0c 测试类型选择 xff0c 自动化测试 xff0c 测试报告 xff0c 邮件发送等功能 xff0c 能有效的提升回归测试效率 xff0c 保证测试质量 源码暂不提供 xf
  • Ubuntu14.04 Wifi 连接不稳定、掉线重连问题(终极解决办法)

    Ubuntu14 04 Wifi 连接不稳定 上不了网 掉线问题 xff08 终极解决办法 xff09 这可能是我写的最短的一篇博客 用Ubuntu系统的人知道 xff0c 有线连接比较稳定 xff1b 一般台式机不带网卡 xff0c 自己
  • 【Ubuntu】Ubuntu上搭建本地源,做离线安装

    一 实验背景 Ubuntu作为最优秀的Linux发行版之一 xff0c 是初学者入门的不二选择 xff0c 但Linux有个最大的问题 xff0c 就是离了网络就废了 在Windows系统中 xff0c 安装软件十分方便 xff0c 下载安
  • gitlab-ce 备份还原 迁移新系统

    https blog csdn net foupwang article details 94362292 迁移前首先要保证新旧服务器上的GitLab版本号一致 查看当前GitLab版本 cat opt gitlab embedded se
  • linux虚拟网络设备之vlan配置详解

    https www jb51 net article 130486 htm 注意VLAN方式达到了网络隔离 xff0c 但是mac地址是相同的 xff0c 意思就是基于同一个网卡出来的vlan mac地址相同 要想不通 xff0c 可以用m
  • jacoco的使用

    一 概述Java 覆盖率 Jacoco 插桩的不同形式总结和踩坑记录 TesterHome 测试覆盖率 xff0c 老生常谈的话题 因为我测试理论基础不是很好 xff0c 就不提什么需求覆盖率啦这样那样的主题了 xff0c 直奔主题 xff
  • mysql bin-log,relay-log删除方法

    master的bin log日志清理 xff1a 方法1 RESET MASTER 1 1 解释 xff1a 该方法可以删除列于索引文件中的所有二进制日志 xff0c 把二进制日志索引文件重新设置为空 xff0c 并创建一个以 000001
  • ubuntu18 网络问题

    在 etc netplan yaml配置文件中 xff1a renderer的值可以是networkd xff0c 或者是NetworkManager 它俩的其中一个区别为 xff1a networkd在图像界面 xff0c network
  • Python - 日志管理模块: Loguru的使用

    python的日志管理模块可以用自带的logging模块 xff0c 也可以用第三方的Loguru模块 xff0c 关于logging和loguru模块的简单使用可以参考以下文章 xff0c 写的还是不错的 xff1a logging 和
  • centos 源码编译 srpm centos-git-common

    Overview centos git common CentOS Git server
  • centos7 nbd 挂在qcow2或qcow,raw,虚机镜像,virsh,virt,使用qemu-nbd挂载qcow2镜像文件

    基本原理 nbd xff08 网络块设备 Network Block Device xff09 xff0c 利用qemu nbd将qemu虚拟机镜像挂载到Linux上 展开来讲 xff0c nbd可以将一个远程主机的磁盘空间 xff0c 当