Lvm
lvremove 聲稱 LV 是開放的
我經常注意到,經過
$ sudo lvcreate vg -L 10G
緊隨其後的是
$ sudo lvremove vg/<created volume>
我收到錯誤消息
無法刪除打開的邏輯卷“…”
而一個
$ sudo lvs
給我看那個卷
lvol2 vg -wi-a- 10,00g
- 所以標誌中的
-
後面有一個os,如果卷真的打開了a
,應該有一個。o
一段時間後,刪除工作。
為什麼會這樣?我怎樣才能讓它立即工作?
編輯:以下沒有導致有用的東西:
$ sudo rm /dev/mapper/vg-lvol24 $ sudo lvremove /dev/vg/lvol24 Can't remove open logical volume "lvol24" $ sudo lvs vg/lvol24 LV VG Attr LSize Origin Snap% Move Log Copy% Convert lvol24 vg -wi-a- 10,00g $ sudo lvremove /dev/vg/lvol24 Can't remove open logical volume "lvol24"
好像lvm和udev的合作有問題。
在 a
lvremove
上,每個可用塊設備都有udev
更改事件。他們的處理似乎干擾了刪除過程,並且刪除失敗了。解決方案是使用 停用要刪除的 LV
lvchange -an <given LV>
。在這種情況下,只創建了少數“刪除”事件,這是由於相關dm
設備被刪除而導致的。如果我
lvremove
現在停用的LV,仍然有很多udev更改事件,但它們不會影響要刪除的LV(因為它不再存在於dm中),因此它可以正常工作。
因此,除了 NFS、陳舊的 bash 程序和 udev 錯誤行為之外,還有另一種可能性,即在塊設備上打開的分區。
kpartx -d /dev/vg1/lv1
然後您可以驗證 # open 在
lvdisplay
的輸出中下降到 0。