亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

掛載KVM Guest操作系統磁盤

2024-06-28 13:24:03
字體:
來源:轉載
供稿:網友
掛載KVM Guest操作系統磁盤

使用虛擬機時, 發現想要修改虛擬機中的文件非常麻煩, 需要啟動虛擬機, 然后再登錄進去修改.

對于已經關閉的虛擬機, 為了修改一個文件而啟動, 非常耽誤時間.

對于一個無法啟動的虛擬機(比如啟動文件損壞), 則束手無策.

因此, 掌握在主機中掛載 Guest 的操作系統磁盤, 并修改其中的內容的方法在某些時候會非常有用.

1. 掛載 Guest 操作系統磁盤的方法

掛載 Guest 操作系統磁盤的方法主要有以下3種:

  1. guestfish : 支持lvm, 速度較慢
  2. lomount : 不支持lvm, 速度快
  3. kpartx : 支持lvm, 速度快

使用上述3種工具之前, 我先安裝了2個 kvm 虛擬機, 都是debian7.6 x86_64, 一個是普通分區, 一個是LVM分區.

2個系統的磁盤在默認路徑中

root@debian-113:~# ll /var/lib/libvirt/imagestotal 16777320-rw------- 1 root root 8589934592 Sep 18 12:48 debian7.6.img-rw------- 1 root root 8589934592 Sep 18 13:08 debian7.6-lvm.img

2. 方法1 - guestfish2.1 使用 guestfish 對 普通Guest的磁盤進行一些基本的操作
root@debian-113:~# apt-get install guestfish            <-- 安裝 guestfish 工具包, 中途跳出一個選擇畫面, 選擇noroot@debian-113:~# guestfish                            <-- 進入 guestfishWelcome to guestfish, the libguestfs filesystem interactive shell forediting virtual machine filesystems.Type: 'help' for help on commands      'man' to read the manual      'quit' to quit the shell><fs> add /var/lib/libvirt/images/debian7.6.img         <-- 掛載 debian7.6的系統磁盤(非LVM分區)><fs> launch                                            <-- 啟動Guest, 這里會慢一些, 如果有錯誤, 參見下面的 *注1* 100% ?------------------? 00:00><fs> list-devices                                      <-- 查看 Guest 中的磁盤/dev/vda><fs> sfdisk-l /dev/vda                                 <-- 查看 Guest 中的磁盤分區Disk /dev/vda: 16644 cylinders, 16 heads, 63 sectors/trackUnits = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0   Device Boot Start     End   #cyls    #blocks   Id  System/dev/vda1   *      2+   5115-   5114-   2577408   83  linux           <-- 這個應該是根分區 //dev/vda2       5117+  16642-  11525-   5808129    5  Extended/dev/vda3          0       -       0          0    0  Empty/dev/vda4          0       -       0          0    0  Empty/dev/vda5       5117+   5741-    624-    314368   82  Linux swap / Solaris/dev/vda6       5743+  16642-  10899-   5492736   83  Linux           <-- 這個應該是home分區  /home><fs> mount /dev/vda6 /                                               <-- 掛載 Guest 操作系統磁盤><fs> ls /                                                            <-- 顯示掛載的內容, 就是Guest的 /homelost+foundwangyubin# Guest磁盤上新建文件><fs> touch /wangyubin/guestfish                                      <-- Guest的磁盤上新建一個文件><fs> vi /wangyubin/guestfish                                         <-- 編輯這個文件, 輸入 test guestfish# 將Host上的hostname文件上傳到Guest的 /home/wangyubin/from-host><fs> upload /etc/hostname /wangyubin/from-host# 卸載 Guest 的/home分區, 重新掛載Guest的 / 分區><fs> mounts/dev/vda6><fs> umount /dev/vda6><fs> mount /dev/vda1 /><fs> ls /binbootdevetchomeinitrd.imgliblib64lost+foundmediamntoptPRocrootrunsbinselinuxsrvsystmpusrvarvmlinuz# 將 Guest上的 hostname 文件下載到 Host的 /home/from-guest><fs> download /etc/hostname /home/from-guest# 卸載Guest磁盤, 退出 guestfish><fs> mounts /dev/vda1><fs> umount /dev/vda1 ><fs> quit

*注1* guestfish中, launch時出現錯誤的解決方法:

