亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: kvm虛擬機img如何掛載到宿主機系統(tǒng) [打印本頁]

作者: 開源將軍    時間: 2016-06-26 00:34
標(biāo)題: kvm虛擬機img如何掛載到宿主機系統(tǒng)
在使用虛擬化的過程中,難免會遇到虛擬機異常導(dǎo)致無法啟動等故障,這時候如何從虛擬機的img中將重要文件或數(shù)據(jù)拷貝出來顯得尤為重要,今天介紹一下利用qemu-nbd的方式將img文件掛載到宿主機。
  需要注意的是,目前僅針對于img文件類型為qcow2的做過測試。
  1. 檢測img文件的類型:
      file test.img
      test.img: Qemu Image, Format: Qcow , Version: 2
  
  qemu-nbd方式依賴于內(nèi)核級別的nbd模塊,簡單介紹一下nbd。
  NBD(Network Block Device)
  簡介:Tools for the Linux Kernel's network block device, allowing you to use remote block devices over a TCP/IP network,也就是說可以實現(xiàn)IP-SAN的功能數(shù)據(jù)共享。
  相關(guān)網(wǎng)站:http://nbd.sourceforge.net/
  
  2. 由于CentOS里面默認(rèn)沒有編譯nbd到內(nèi)核里,需要重新編譯kernel的源碼,具體步驟如下:
   yum install kernel-devel kernel-headers
   cd /tmp
  #下載符合當(dāng)前版本的kernel src 6.2或者6.4的切換一下目錄即可
  wget http://vault.centos.org/6.3/upda ... 79.22.1.el6.src.rpm
  rpm -ivh kernel-2.6.32-279.22.1.el6.src.rpm
  
  cd ~/rpmbuild/SOURCES
  #解壓tar包到kernel源碼的位置
  tar jxf linux-2.6.32-279.22.1.el6.tar.bz2 -C /usr/src/kernels/
  
  cd /usr/src/kernels
  #備份原有的kernel source
  mv $(uname -r) $(uname -r)-old
  #有時候不排除內(nèi)核的版本與實際的source包不一致,所以應(yīng)以實際為準(zhǔn)
  mv 2.6.32-431.3.1.el6.x86_64 2.6.32-431.3.1.el6.x86_64-old
  
  #將新下載的kernel重命名
  mv  linux-2.6.32-279.22.1.el6 2.6.32-431.3.1.el6.x86_64
  chown -R root:root 2.6.32-431.3.1.el6.x86_64
  
  #開始進入編譯階段
  cd /usr/src/kernels/2.6.32-431.3.1.el6.x86_64
  #make mrproper去先刪除之前編譯所生成的文件和配置文件等
  make mrproper
  
  cd /usr/src/kernels/2.6.32-431.3.1.el6.x86_64-old
  #Module.symvers文件用于:1.列出vmlinux和所有模塊的導(dǎo)出函數(shù)    2.列出所有符號的CRC校驗值
  cp  Module.symvers /usr/src/kernels/2.6.32-431.3.1.el6.x86_64
  cd /usr/src/2.6.32-431.3.1.el6.x86_64
  cp /boot/config-2.6.32-358.el6.x86_64 ./.config
  
  #所有問題都基于已有的.config文件,只對新特性和新設(shè)定提出詢問,避免需要重新設(shè)定整個內(nèi)核的配置
  make oldconfig
  make prepare
  make scripts
  make CONFIG_BLK_DEV_NBD=m M=drivers/block
  
  #在 /usr/src/kernels/2.6.32-431.3.1.el6.x86_64目錄下
  cp drivers/block/nbd.ko /lib/modules/$(uname -r)/kernel/drivers/block/
  #Probe all modules
  depmod -a
  #加載模塊,默認(rèn)nbd的增加分區(qū)的功能是關(guān)閉的,需要指定max_part這個參數(shù)。這個參數(shù)指定了一個nbd設(shè)備可以有多少個分區(qū)。
modprobe nbd max_part=63
  #是否加載可以用 lsmod 命令查看
  
  3.利用qemu-nbd實現(xiàn)虛擬機鏡像的掛載
  #需要安裝以下軟件
  rpm -ivh  --replacefiles --nodeps seabios-bin-0.6.2-3.el6.noarch.rpm
rpm -ivh  --replacefiles --nodeps seabios-0.6.2-3.el6.x86_64.rpm
rpm -ivh  --replacefiles --nodeps qemu-common-0.12.3-8.el6.x86_64.rpm
rpm -ivh  --replacefiles --nodeps qemu-img-0.12.3-8.el6.x86_64.rpm
rpm -ivh  --replacefiles --nodeps qemu-kvm-0.12.3-8.el6.x86_64.rpm
rpm -ivh  --replacefiles --nodeps qemu-system-x86-0.12.3-8.el6.x86_64.rpm
  #查看當(dāng)前與nbd相關(guān)的設(shè)備
  ls /dev/ | grep nbd
  #將文件鏈接到本地的NBD設(shè)備上
  qemu-nbd -c /dev/nbd0 test01.img
  #再次查看與nbd相關(guān)的設(shè)備,會發(fā)現(xiàn)在/nbd0 下多了三個分區(qū)nbd0p1 nbd0p2 nbd0p3,這是虛擬機img文件中的分區(qū)
  ls /dev/ | grep nbd
  
  #掛載到宿主機,就可以訪問img的內(nèi)部了,其中會有一個swapspace是不能掛載的
  mount nbd0p1 /mnt/test
  
作者: 販妖記    時間: 2016-06-26 14:38
支持下            
作者: 開源將軍    時間: 2016-06-26 23:11
回復(fù) 2# 販妖記


    感謝,以后多交流
作者: liyufeng0803    時間: 2016-07-21 09:23
非常實用,有機會測試一下




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2