日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux怎么删除虚拟硬盘,2017.05.10 qemu-nbd 全自动挂载/卸载 虚拟硬盘中所有可用分区 的 脚本...

發布時間:2024/7/23 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux怎么删除虚拟硬盘,2017.05.10 qemu-nbd 全自动挂载/卸载 虚拟硬盘中所有可用分区 的 脚本... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/bin/sh

# 通過 qemu-nbd 實現 vhd 的掛載 ,事先需要安裝 qemu-utils , name:vhd5.sh

# 需要事先 sudo apt-get install qemu-utils

# 在vhd所在目錄新建名為 "v_disk.vhd文件名" 的目錄

# 把 vhd 文件 虛擬到 /dev/nbdX ,并把虛擬硬盤的各分區 /dev/nbdXpY 掛載到目錄 "vhd文件名.v_disk/nbdXpY"

#用法 vhd5.sh vhd文件名

#判斷是否存在vhd文件

if ! [ -f "$1" ] ;then

echo 文件沒找到!

exit

fi

#根據vhd文件路徑和名稱 確定變量 VhdPath 用于建立掛載目錄 和分區

VhdPath=$(realpath "$1").v_disk

#判斷虛擬硬盤文件是否已經被掛載了

if [ `df --output=target | awk -v pl="${VhdPath}" -v a=0 '$0~"^" pl "/nbd[0-9]+p[0-9]+$" {a+=1} END {print a}'` -ge 1 ] ; then

echo 不可重復掛載!

exit

fi

#找出16個nbd設備中第一個可用于虛擬 vhd 的設備 賦值給變量 x

#如果16個設備 均已被占用 ,那么 x=16

for x in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15??16 ; do

zj=`df --output=source | awk -v x=${x} -v a="true" '$1~"^/dev/nbd[0-9]+p[0-9]+$" {if (substr($1,9,length(x))==x) { a="false" }} END {print a}'`

if [ "$zj" = "true" ] ; then

break

fi

done

#如果 變量 x 不等于 16 就將第一個可用的 nbd 設備 掛載 vhd 文件.

if [ $x -ne 16 ] ;then

echo 正在掛載......

echo "`realpath "$1"` ==> /dev/nbd${x}"

sudo modprobe nbd

sudo qemu-nbd -c /dev/nbd${x} "`realpath "$1"`"

#10秒內 循環判斷 虛擬硬盤可用分區數量,用已明確 虛擬硬盤是否已經被掛載且有可用于掛載的分區,如果否,就卸之并退出。

#掛載需要時間,而且15秒 都不能 掛上,也就可以不用掛了。

for n in??1 2 3 4 5 6 7 8 9 10 11 12 13 14 15??; do

echo -n .

sleep 1

px=`sudo fdisk -l /dev/nbd${x}|awk -v a=0 '$1~"^/dev/nbd[0-9]+p[0-9]+$"&&$6!~"^[5f]$"&&$6!="85" {a+=1} END {print a}'`

if [ ${px} -ge 1 ] ;then

break

fi

done

if??[ $px -eq 0 ] ;then

echo 虛擬硬盤文件不可用,或者沒有可用分區!

sudo qemu-nbd -d /dev/nbd${x}

exit

else

echo 發現可用分區! $px

fi

#創建掛載目錄

sudo mkdir "$VhdPath" -p

#找出虛擬硬盤的各個 可用分區并 逐一掛載。

for x in `sudo fdisk -l /dev/nbd${x}|awk '$1~"^/dev/nbd[0-9]+p[0-9]+$"&&$6!~"^[5f]$"&&$6!="85" {print substr($1,6)}'` ; do

sudo mkdir "${VhdPath}/${x}" -p

echo "/dev/${x} ==> ${VhdPath}/${x}"

#循環判斷分區是否成功掛載 掛載成功就進行下一分區的掛載。

while [ `df --output=target | awk -v a=0 -v pl="${VhdPath}/${x}" '$0~"^"pl"$" {a+=1} END {print a}'` -eq 0 ] ; do

echo -n ..

sudo mount /dev/${x} "${VhdPath}/${x}"

sleep 1

done

echo .

done

else

echo 沒有可用的'"qemu-nbd"'設備來掛載虛擬硬盤!

fi

echo End ....

總結

以上是生活随笔為你收集整理的Linux怎么删除虚拟硬盘,2017.05.10 qemu-nbd 全自动挂载/卸载 虚拟硬盘中所有可用分区 的 脚本...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。