nbd 相關概念及操作


周五(3月6號)筆者發現有台物理機上掛載了一個並非常用的nbd設備,估計是之前人做的測試留下來的,決定卸載它,順帶了解了下nbd的設備信息。

什么是nbd

全稱是network block device,類似於nfs,遠程設備可以掛載,只不過掛載的不再是文件系統,而是塊設備。

nbd一般分為client端和server端。

nbd相關操作命令

# server

apt install nbd-server 安裝nbd server端
modprobe nbd 加載nbd模塊
lsmod | grep nbd 查看nbd模塊是否加載

nbd-server [port] nbd.file 通過nbd-server掛載nbd.file,nbd.file可以是Linux格式支持的磁盤鏡像文件(ISO,塊設備等)

# client

apt install nbd-client

ls /dev/nbd* -hl 查看nbd列表及大小

nbd-client [server IP] [port] /dev/nbd10 將遠程server的塊設備掛載到本地nbd10上

nbd-client -d /dev/nbd10 detach遠程nbd設備

對於server端的卸載 筆者沒有找到卸載命令,直接kill了。

 nbd-client 和qemu-nbd

nbd-client用於掛載遠程nbd-server,當主機裝完nbd-client的包后,通過 ls /dev/nbd* -hl 能夠發現新增了/dev/nbd 設備

執行nbd-client 掛載命令后,對這塊block,執行的是常規的例如mkfs , mount 后便可使用。

但是對於img,qcow2這類文件該如何進行本地掛載,使用的是qemu-nbd

(如下圖,使用client以及server方式,雖然前面nbd步驟可以正常執行,但是卻無法正常mount,提示格式不支持)

# qemu-nbd

qemu-nbd -c /dev/nbd10 XX.img 在本地掛載img文件到nbd10上 qemu-nbd -d /dev/nbd10 卸載nbd10

如果img文件有1個分區,那么對應的nbd10會生成一個nbd10p1,如果有2個分區,對應的nbd10會生成nbd10p1以及nbd10p2,以此類推。

通過mount掛載便可進入訪問。

卸載圖一中的/mnt

cd /mnt && ls -al 進入/mnt目錄並檢查有無重要文件

cd .. 退出

ls /dev/nbd10* -hl 檢查nbd10相關設備

umount /mnt 取消/mnt掛載

qemu-nbd -d /dev/nbd10 卸載10設備,注意不是nbd10p1

ls /dev/nbd10* -hl 再次檢查nbd10相關設備


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM