如何從循環設備中刪除分割設備?

如何從循環設備中刪除分割設備?

我透過循環設備安裝磁碟映像(losetup -f image.img)。它包含分區表,我強制內核讀取它:partprobe /dev/loop1。

我掛載 /dev/loop1p1,修復我想要修復的內容,卸載回檔案系統。我從環回裝置中刪除檔案(losetup -d /dev/loop1)。但 /dev/loop1p1 並沒有消失。

我什至嘗試重新創建 lodevice,透過 fdisk 添加和刪除分區表。但我所有的嘗試都失敗了:

分區表已更改!

呼叫ioctl()重新讀取分割區表。

警告:重新讀取分區表失敗,並出現錯誤 22:參數無效。內核仍然使用舊表。新表將在下次重新啟動時或執行partprobe(8) 或kpartx(8) 同步磁碟後使用。

分區未以任何方式使用,但我無法釋放它。有什麼辦法可以在不重啟的情況下刪除它嗎?

我在 dmesg 中看到幾筆記錄:

[4649002.505727]loop1:rw=0,want=211812300,limit=62914560 [4649002.505753]裝置loop1p1上的緩衝區I/O錯誤,邏輯區塊529525625646250.

他們也對我的 nagios 喋喋不休。

答案1

重新啟動應該可以修復您的核心。下次,不要運行losetuppartprobe手動,而是使用kpartx

kpartx -v -a image.img

並把它拆掉:

kpartx -d image.img

相關內容