周五(3月6號)筆者發現有台物理機上掛載了一個並非常用的nbd設備,估計是之前人做的測試留下來的,決定卸載它,順帶瞭解了下nbd的設備信息。 什麼是nbd 全稱是network block device,類似於nfs,遠程設備可以掛載,只不過掛載的不再是文件系統,而是塊設備。 nbd一般分為clie ...
周五(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相關設備