BTRFS 루트 장치에 남은 공간이 없습니다. 읽기 전용으로 자동 다시 마운트됩니다. 균형을 맞출 수 없고 장치를 추가할 수 없습니다

BTRFS 루트 장치에 남은 공간이 없습니다. 읽기 전용으로 자동 다시 마운트됩니다. 균형을 맞출 수 없고 장치를 추가할 수 없습니다

내 BTRF 루트는 시스템 업데이트 중에 가득 차서 읽기 전용으로 자동으로 다시 마운트되었습니다. 지울 수 있는 파일이 많지만 읽기 전용입니다. 나는 시도했다:

  1. sudo mount -o remount,rw / → 마운트 포인트가 마운트되지 않았거나 잘못된 옵션

  2. 임시 10G 파일을 생성 /dev/loop0하고 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 전체 루트 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(메타데이터)의 값을 미세 조정하여 속도를 높이거나 더 많은 정보를 이동할 수 있습니다. 같은 경우에 -ddevid=???전체 장치에 대한 재조정을 제한하기 위해 a를 추가하여 btrfs가 전체 장치에서 더 많은 공간이 있는 장치로 청크를 이동하도록 강제할 수 있습니다. 에서 devid를 얻으십시오brtfs fi show

결국 결과를 확인하십시오(btrfs에는 여러 레이어가 있고 df는 하나만 볼 수 있으므로 btrfs의 df로는 충분하지 않음을 기억하십시오)

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

관련 정보