><fs> launch febootstrap-supermin-helper: ext2: parent directory not found: /lib: File not found by ext2_lookuplibguestfs: error: external command failed, see earlier error messages><fs> quitroot@debian:~# update-guestfs-appliance

2.2 驗證 guestfish 對普通磁盤的修改結果

1. HOST - 驗證是否有 Guest的hostname文件, 并且內容正確?

root@debian-113:~# cat /home/from-guest      <-- 內容正確, 參見下面cat出的Guest上的hostnamedebianroot@debian-113:~# cat /etc/hostname         <-- Host的hostname內容, 用于驗證 from-host的內容debian-113

2. GUEST - 驗證是否有新建的文件? 是否有 Host的hostname文件, 并且內容正確?

# virt-manager 啟動 guest之后, 登錄進去執行以下命令root@debian:~# ls /home/wangyubin/               <-- 新建的文件和upload的文件都在from-host  guestfishroot@debian:~# cat /home/wangyubin/from-host     <-- 內容正確, 參見上面cat出的Host上的hostnamedebian-113root@debian:~# cat /home/wangyubin/guestfish     <-- 新建的文件內容正確test guestfishroot@debian:~# cat /etc/hostname                 <-- Guest的hostname內容, 用于驗證 from-guest的內容debian

2.3 使用 guestfish 對 LVM分區的Guest磁盤進行一些基本的操作
root@debian-113:~# guestfish Welcome to guestfish, the libguestfs filesystem interactive shell forediting virtual machine filesystems.Type: 'help' for help on commands      'man' to read the manual      'quit' to quit the shell><fs> add /var/lib/libvirt/images/debian7.6-lvm.img><fs> launch ><fs> list-devices /dev/vda><fs> sfdisk-l /dev/vdaDisk /dev/vda: 16644 cylinders, 16 heads, 63 sectors/trackUnits = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0   Device Boot Start     End   #cyls    #blocks   Id  System/dev/vda1   *      2+    495-    494-    248832   83  Linux/dev/vda2        497+  16642-  16145-   8136705    5  Extended/dev/vda3          0       -       0          0    0  Empty/dev/vda4          0       -       0          0    0  Empty/dev/vda5        497+  16642-  16145-   8136704   8e  Linux LVM         <-- 這里看出是LVM><fs> lvs                 <-- 查看LVM的邏輯卷/dev/debian/home/dev/debian/root/dev/debian/swap_1><fs> mount /dev/debian/home /   <-- 掛載 /home 對應的LVM邏輯卷><fs> ls /lost+foundwangyubin# Guest磁盤上新建文件 - 步驟同上面普通磁盤><fs> touch /wangyubin/guestfish-lvm                           <-- Guest的磁盤上新建一個文件><fs> vi /wangyubin/guestfish-lvm                              <-- 編輯這個文件, 輸入 test guestfish lvm# 將Host上的hostname文件上傳到Guest的 /home/wangyubin/from-host-lvm><fs> upload /etc/hostname /wangyubin/from-host-lvm# 卸載 Guest 的/home分區, 重新掛載Guest的 / 分區 都是LVM格式><fs> mounts/dev/debian/home><fs> umount /dev/debian/home ><fs> lvs/dev/debian/home/dev/debian/root/dev/debian/swap_1><fs> mount /dev/debian/root /><fs> ls /binbootdevetchomeinitrd.imgliblib64lost+foundmediamntoptprocrootrunsbinselinuxsrvsystmpusrvarvmlinuz# 將 Guest上的 hostname 文件下載到 Host的 /home/from-guest-lvm><fs> download /etc/hostname /home/from-guest-lvm# 卸載Guest磁盤, 退出 guestfish><fs> mounts /dev/debian/root><fs> umount /dev/debian/root ><fs> quit

2.4 驗證 guestfish 對LVM磁盤的修改結果

1. HOST - 驗證是否有 Guest的hostname文件, 并且內容正確?

root@debian-113:~# cat /home/from-guest-lvm      <-- 內容正確, 參見下面cat出的Guest上的hostnamedebianroot@debian-113:~# cat /etc/hostname             <-- Host的hostname內容, 用于驗證 from-host的內容debian-113

2. GUEST - 驗證是否有新建的文件? 是否有 Host的hostname文件, 并且內容正確?

