BTRFS root 裝置上沒有剩餘空間,自動重新掛載唯讀;無法平衡,無法添加設備

BTRFS root 裝置上沒有剩餘空間,自動重新掛載唯讀;無法平衡,無法添加設備

我的 BTRF 根目錄在系統更新期間已滿,並已自動重新安裝為唯讀。我有很多可以刪除的文件,但它們是唯讀的。我試過:

  1. sudo mount -o remount,rw / → 安裝點未安裝或選項錯誤

  2. 建立一個/dev/loop0臨時 10G 檔案並嘗試將其新增至 BTRFS 裝置: sudo btrfs device add /dev/loop0 /error adding device /dev/loop0: Read-only file system

  3. 重新平衡:(sudo btrfs balance start -dusage=0 /也嘗試過-musage=0)→error during balancing '/': Read-only file system

所以基本上我嘗試的一切都失敗了,因為檔案系統是唯讀的。由於某種原因,我無法將其重新安裝為 rw。我擔心重新啟動系統,因為它可能無法啟動。擁有 btrfs 全 root fs 的人就沒有希望了嗎?

答案1

遇到了同樣的問題,設法透過這樣做來解決這個問題:

umount /home
mount /dev/sdd1 on /home -o rw,clear_cache,skip_balance

這將跳過任何重新平衡操作(我的鎖定點)並清除一些快取以釋放一些空間。

但在此之後,任何操作仍會導致切換為唯讀,因此我在 mount 命令之後檢查並停止任何重新平衡:

btrfs fi balance show /home
btrfs fi balance cancel /home

在此之後,btrfs 更加穩定,我能夠調整它的大小

btrfs fi resize max /home

也許 FAQ 平衡命令現在也應該可以工作或手動刪除一些大檔案。

FAQ 報告了這一點(您可能想要嘗試從低到高的不同值,因為這是區塊中已使用空間的百分比,將由餘額選擇並最終合併,釋放空間)

btrfs fi balance  start -dusage=10 /home

最後,還有添加新設備並請求重新平衡的路徑(因此是 raid0,但如果您願意並且有足夠的空間,您可以稍後對其進行微調並切換到 raid1)。 btrfs 可以使用多個設備即時構建“raid”(更糟糕的情況是臨時 USB 存儲,但請記住最後刪除數據並刪除設備)

btrfs device add /dev/sdf1 /home
btrfs balance start -dusage=20 -musage=20 /home

微調 dusage(資料)和 musage(元資料)中的值以加速和/或移動更多資訊。在相同的情況下,您可能需要新增 a-ddevid=???以限制對完整裝置的重新平衡,從而強制 btrfs 將區塊從完整裝置移至具有更多空間的裝置。取得除法brtfs fi show

最後查看結果(請記住,btrfs 中的 df 是不夠的,因為 btrfs 有幾層,而 df 只能看到一層)

btrfs fi show
btrfs fi usage /home
btrfs device usage /home
btrfs fi df /home

相關內容