# virt-manager 啟動 guest之后, 登錄進去執行以下命令root@debian:~# ls /home/wangyubin/                   <-- 新建的文件和upload的文件都在from-host-lvm  guestfish-lvmroot@debian:~# cat /home/wangyubin/from-host-lvm     <-- 內容正確, 參見上面cat出的Host上的hostnamedebian-113root@debian:~# cat /home/wangyubin/guestfish-lvm     <-- 新建的文件內容正確test guestfish lvmroot@debian:~# cat /etc/hostname                     <-- Guest的hostname內容, 用于驗證 from-guest的內容debian

3. 方法2 - lomount

lomount是Xen環境下的工具, 掛載Guest的操作系統磁盤時比guestfish要快很多, 但是不支持lvm.

由于沒有Xen的環境, 這里就不嘗試了.

4. 方法3 - kpartx

首先, 安裝 kaprtx

root@debian-113:~# apt-get install kpartx

4.1 使用 kpartx 對 普通分區的Guest磁盤進行一些基本的操作
root@debian-113:~# kpartx -av /var/lib/libvirt/images/debian7.6.img add map loop0p1 (254:0): 0 5154816 linear /dev/loop0 2048      <-- 這個是根分區 /add map loop0p2 (254:1): 0 11616258 linear /dev/loop0 5158910add map loop0p5 : 0 628736 linear 254:1 2add map loop0p6 : 0 10985472 linear 254:1 630786               <-- 這個是分區 /home# 掛載磁盤root@debian-113:~# mount /dev/mapper/loop0p1 /mnt/             <-- *注2*root@debian-113:~# ll /mnt/total 96drwxr-xr-x  2 root root  4096 Sep 18 12:38 bindrwxr-xr-x  3 root root  4096 Sep 18 12:40 bootdrwxr-xr-x  3 root root  4096 Sep 18 11:26 devdrwxr-xr-x 72 root root  4096 Sep 18 19:50 etcdrwxr-xr-x  2 root root  4096 Sep 18 11:23 homelrwxrwxrwx  1 root root    30 Sep 18 11:27 initrd.img -> /boot/initrd.img-3.2.0-4-amd64drwxr-xr-x 13 root root  4096 Sep 18 12:31 libdrwxr-xr-x  2 root root  4096 Sep 18 12:30 lib64drwx------  2 root root 16384 Sep 18 11:23 lost+founddrwxr-xr-x  3 root root  4096 Sep 18 11:23 mediadrwxr-xr-x  2 root root  4096 Jun 12 05:07 mntdrwxr-xr-x  2 root root  4096 Sep 18 11:23 optdrwxr-xr-x  2 root root  4096 Jun 12 05:07 procdrwx------  3 root root  4096 Sep 18 12:46 rootdrwxr-xr-x  2 root root  4096 Sep 18 12:45 rundrwxr-xr-x  2 root root  4096 Sep 18 12:45 sbindrwxr-xr-x  2 root root  4096 Jun 10  2012 selinuxdrwxr-xr-x  2 root root  4096 Sep 18 11:23 srvdrwxr-xr-x  2 root root  4096 Jul 15  2013 sysdrwxrwxrwt  2 root root  4096 Sep 18 19:52 tmpdrwxr-xr-x 10 root root  4096 Sep 18 11:23 usrdrwxr-xr-x 11 root root  4096 Sep 18 11:23 varlrwxrwxrwx  1 root root    26 Sep 18 11:27 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64# 卸載磁盤root@debian-113:~# umount /mnt

*注2* kpartx 可以將Guest的磁盤掛載到主機的某個目錄下 (比如上述例子就是 /mnt),

不像 guestfish 只能將Guest的磁盤掛載到 /

因此, 對于 kpartx 來說, 不需要 download 和 upload 命令, 操作 Guest 磁盤中的文件就和掛載了U盤一樣.

4.2 使用 kpartx 對 LVM分區的Guest磁盤進行一些基本的操作
root@debian-113:~# kpartx -av /var/lib/libvirt/images/debian7.6-lvm.img add map loop1p1 (254:4): 0 497664 linear /dev/loop1 2048add map loop1p2 (254:5): 0 16273410 linear /dev/loop1 501758add map loop1p5 : 0 16273408 linear 254:5 2   <-- 這是 lvm 分區root@debian-113:~# vgscan                     <-- 通過 lvm 相關命令查看 lvm分區信息  Reading all physical volumes.  This may take a while...  Found volume group "debian" using metadata type lvm2root@debian-113:~# vgs                        <-- 通過 lvm 相關命令查看 lvm分區信息  VG     #PV #LV #SN Attr   VSize VFree  debian   1   3   0 wz--n- 7.76g    0 root@debian-113:~# lvs                        <-- 通過 lvm 相關命令查看 lvm分區信息  LV     VG     Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert  home   debian -wi-----   5.06g                                             root   debian -wi-----   2.40g                                             swap_1 debian -wi----- 300.00m              root@debian-113:~# vgchange -ay debian        <-- 激活lvm分區  3 logical volume(s) in volume group "debian" now activeroot@debian-113:~# mount /dev/debian/root /mnt/   <-- 掛載 lvm中的根分區 /root@debian-113:~# ll /mnt/total 96drwxr-xr-x  2 root root  4096 Sep 18 12:53 bindrwxr-xr-x  2 root root  4096 Sep 18 11:28 bootdrwxr-xr-x  3 root root  4096 Sep 18 11:31 devdrwxr-xr-x 73 root root  4096 Sep 18 20:54 etcdrwxr-xr-x  2 root root  4096 Sep 18 11:28 homelrwxrwxrwx  1 root root    30 Sep 18 11:32 initrd.img -> /boot/initrd.img-3.2.0-4-amd64drwxr-xr-x 13 root root  4096 Sep 18 12:43 libdrwxr-xr-x  2 root root  4096 Sep 18 12:42 lib64drwx------  2 root root 16384 Sep 18 11:28 lost+founddrwxr-xr-x  3 root root  4096 Sep 18 11:28 mediadrwxr-xr-x  2 root root  4096 Jun 12 05:07 mntdrwxr-xr-x  2 root root  4096 Sep 18 11:28 optdrwxr-xr-x  2 root root  4096 Jun 12 05:07 procdrwx------  3 root root  4096 Sep 18 13:08 rootdrwxr-xr-x  2 root root  4096 Sep 18 13:06 rundrwxr-xr-x  2 root root  4096 Sep 18 13:06 sbindrwxr-xr-x  2 root root  4096 Jun 10  2012 selinuxdrwxr-xr-x  2 root root  4096 Sep 18 11:28 srvdrwxr-xr-x  2 root root  4096 Jul 15  2013 sysdrwxrwxrwt  2 root root  4096 Sep 18 20:17 tmpdrwxr-xr-x 10 root root  4096 Sep 18 11:28 usrdrwxr-xr-x 11 root root  4096 Sep 18 11:28 varlrwxrwxrwx  1 root root    26 Sep 18 11:32 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64root@debian-113:~# umount /mnt     <-- 卸載分區

5. 總結

lomount 由于沒有環境, 沒有實驗.

對于 guestfish 和 kpartx來說, 感覺無論是速度還是易用性上, 都是 kpartx 勝出.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲国产成人| 91老司机精品视频| 亚洲欧美日韩在线高清直播| 亚洲日本欧美中文幕| 亚洲精品美女在线| 92看片淫黄大片看国产片| 欧美日韩国产区| 欧美专区在线视频| www.亚洲免费视频| 97婷婷大伊香蕉精品视频| 色婷婷成人综合| 亚洲另类xxxx| 久久精品亚洲94久久精品| 亚洲午夜精品久久久久久久久久久久| 欧美激情欧美激情在线五月| 欧美在线一级视频| 91精品国产91久久久久久吃药| 亚洲国产天堂久久综合网| 中文字幕成人精品久久不卡| 国产精品一区二区久久久久| 亚洲欧美日韩视频一区| 日韩av理论片| 欧美激情亚洲激情| 欧美精品免费播放| 久久精品成人欧美大片| 日本精品在线视频| 欧美日韩国产精品一区二区三区四区| 国产精品大片wwwwww| 51久久精品夜色国产麻豆| 国产精品久久久久久久久影视| www.日韩.com| 日韩不卡中文字幕| 精品国产一区二区三区久久狼5月| 亚洲国产精品电影| 久久人人爽人人爽人人片av高请| 久久久久久成人精品| 久久这里有精品| 日韩高清电影免费观看完整版| 国内久久久精品| 国产精品第一视频| 日韩精品极品在线观看播放免费视频| 在线视频中文亚洲| 91色琪琪电影亚洲精品久久| 亚洲品质视频自拍网| 国产啪精品视频| 综合av色偷偷网| 久久精品国产一区二区三区| 日韩亚洲国产中文字幕| 日韩中文在线不卡| 91青草视频久久| 欧美日韩亚洲系列| 亚洲大胆美女视频| 91高潮精品免费porn| 国产精品国产福利国产秒拍| 国产精品福利无圣光在线一区| 欧美日韩福利在线观看| 日韩不卡在线观看| 久久99精品国产99久久6尤物| 日韩电影在线观看中文字幕| 精品国内产的精品视频在线观看| 高清视频欧美一级| 国产精品麻豆va在线播放| 一区二区三欧美| 国产日韩在线精品av| 日韩成人在线播放| 亚洲欧洲国产伦综合| 久久久久亚洲精品| 欧美第一黄网免费网站| 久久网福利资源网站| 国产在线播放不卡| 国产精品高清在线观看| 国内揄拍国内精品少妇国语| 国产精品福利在线| 国产91精品最新在线播放| 日韩一二三在线视频播| 国产午夜精品久久久| 精品香蕉一区二区三区| 欧美黑人巨大精品一区二区| 中文字幕在线观看亚洲| 国产精品嫩草视频| 91成人国产在线观看| 北条麻妃久久精品| 在线成人激情视频| 欧美性xxxx极品高清hd直播| 国产精品高潮粉嫩av| 亚洲v日韩v综合v精品v| 久久久久国产精品www| 日韩精品中文字幕在线播放| 2019中文在线观看| 亚洲国产成人精品电影| 国产日韩视频在线观看| 欧美日韩性生活视频| 欧美日韩中文字幕日韩欧美| 色狠狠av一区二区三区香蕉蜜桃| 秋霞成人午夜鲁丝一区二区三区| 日韩福利视频在线观看| 国产69精品99久久久久久宅男| 国产视频福利一区| 欧美色道久久88综合亚洲精品| 91精品国产91久久久久久久久| 琪琪第一精品导航| 国产精品久久久久免费a∨| 午夜精品久久久久久久久久久久| 国产成人综合久久| 中文字幕在线看视频国产欧美| 国产精品白嫩初高中害羞小美女| 国产精品扒开腿做爽爽爽的视频| 亚洲精品电影网在线观看| 欧美一级大片在线观看| 久久综合久久八八| 国产精品久久久久av免费| 日韩网站在线观看| 欧美日韩国产成人在线观看| 91免费人成网站在线观看18| 日韩高清电影好看的电视剧电影| 国产精品手机播放| 97在线免费观看视频| 亲子乱一区二区三区电影| 日本高清不卡的在线| 亚洲精品欧美日韩专区| 亚洲欧美制服丝袜| 国产精品一区二区三区毛片淫片| 成人免费看吃奶视频网站| 亚洲第一区在线| 日韩中文字幕欧美| 亚洲a在线播放| 国产精品美女免费看| 亚洲一区二区在线播放| 国产日本欧美一区二区三区在线| 精品日韩中文字幕| 国产精品视频精品视频| 久久这里有精品视频| 91在线观看免费高清| 日韩激情第一页| 97国产真实伦对白精彩视频8| 美日韩精品视频免费看| 国产精品视频久久久| 在线看片第一页欧美| 一区二区三区视频免费| 久久久亚洲天堂| 岛国av一区二区在线在线观看| 中文字幕亚洲精品| 精品久久久久人成| 成人精品一区二区三区| 亚洲福利小视频| 成人福利视频网| 91精品国产99久久久久久| 国产欧亚日韩视频| 成人淫片在线看| 欧美日韩福利电影| 亚洲一区免费网站| 97久久超碰福利国产精品…| 2018中文字幕一区二区三区| 日韩a**中文字幕| 久久天天躁狠狠躁夜夜av| 日韩动漫免费观看电视剧高清| 亚洲欧美综合另类中字| 亚洲伊人久久综合| 国产精品极品美女粉嫩高清在线| 欧美中文在线观看国产| 欧美国产日韩免费| 久久久精品日本| 亚洲国产精品女人久久久| 国产成人欧美在线观看|